Revert "GLSL: Fix #1279: refract does not have a double-type eta."

This reverts commit ebec909487.

Khronos decided glslang was originally correct, and the specifications
are incorrect.
This commit is contained in:
John Kessenich 2018-06-19 09:43:09 -06:00
parent bea08fe02a
commit 2a805d9cea
7 changed files with 674 additions and 678 deletions

View File

@ -285,10 +285,10 @@ void doubles()
dvec3v += reflect(dvec3v, dvec3v);
dvec4v += reflect(dvec4v, dvec4v);
doublev += refract(doublev, doublev, 1.3);
dvec2v += refract(dvec2v, dvec2v, 1.3);
dvec3v += refract(dvec3v, dvec3v, 1.3);
dvec4v += refract(dvec4v, dvec4v, 1.3);
doublev += refract(doublev, doublev, doublev);
dvec2v += refract(dvec2v, dvec2v, doublev);
dvec3v += refract(dvec3v, dvec3v, doublev);
dvec4v += refract(dvec4v, dvec4v, doublev);
dmat2 dmat2v = outerProduct(dvec2v, dvec2v);
dmat3 dmat3v = outerProduct(dvec3v, dvec3v);
@ -300,9 +300,9 @@ void doubles()
dmat3x4 dmat3x4v = outerProduct(dvec4v, dvec3v);
dmat4x3 dmat4x3v = outerProduct(dvec3v, dvec4v);
dmat2v *= matrixCompMult(dmat2v, dmat2v);
dmat3v *= matrixCompMult(dmat3v, dmat3v);
dmat4v *= matrixCompMult(dmat4v, dmat4v);
dmat2v *= matrixCompMult(dmat2v, dmat2v);
dmat3v *= matrixCompMult(dmat3v, dmat3v);
dmat4v *= matrixCompMult(dmat4v, dmat4v);
dmat2x3v = matrixCompMult(dmat2x3v, dmat2x3v);
dmat2x4v = matrixCompMult(dmat2x4v, dmat2x4v);
dmat3x2v = matrixCompMult(dmat3x2v, dmat3x2v);

View File

@ -844,29 +844,25 @@ ERROR: node is still EOpNull!
0:288 refract ( global double)
0:288 'doublev' ( temp double)
0:288 'doublev' ( temp double)
0:288 Constant:
0:288 1.300000
0:288 'doublev' ( temp double)
0:289 add second child into first child ( temp 2-component vector of double)
0:289 'dvec2v' ( temp 2-component vector of double)
0:289 refract ( global 2-component vector of double)
0:289 'dvec2v' ( temp 2-component vector of double)
0:289 'dvec2v' ( temp 2-component vector of double)
0:289 Constant:
0:289 1.300000
0:289 'doublev' ( temp double)
0:290 add second child into first child ( temp 3-component vector of double)
0:290 'dvec3v' ( temp 3-component vector of double)
0:290 refract ( global 3-component vector of double)
0:290 'dvec3v' ( temp 3-component vector of double)
0:290 'dvec3v' ( temp 3-component vector of double)
0:290 Constant:
0:290 1.300000
0:290 'doublev' ( temp double)
0:291 add second child into first child ( temp 4-component vector of double)
0:291 'dvec4v' ( temp 4-component vector of double)
0:291 refract ( global 4-component vector of double)
0:291 'dvec4v' ( temp 4-component vector of double)
0:291 'dvec4v' ( temp 4-component vector of double)
0:291 Constant:
0:291 1.300000
0:291 'doublev' ( temp double)
0:293 Sequence
0:293 move second child to first child ( temp 2X2 matrix of double)
0:293 'dmat2v' ( temp 2X2 matrix of double)

View File

@ -1,7 +1,7 @@
spv.400.frag
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 1115
// Id's are bound by 1118
Capability Shader
Capability Geometry
@ -11,7 +11,7 @@ spv.400.frag
Capability SampledRect
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 13 1024 1030 1035 1047 1073 1094 1096 1102 1104 1113
EntryPoint Fragment 4 "main" 13 1027 1033 1038 1050 1076 1097 1099 1105 1107 1116
ExecutionMode 4 OriginUpperLeft
Source GLSL 400
SourceExtension "GL_ARB_separate_shader_objects"
@ -28,41 +28,41 @@ spv.400.frag
Name 439 "bvec2v"
Name 448 "bvec3v"
Name 457 "bvec4v"
Name 736 "dmat2v"
Name 742 "dmat3v"
Name 748 "dmat4v"
Name 754 "dmat2x3v"
Name 760 "dmat3x2v"
Name 766 "dmat2x4v"
Name 772 "dmat4x2v"
Name 778 "dmat3x4v"
Name 784 "dmat4x3v"
Name 1016 "v"
Name 1022 "arrayedSampler"
Name 1024 "i"
Name 1030 "c2D"
Name 1035 "gl_ClipDistance"
Name 1047 "uoutp"
Name 1051 "samp2dr"
Name 1073 "ioutp"
Name 1077 "isamp2DA"
Name 1094 "gl_FragCoord"
Name 1096 "vl2"
Name 1102 "uo"
Name 1104 "u"
Name 1112 "id"
Name 1113 "gl_PrimitiveID"
Name 739 "dmat2v"
Name 745 "dmat3v"
Name 751 "dmat4v"
Name 757 "dmat2x3v"
Name 763 "dmat3x2v"
Name 769 "dmat2x4v"
Name 775 "dmat4x2v"
Name 781 "dmat3x4v"
Name 787 "dmat4x3v"
Name 1019 "v"
Name 1025 "arrayedSampler"
Name 1027 "i"
Name 1033 "c2D"
Name 1038 "gl_ClipDistance"
Name 1050 "uoutp"
Name 1054 "samp2dr"
Name 1076 "ioutp"
Name 1080 "isamp2DA"
Name 1097 "gl_FragCoord"
Name 1099 "vl2"
Name 1105 "uo"
Name 1107 "u"
Name 1115 "id"
Name 1116 "gl_PrimitiveID"
Decorate 17(u2drs) DescriptorSet 0
Decorate 1022(arrayedSampler) DescriptorSet 0
Decorate 1024(i) Flat
Decorate 1035(gl_ClipDistance) BuiltIn ClipDistance
Decorate 1051(samp2dr) DescriptorSet 0
Decorate 1077(isamp2DA) DescriptorSet 0
Decorate 1094(gl_FragCoord) BuiltIn FragCoord
Decorate 1096(vl2) Location 6
Decorate 1104(u) Flat
Decorate 1113(gl_PrimitiveID) Flat
Decorate 1113(gl_PrimitiveID) BuiltIn PrimitiveId
Decorate 1025(arrayedSampler) DescriptorSet 0
Decorate 1027(i) Flat
Decorate 1038(gl_ClipDistance) BuiltIn ClipDistance
Decorate 1054(samp2dr) DescriptorSet 0
Decorate 1080(isamp2DA) DescriptorSet 0
Decorate 1097(gl_FragCoord) BuiltIn FragCoord
Decorate 1099(vl2) Location 6
Decorate 1107(u) Flat
Decorate 1116(gl_PrimitiveID) Flat
Decorate 1116(gl_PrimitiveID) BuiltIn PrimitiveId
2: TypeVoid
3: TypeFunction 2
10: TypeFloat 32
@ -109,144 +109,143 @@ spv.400.frag
572: 437(bvec2) ConstantComposite 563 563
581: 446(bvec3) ConstantComposite 563 563 563
590: 455(bvec4) ConstantComposite 563 563 563 563
715: 10(float) Constant 1067869798
734: TypeMatrix 43(f64vec2) 2
735: TypePointer Function 734
740: TypeMatrix 48(f64vec3) 3
741: TypePointer Function 740
746: TypeMatrix 53(f64vec4) 4
747: TypePointer Function 746
752: TypeMatrix 48(f64vec3) 2
753: TypePointer Function 752
758: TypeMatrix 43(f64vec2) 3
759: TypePointer Function 758
764: TypeMatrix 53(f64vec4) 2
765: TypePointer Function 764
770: TypeMatrix 43(f64vec2) 4
771: TypePointer Function 770
776: TypeMatrix 53(f64vec4) 3
777: TypePointer Function 776
782: TypeMatrix 48(f64vec3) 4
783: TypePointer Function 782
951: 32(int) Constant 1
955: 32(int) Constant 2
959: 32(int) Constant 3
963: 23(int) Constant 1
967: 23(int) Constant 2
993: 10(float) Constant 1065353216
1015: TypePointer Function 11(fvec4)
1017: TypeImage 10(float) 2D sampled format:Unknown
1018: TypeSampledImage 1017
1019: 32(int) Constant 5
1020: TypeArray 1018 1019
1021: TypePointer UniformConstant 1020
1022(arrayedSampler): 1021(ptr) Variable UniformConstant
1023: TypePointer Input 23(int)
1024(i): 1023(ptr) Variable Input
1026: TypePointer UniformConstant 1018
1029: TypePointer Input 20(fvec2)
1030(c2D): 1029(ptr) Variable Input
1033: TypeArray 10(float) 955
1034: TypePointer Input 1033
1035(gl_ClipDistance): 1034(ptr) Variable Input
1036: TypePointer Input 10(float)
1040: TypeVector 10(float) 3
1045: TypeVector 32(int) 4
1046: TypePointer Output 1045(ivec4)
1047(uoutp): 1046(ptr) Variable Output
1048: TypeImage 32(int) Rect sampled format:Unknown
1049: TypeSampledImage 1048
1050: TypePointer UniformConstant 1049
1051(samp2dr): 1050(ptr) Variable UniformConstant
1054: 32(int) Constant 4
1055: TypeArray 24(ivec2) 1054
1056: 24(ivec2) ConstantComposite 963 967
1057: 23(int) Constant 15
1058: 23(int) Constant 16
1059: 24(ivec2) ConstantComposite 1057 1058
1060: 23(int) Constant 4294967294
1061: 23(int) Constant 0
737: TypeMatrix 43(f64vec2) 2
738: TypePointer Function 737
743: TypeMatrix 48(f64vec3) 3
744: TypePointer Function 743
749: TypeMatrix 53(f64vec4) 4
750: TypePointer Function 749
755: TypeMatrix 48(f64vec3) 2
756: TypePointer Function 755
761: TypeMatrix 43(f64vec2) 3
762: TypePointer Function 761
767: TypeMatrix 53(f64vec4) 2
768: TypePointer Function 767
773: TypeMatrix 43(f64vec2) 4
774: TypePointer Function 773
779: TypeMatrix 53(f64vec4) 3
780: TypePointer Function 779
785: TypeMatrix 48(f64vec3) 4
786: TypePointer Function 785
954: 32(int) Constant 1
958: 32(int) Constant 2
962: 32(int) Constant 3
966: 23(int) Constant 1
970: 23(int) Constant 2
996: 10(float) Constant 1065353216
1018: TypePointer Function 11(fvec4)
1020: TypeImage 10(float) 2D sampled format:Unknown
1021: TypeSampledImage 1020
1022: 32(int) Constant 5
1023: TypeArray 1021 1022
1024: TypePointer UniformConstant 1023
1025(arrayedSampler): 1024(ptr) Variable UniformConstant
1026: TypePointer Input 23(int)
1027(i): 1026(ptr) Variable Input
1029: TypePointer UniformConstant 1021
1032: TypePointer Input 20(fvec2)
1033(c2D): 1032(ptr) Variable Input
1036: TypeArray 10(float) 958
1037: TypePointer Input 1036
1038(gl_ClipDistance): 1037(ptr) Variable Input
1039: TypePointer Input 10(float)
1043: TypeVector 10(float) 3
1048: TypeVector 32(int) 4
1049: TypePointer Output 1048(ivec4)
1050(uoutp): 1049(ptr) Variable Output
1051: TypeImage 32(int) Rect sampled format:Unknown
1052: TypeSampledImage 1051
1053: TypePointer UniformConstant 1052
1054(samp2dr): 1053(ptr) Variable UniformConstant
1057: 32(int) Constant 4
1058: TypeArray 24(ivec2) 1057
1059: 24(ivec2) ConstantComposite 966 970
1060: 23(int) Constant 15
1061: 23(int) Constant 16
1062: 24(ivec2) ConstantComposite 1060 1061
1063: 1055 ConstantComposite 1056 27 1059 1062
1071: TypeVector 23(int) 4
1072: TypePointer Output 1071(ivec4)
1073(ioutp): 1072(ptr) Variable Output
1074: TypeImage 23(int) 2D array sampled format:Unknown
1075: TypeSampledImage 1074
1076: TypePointer UniformConstant 1075
1077(isamp2DA): 1076(ptr) Variable UniformConstant
1079: 10(float) Constant 1036831949
1080: 1040(fvec3) ConstantComposite 1079 1079 1079
1081: 24(ivec2) ConstantComposite 963 963
1093: TypePointer Input 11(fvec4)
1094(gl_FragCoord): 1093(ptr) Variable Input
1096(vl2): 1093(ptr) Variable Input
1101: TypePointer Output 32(int)
1102(uo): 1101(ptr) Variable Output
1103: TypePointer Input 32(int)
1104(u): 1103(ptr) Variable Input
1111: TypePointer Function 23(int)
1113(gl_PrimitiveID): 1023(ptr) Variable Input
1063: 23(int) Constant 4294967294
1064: 23(int) Constant 0
1065: 24(ivec2) ConstantComposite 1063 1064
1066: 1058 ConstantComposite 1059 27 1062 1065
1074: TypeVector 23(int) 4
1075: TypePointer Output 1074(ivec4)
1076(ioutp): 1075(ptr) Variable Output
1077: TypeImage 23(int) 2D array sampled format:Unknown
1078: TypeSampledImage 1077
1079: TypePointer UniformConstant 1078
1080(isamp2DA): 1079(ptr) Variable UniformConstant
1082: 10(float) Constant 1036831949
1083: 1043(fvec3) ConstantComposite 1082 1082 1082
1084: 24(ivec2) ConstantComposite 966 966
1096: TypePointer Input 11(fvec4)
1097(gl_FragCoord): 1096(ptr) Variable Input
1099(vl2): 1096(ptr) Variable Input
1104: TypePointer Output 32(int)
1105(uo): 1104(ptr) Variable Output
1106: TypePointer Input 32(int)
1107(u): 1106(ptr) Variable Input
1114: TypePointer Function 23(int)
1116(gl_PrimitiveID): 1026(ptr) Variable Input
4(main): 2 Function None 3
5: Label
1016(v): 1015(ptr) Variable Function
1112(id): 1111(ptr) Variable Function
1025: 23(int) Load 1024(i)
1027: 1026(ptr) AccessChain 1022(arrayedSampler) 1025
1028: 1018 Load 1027
1031: 20(fvec2) Load 1030(c2D)
1032: 11(fvec4) ImageSampleImplicitLod 1028 1031
Store 1016(v) 1032
1037: 1036(ptr) AccessChain 1035(gl_ClipDistance) 963
1038: 10(float) Load 1037
1039: 34(ptr) AccessChain 13(outp) 33
Store 1039 1038
1041: 11(fvec4) Load 1016(v)
1042: 1040(fvec3) VectorShuffle 1041 1041 1 2 3
1043: 11(fvec4) Load 13(outp)
1044: 11(fvec4) VectorShuffle 1043 1042 0 4 5 6
Store 13(outp) 1044
1052: 1049 Load 1051(samp2dr)
1053: 20(fvec2) Load 1030(c2D)
1064: 1045(ivec4) ImageGather 1052 1053 967 ConstOffsets 1063
Store 1047(uoutp) 1064
1065: 1026(ptr) AccessChain 1022(arrayedSampler) 1061
1066: 1018 Load 1065
1067: 20(fvec2) Load 1030(c2D)
1068: 11(fvec4) ImageGather 1066 1067 1061
1069: 11(fvec4) Load 13(outp)
1070: 11(fvec4) FAdd 1069 1068
Store 13(outp) 1070
1078: 1075 Load 1077(isamp2DA)
1082: 1071(ivec4) ImageGather 1078 1080 25 ConstOffset 1081
Store 1073(ioutp) 1082
1083: 1075 Load 1077(isamp2DA)
1084: 1071(ivec4) ImageGather 1083 1080 25 ConstOffset 1081
1085: 1071(ivec4) Load 1073(ioutp)
1086: 1071(ivec4) IAdd 1085 1084
Store 1073(ioutp) 1086
1087: 1075 Load 1077(isamp2DA)
1088: 23(int) Load 1024(i)
1089: 24(ivec2) CompositeConstruct 1088 1088
1090: 1071(ivec4) ImageGather 1087 1080 1061 Offset 1089
1091: 1071(ivec4) Load 1073(ioutp)
1092: 1071(ivec4) IAdd 1091 1090
Store 1073(ioutp) 1092
1095: 11(fvec4) Load 1094(gl_FragCoord)
1097: 11(fvec4) Load 1096(vl2)
1098: 11(fvec4) FAdd 1095 1097
1099: 11(fvec4) Load 13(outp)
1100: 11(fvec4) FAdd 1099 1098
Store 13(outp) 1100
1105: 32(int) Load 1104(u)
1106: 23(int) Load 1024(i)
1107: 32(int) Bitcast 1106
1108: 32(int) UMod 1105 1107
Store 1102(uo) 1108
1109: 2 FunctionCall 6(foo23()
1110: 2 FunctionCall 8(doubles()
1114: 23(int) Load 1113(gl_PrimitiveID)
Store 1112(id) 1114
1019(v): 1018(ptr) Variable Function
1115(id): 1114(ptr) Variable Function
1028: 23(int) Load 1027(i)
1030: 1029(ptr) AccessChain 1025(arrayedSampler) 1028
1031: 1021 Load 1030
1034: 20(fvec2) Load 1033(c2D)
1035: 11(fvec4) ImageSampleImplicitLod 1031 1034
Store 1019(v) 1035
1040: 1039(ptr) AccessChain 1038(gl_ClipDistance) 966
1041: 10(float) Load 1040
1042: 34(ptr) AccessChain 13(outp) 33
Store 1042 1041
1044: 11(fvec4) Load 1019(v)
1045: 1043(fvec3) VectorShuffle 1044 1044 1 2 3
1046: 11(fvec4) Load 13(outp)
1047: 11(fvec4) VectorShuffle 1046 1045 0 4 5 6
Store 13(outp) 1047
1055: 1052 Load 1054(samp2dr)
1056: 20(fvec2) Load 1033(c2D)
1067: 1048(ivec4) ImageGather 1055 1056 970 ConstOffsets 1066
Store 1050(uoutp) 1067
1068: 1029(ptr) AccessChain 1025(arrayedSampler) 1064
1069: 1021 Load 1068
1070: 20(fvec2) Load 1033(c2D)
1071: 11(fvec4) ImageGather 1069 1070 1064
1072: 11(fvec4) Load 13(outp)
1073: 11(fvec4) FAdd 1072 1071
Store 13(outp) 1073
1081: 1078 Load 1080(isamp2DA)
1085: 1074(ivec4) ImageGather 1081 1083 25 ConstOffset 1084
Store 1076(ioutp) 1085
1086: 1078 Load 1080(isamp2DA)
1087: 1074(ivec4) ImageGather 1086 1083 25 ConstOffset 1084
1088: 1074(ivec4) Load 1076(ioutp)
1089: 1074(ivec4) IAdd 1088 1087
Store 1076(ioutp) 1089
1090: 1078 Load 1080(isamp2DA)
1091: 23(int) Load 1027(i)
1092: 24(ivec2) CompositeConstruct 1091 1091
1093: 1074(ivec4) ImageGather 1090 1083 1064 Offset 1092
1094: 1074(ivec4) Load 1076(ioutp)
1095: 1074(ivec4) IAdd 1094 1093
Store 1076(ioutp) 1095
1098: 11(fvec4) Load 1097(gl_FragCoord)
1100: 11(fvec4) Load 1099(vl2)
1101: 11(fvec4) FAdd 1098 1100
1102: 11(fvec4) Load 13(outp)
1103: 11(fvec4) FAdd 1102 1101
Store 13(outp) 1103
1108: 32(int) Load 1107(u)
1109: 23(int) Load 1027(i)
1110: 32(int) Bitcast 1109
1111: 32(int) UMod 1108 1110
Store 1105(uo) 1111
1112: 2 FunctionCall 6(foo23()
1113: 2 FunctionCall 8(doubles()
1117: 23(int) Load 1116(gl_PrimitiveID)
Store 1115(id) 1117
Return
FunctionEnd
6(foo23(): 2 Function None 3
@ -278,15 +277,15 @@ spv.400.frag
566: 438(ptr) Variable Function
575: 447(ptr) Variable Function
584: 456(ptr) Variable Function
736(dmat2v): 735(ptr) Variable Function
742(dmat3v): 741(ptr) Variable Function
748(dmat4v): 747(ptr) Variable Function
754(dmat2x3v): 753(ptr) Variable Function
760(dmat3x2v): 759(ptr) Variable Function
766(dmat2x4v): 765(ptr) Variable Function
772(dmat4x2v): 771(ptr) Variable Function
778(dmat3x4v): 777(ptr) Variable Function
784(dmat4x3v): 783(ptr) Variable Function
739(dmat2v): 738(ptr) Variable Function
745(dmat3v): 744(ptr) Variable Function
751(dmat4v): 750(ptr) Variable Function
757(dmat2x3v): 756(ptr) Variable Function
763(dmat3x2v): 762(ptr) Variable Function
769(dmat2x4v): 768(ptr) Variable Function
775(dmat4x2v): 774(ptr) Variable Function
781(dmat3x4v): 780(ptr) Variable Function
787(dmat4x3v): 786(ptr) Variable Function
Store 41(doublev) 42
Store 45(dvec2v) 47
Store 50(dvec3v) 52
@ -1080,309 +1079,313 @@ spv.400.frag
Store 55(dvec4v) 712
713:39(float64_t) Load 41(doublev)
714:39(float64_t) Load 41(doublev)
715:39(float64_t) Load 41(doublev)
716:39(float64_t) ExtInst 1(GLSL.std.450) 72(Refract) 713 714 715
717:39(float64_t) Load 41(doublev)
718:39(float64_t) FAdd 717 716
Store 41(doublev) 718
719: 43(f64vec2) Load 45(dvec2v)
720: 43(f64vec2) Load 45(dvec2v)
721: 43(f64vec2) ExtInst 1(GLSL.std.450) 72(Refract) 719 720 715
722: 43(f64vec2) Load 45(dvec2v)
723: 43(f64vec2) FAdd 722 721
Store 45(dvec2v) 723
724: 48(f64vec3) Load 50(dvec3v)
721:39(float64_t) Load 41(doublev)
722: 43(f64vec2) ExtInst 1(GLSL.std.450) 72(Refract) 719 720 721
723: 43(f64vec2) Load 45(dvec2v)
724: 43(f64vec2) FAdd 723 722
Store 45(dvec2v) 724
725: 48(f64vec3) Load 50(dvec3v)
726: 48(f64vec3) ExtInst 1(GLSL.std.450) 72(Refract) 724 725 715
727: 48(f64vec3) Load 50(dvec3v)
728: 48(f64vec3) FAdd 727 726
Store 50(dvec3v) 728
729: 53(f64vec4) Load 55(dvec4v)
730: 53(f64vec4) Load 55(dvec4v)
731: 53(f64vec4) ExtInst 1(GLSL.std.450) 72(Refract) 729 730 715
726: 48(f64vec3) Load 50(dvec3v)
727:39(float64_t) Load 41(doublev)
728: 48(f64vec3) ExtInst 1(GLSL.std.450) 72(Refract) 725 726 727
729: 48(f64vec3) Load 50(dvec3v)
730: 48(f64vec3) FAdd 729 728
Store 50(dvec3v) 730
731: 53(f64vec4) Load 55(dvec4v)
732: 53(f64vec4) Load 55(dvec4v)
733: 53(f64vec4) FAdd 732 731
Store 55(dvec4v) 733
737: 43(f64vec2) Load 45(dvec2v)
738: 43(f64vec2) Load 45(dvec2v)
739: 734 OuterProduct 737 738
Store 736(dmat2v) 739
743: 48(f64vec3) Load 50(dvec3v)
744: 48(f64vec3) Load 50(dvec3v)
745: 740 OuterProduct 743 744
Store 742(dmat3v) 745
749: 53(f64vec4) Load 55(dvec4v)
750: 53(f64vec4) Load 55(dvec4v)
751: 746 OuterProduct 749 750
Store 748(dmat4v) 751
755: 48(f64vec3) Load 50(dvec3v)
756: 43(f64vec2) Load 45(dvec2v)
757: 752 OuterProduct 755 756
Store 754(dmat2x3v) 757
761: 43(f64vec2) Load 45(dvec2v)
762: 48(f64vec3) Load 50(dvec3v)
763: 758 OuterProduct 761 762
Store 760(dmat3x2v) 763
767: 53(f64vec4) Load 55(dvec4v)
768: 43(f64vec2) Load 45(dvec2v)
769: 764 OuterProduct 767 768
Store 766(dmat2x4v) 769
773: 43(f64vec2) Load 45(dvec2v)
774: 53(f64vec4) Load 55(dvec4v)
775: 770 OuterProduct 773 774
Store 772(dmat4x2v) 775
779: 53(f64vec4) Load 55(dvec4v)
780: 48(f64vec3) Load 50(dvec3v)
781: 776 OuterProduct 779 780
Store 778(dmat3x4v) 781
785: 48(f64vec3) Load 50(dvec3v)
786: 53(f64vec4) Load 55(dvec4v)
787: 782 OuterProduct 785 786
Store 784(dmat4x3v) 787
788: 734 Load 736(dmat2v)
789: 734 Load 736(dmat2v)
790: 43(f64vec2) CompositeExtract 788 0
791: 43(f64vec2) CompositeExtract 789 0
792: 43(f64vec2) FMul 790 791
793: 43(f64vec2) CompositeExtract 788 1
794: 43(f64vec2) CompositeExtract 789 1
733:39(float64_t) Load 41(doublev)
734: 53(f64vec4) ExtInst 1(GLSL.std.450) 72(Refract) 731 732 733
735: 53(f64vec4) Load 55(dvec4v)
736: 53(f64vec4) FAdd 735 734
Store 55(dvec4v) 736
740: 43(f64vec2) Load 45(dvec2v)
741: 43(f64vec2) Load 45(dvec2v)
742: 737 OuterProduct 740 741
Store 739(dmat2v) 742
746: 48(f64vec3) Load 50(dvec3v)
747: 48(f64vec3) Load 50(dvec3v)
748: 743 OuterProduct 746 747
Store 745(dmat3v) 748
752: 53(f64vec4) Load 55(dvec4v)
753: 53(f64vec4) Load 55(dvec4v)
754: 749 OuterProduct 752 753
Store 751(dmat4v) 754
758: 48(f64vec3) Load 50(dvec3v)
759: 43(f64vec2) Load 45(dvec2v)
760: 755 OuterProduct 758 759
Store 757(dmat2x3v) 760
764: 43(f64vec2) Load 45(dvec2v)
765: 48(f64vec3) Load 50(dvec3v)
766: 761 OuterProduct 764 765
Store 763(dmat3x2v) 766
770: 53(f64vec4) Load 55(dvec4v)
771: 43(f64vec2) Load 45(dvec2v)
772: 767 OuterProduct 770 771
Store 769(dmat2x4v) 772
776: 43(f64vec2) Load 45(dvec2v)
777: 53(f64vec4) Load 55(dvec4v)
778: 773 OuterProduct 776 777
Store 775(dmat4x2v) 778
782: 53(f64vec4) Load 55(dvec4v)
783: 48(f64vec3) Load 50(dvec3v)
784: 779 OuterProduct 782 783
Store 781(dmat3x4v) 784
788: 48(f64vec3) Load 50(dvec3v)
789: 53(f64vec4) Load 55(dvec4v)
790: 785 OuterProduct 788 789
Store 787(dmat4x3v) 790
791: 737 Load 739(dmat2v)
792: 737 Load 739(dmat2v)
793: 43(f64vec2) CompositeExtract 791 0
794: 43(f64vec2) CompositeExtract 792 0
795: 43(f64vec2) FMul 793 794
796: 734 CompositeConstruct 792 795
797: 734 Load 736(dmat2v)
798: 734 MatrixTimesMatrix 797 796
Store 736(dmat2v) 798
799: 740 Load 742(dmat3v)
800: 740 Load 742(dmat3v)
801: 48(f64vec3) CompositeExtract 799 0
802: 48(f64vec3) CompositeExtract 800 0
803: 48(f64vec3) FMul 801 802
804: 48(f64vec3) CompositeExtract 799 1
805: 48(f64vec3) CompositeExtract 800 1
796: 43(f64vec2) CompositeExtract 791 1
797: 43(f64vec2) CompositeExtract 792 1
798: 43(f64vec2) FMul 796 797
799: 737 CompositeConstruct 795 798
800: 737 Load 739(dmat2v)
801: 737 MatrixTimesMatrix 800 799
Store 739(dmat2v) 801
802: 743 Load 745(dmat3v)
803: 743 Load 745(dmat3v)
804: 48(f64vec3) CompositeExtract 802 0
805: 48(f64vec3) CompositeExtract 803 0
806: 48(f64vec3) FMul 804 805
807: 48(f64vec3) CompositeExtract 799 2
808: 48(f64vec3) CompositeExtract 800 2
807: 48(f64vec3) CompositeExtract 802 1
808: 48(f64vec3) CompositeExtract 803 1
809: 48(f64vec3) FMul 807 808
810: 740 CompositeConstruct 803 806 809
811: 740 Load 742(dmat3v)
812: 740 MatrixTimesMatrix 811 810
Store 742(dmat3v) 812
813: 746 Load 748(dmat4v)
814: 746 Load 748(dmat4v)
815: 53(f64vec4) CompositeExtract 813 0
816: 53(f64vec4) CompositeExtract 814 0
817: 53(f64vec4) FMul 815 816
818: 53(f64vec4) CompositeExtract 813 1
819: 53(f64vec4) CompositeExtract 814 1
810: 48(f64vec3) CompositeExtract 802 2
811: 48(f64vec3) CompositeExtract 803 2
812: 48(f64vec3) FMul 810 811
813: 743 CompositeConstruct 806 809 812
814: 743 Load 745(dmat3v)
815: 743 MatrixTimesMatrix 814 813
Store 745(dmat3v) 815
816: 749 Load 751(dmat4v)
817: 749 Load 751(dmat4v)
818: 53(f64vec4) CompositeExtract 816 0
819: 53(f64vec4) CompositeExtract 817 0
820: 53(f64vec4) FMul 818 819
821: 53(f64vec4) CompositeExtract 813 2
822: 53(f64vec4) CompositeExtract 814 2
821: 53(f64vec4) CompositeExtract 816 1
822: 53(f64vec4) CompositeExtract 817 1
823: 53(f64vec4) FMul 821 822
824: 53(f64vec4) CompositeExtract 813 3
825: 53(f64vec4) CompositeExtract 814 3
824: 53(f64vec4) CompositeExtract 816 2
825: 53(f64vec4) CompositeExtract 817 2
826: 53(f64vec4) FMul 824 825
827: 746 CompositeConstruct 817 820 823 826
828: 746 Load 748(dmat4v)
829: 746 MatrixTimesMatrix 828 827
Store 748(dmat4v) 829
830: 752 Load 754(dmat2x3v)
831: 752 Load 754(dmat2x3v)
832: 48(f64vec3) CompositeExtract 830 0
833: 48(f64vec3) CompositeExtract 831 0
834: 48(f64vec3) FMul 832 833
835: 48(f64vec3) CompositeExtract 830 1
836: 48(f64vec3) CompositeExtract 831 1
827: 53(f64vec4) CompositeExtract 816 3
828: 53(f64vec4) CompositeExtract 817 3
829: 53(f64vec4) FMul 827 828
830: 749 CompositeConstruct 820 823 826 829
831: 749 Load 751(dmat4v)
832: 749 MatrixTimesMatrix 831 830
Store 751(dmat4v) 832
833: 755 Load 757(dmat2x3v)
834: 755 Load 757(dmat2x3v)
835: 48(f64vec3) CompositeExtract 833 0
836: 48(f64vec3) CompositeExtract 834 0
837: 48(f64vec3) FMul 835 836
838: 752 CompositeConstruct 834 837
Store 754(dmat2x3v) 838
839: 764 Load 766(dmat2x4v)
840: 764 Load 766(dmat2x4v)
841: 53(f64vec4) CompositeExtract 839 0
842: 53(f64vec4) CompositeExtract 840 0
843: 53(f64vec4) FMul 841 842
844: 53(f64vec4) CompositeExtract 839 1
845: 53(f64vec4) CompositeExtract 840 1
838: 48(f64vec3) CompositeExtract 833 1
839: 48(f64vec3) CompositeExtract 834 1
840: 48(f64vec3) FMul 838 839
841: 755 CompositeConstruct 837 840
Store 757(dmat2x3v) 841
842: 767 Load 769(dmat2x4v)
843: 767 Load 769(dmat2x4v)
844: 53(f64vec4) CompositeExtract 842 0
845: 53(f64vec4) CompositeExtract 843 0
846: 53(f64vec4) FMul 844 845
847: 764 CompositeConstruct 843 846
Store 766(dmat2x4v) 847
848: 758 Load 760(dmat3x2v)
849: 758 Load 760(dmat3x2v)
850: 43(f64vec2) CompositeExtract 848 0
851: 43(f64vec2) CompositeExtract 849 0
852: 43(f64vec2) FMul 850 851
853: 43(f64vec2) CompositeExtract 848 1
854: 43(f64vec2) CompositeExtract 849 1
847: 53(f64vec4) CompositeExtract 842 1
848: 53(f64vec4) CompositeExtract 843 1
849: 53(f64vec4) FMul 847 848
850: 767 CompositeConstruct 846 849
Store 769(dmat2x4v) 850
851: 761 Load 763(dmat3x2v)
852: 761 Load 763(dmat3x2v)
853: 43(f64vec2) CompositeExtract 851 0
854: 43(f64vec2) CompositeExtract 852 0
855: 43(f64vec2) FMul 853 854
856: 43(f64vec2) CompositeExtract 848 2
857: 43(f64vec2) CompositeExtract 849 2
856: 43(f64vec2) CompositeExtract 851 1
857: 43(f64vec2) CompositeExtract 852 1
858: 43(f64vec2) FMul 856 857
859: 758 CompositeConstruct 852 855 858
Store 760(dmat3x2v) 859
860: 776 Load 778(dmat3x4v)
861: 776 Load 778(dmat3x4v)
862: 53(f64vec4) CompositeExtract 860 0
863: 53(f64vec4) CompositeExtract 861 0
864: 53(f64vec4) FMul 862 863
865: 53(f64vec4) CompositeExtract 860 1
866: 53(f64vec4) CompositeExtract 861 1
859: 43(f64vec2) CompositeExtract 851 2
860: 43(f64vec2) CompositeExtract 852 2
861: 43(f64vec2) FMul 859 860
862: 761 CompositeConstruct 855 858 861
Store 763(dmat3x2v) 862
863: 779 Load 781(dmat3x4v)
864: 779 Load 781(dmat3x4v)
865: 53(f64vec4) CompositeExtract 863 0
866: 53(f64vec4) CompositeExtract 864 0
867: 53(f64vec4) FMul 865 866
868: 53(f64vec4) CompositeExtract 860 2
869: 53(f64vec4) CompositeExtract 861 2
868: 53(f64vec4) CompositeExtract 863 1
869: 53(f64vec4) CompositeExtract 864 1
870: 53(f64vec4) FMul 868 869
871: 776 CompositeConstruct 864 867 870
Store 778(dmat3x4v) 871
872: 770 Load 772(dmat4x2v)
873: 770 Load 772(dmat4x2v)
874: 43(f64vec2) CompositeExtract 872 0
875: 43(f64vec2) CompositeExtract 873 0
876: 43(f64vec2) FMul 874 875
877: 43(f64vec2) CompositeExtract 872 1
878: 43(f64vec2) CompositeExtract 873 1
871: 53(f64vec4) CompositeExtract 863 2
872: 53(f64vec4) CompositeExtract 864 2
873: 53(f64vec4) FMul 871 872
874: 779 CompositeConstruct 867 870 873
Store 781(dmat3x4v) 874
875: 773 Load 775(dmat4x2v)
876: 773 Load 775(dmat4x2v)
877: 43(f64vec2) CompositeExtract 875 0
878: 43(f64vec2) CompositeExtract 876 0
879: 43(f64vec2) FMul 877 878
880: 43(f64vec2) CompositeExtract 872 2
881: 43(f64vec2) CompositeExtract 873 2
880: 43(f64vec2) CompositeExtract 875 1
881: 43(f64vec2) CompositeExtract 876 1
882: 43(f64vec2) FMul 880 881
883: 43(f64vec2) CompositeExtract 872 3
884: 43(f64vec2) CompositeExtract 873 3
883: 43(f64vec2) CompositeExtract 875 2
884: 43(f64vec2) CompositeExtract 876 2
885: 43(f64vec2) FMul 883 884
886: 770 CompositeConstruct 876 879 882 885
Store 772(dmat4x2v) 886
887: 782 Load 784(dmat4x3v)
888: 782 Load 784(dmat4x3v)
889: 48(f64vec3) CompositeExtract 887 0
890: 48(f64vec3) CompositeExtract 888 0
891: 48(f64vec3) FMul 889 890
892: 48(f64vec3) CompositeExtract 887 1
893: 48(f64vec3) CompositeExtract 888 1
886: 43(f64vec2) CompositeExtract 875 3
887: 43(f64vec2) CompositeExtract 876 3
888: 43(f64vec2) FMul 886 887
889: 773 CompositeConstruct 879 882 885 888
Store 775(dmat4x2v) 889
890: 785 Load 787(dmat4x3v)
891: 785 Load 787(dmat4x3v)
892: 48(f64vec3) CompositeExtract 890 0
893: 48(f64vec3) CompositeExtract 891 0
894: 48(f64vec3) FMul 892 893
895: 48(f64vec3) CompositeExtract 887 2
896: 48(f64vec3) CompositeExtract 888 2
895: 48(f64vec3) CompositeExtract 890 1
896: 48(f64vec3) CompositeExtract 891 1
897: 48(f64vec3) FMul 895 896
898: 48(f64vec3) CompositeExtract 887 3
899: 48(f64vec3) CompositeExtract 888 3
898: 48(f64vec3) CompositeExtract 890 2
899: 48(f64vec3) CompositeExtract 891 2
900: 48(f64vec3) FMul 898 899
901: 782 CompositeConstruct 891 894 897 900
Store 784(dmat4x3v) 901
902: 734 Load 736(dmat2v)
903: 734 Transpose 902
904: 734 Load 736(dmat2v)
905: 734 MatrixTimesMatrix 904 903
Store 736(dmat2v) 905
906: 740 Load 742(dmat3v)
907: 740 Transpose 906
908: 740 Load 742(dmat3v)
909: 740 MatrixTimesMatrix 908 907
Store 742(dmat3v) 909
910: 746 Load 748(dmat4v)
911: 746 Transpose 910
912: 746 Load 748(dmat4v)
913: 746 MatrixTimesMatrix 912 911
Store 748(dmat4v) 913
914: 758 Load 760(dmat3x2v)
915: 752 Transpose 914
Store 754(dmat2x3v) 915
916: 752 Load 754(dmat2x3v)
917: 758 Transpose 916
Store 760(dmat3x2v) 917
918: 770 Load 772(dmat4x2v)
919: 764 Transpose 918
Store 766(dmat2x4v) 919
920: 764 Load 766(dmat2x4v)
921: 770 Transpose 920
Store 772(dmat4x2v) 921
922: 782 Load 784(dmat4x3v)
923: 776 Transpose 922
Store 778(dmat3x4v) 923
924: 776 Load 778(dmat3x4v)
925: 782 Transpose 924
Store 784(dmat4x3v) 925
926: 734 Load 736(dmat2v)
927:39(float64_t) ExtInst 1(GLSL.std.450) 33(Determinant) 926
928:39(float64_t) Load 41(doublev)
929:39(float64_t) FAdd 928 927
Store 41(doublev) 929
930: 740 Load 742(dmat3v)
931:39(float64_t) ExtInst 1(GLSL.std.450) 33(Determinant) 930
932:39(float64_t) Load 41(doublev)
933:39(float64_t) FAdd 932 931
Store 41(doublev) 933
934: 746 Load 748(dmat4v)
935:39(float64_t) ExtInst 1(GLSL.std.450) 33(Determinant) 934
936:39(float64_t) Load 41(doublev)
937:39(float64_t) FAdd 936 935
Store 41(doublev) 937
938: 734 Load 736(dmat2v)
939: 734 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 938
940: 734 Load 736(dmat2v)
941: 734 MatrixTimesMatrix 940 939
Store 736(dmat2v) 941
942: 740 Load 742(dmat3v)
943: 740 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 942
944: 740 Load 742(dmat3v)
945: 740 MatrixTimesMatrix 944 943
Store 742(dmat3v) 945
946: 746 Load 748(dmat4v)
947: 746 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 946
948: 746 Load 748(dmat4v)
949: 746 MatrixTimesMatrix 948 947
Store 748(dmat4v) 949
950:39(float64_t) Load 41(doublev)
952: 40(ptr) AccessChain 45(dvec2v) 951
953:39(float64_t) Load 952
954:39(float64_t) FAdd 950 953
956: 40(ptr) AccessChain 50(dvec3v) 955
957:39(float64_t) Load 956
958:39(float64_t) FAdd 954 957
960: 40(ptr) AccessChain 55(dvec4v) 959
961:39(float64_t) Load 960
962:39(float64_t) FAdd 958 961
964: 40(ptr) AccessChain 736(dmat2v) 963 951
965:39(float64_t) Load 964
966:39(float64_t) FAdd 962 965
968: 40(ptr) AccessChain 742(dmat3v) 967 955
969:39(float64_t) Load 968
970:39(float64_t) FAdd 966 969
971: 40(ptr) AccessChain 748(dmat4v) 25 959
901: 48(f64vec3) CompositeExtract 890 3
902: 48(f64vec3) CompositeExtract 891 3
903: 48(f64vec3) FMul 901 902
904: 785 CompositeConstruct 894 897 900 903
Store 787(dmat4x3v) 904
905: 737 Load 739(dmat2v)
906: 737 Transpose 905
907: 737 Load 739(dmat2v)
908: 737 MatrixTimesMatrix 907 906
Store 739(dmat2v) 908
909: 743 Load 745(dmat3v)
910: 743 Transpose 909
911: 743 Load 745(dmat3v)
912: 743 MatrixTimesMatrix 911 910
Store 745(dmat3v) 912
913: 749 Load 751(dmat4v)
914: 749 Transpose 913
915: 749 Load 751(dmat4v)
916: 749 MatrixTimesMatrix 915 914
Store 751(dmat4v) 916
917: 761 Load 763(dmat3x2v)
918: 755 Transpose 917
Store 757(dmat2x3v) 918
919: 755 Load 757(dmat2x3v)
920: 761 Transpose 919
Store 763(dmat3x2v) 920
921: 773 Load 775(dmat4x2v)
922: 767 Transpose 921
Store 769(dmat2x4v) 922
923: 767 Load 769(dmat2x4v)
924: 773 Transpose 923
Store 775(dmat4x2v) 924
925: 785 Load 787(dmat4x3v)
926: 779 Transpose 925
Store 781(dmat3x4v) 926
927: 779 Load 781(dmat3x4v)
928: 785 Transpose 927
Store 787(dmat4x3v) 928
929: 737 Load 739(dmat2v)
930:39(float64_t) ExtInst 1(GLSL.std.450) 33(Determinant) 929
931:39(float64_t) Load 41(doublev)
932:39(float64_t) FAdd 931 930
Store 41(doublev) 932
933: 743 Load 745(dmat3v)
934:39(float64_t) ExtInst 1(GLSL.std.450) 33(Determinant) 933
935:39(float64_t) Load 41(doublev)
936:39(float64_t) FAdd 935 934
Store 41(doublev) 936
937: 749 Load 751(dmat4v)
938:39(float64_t) ExtInst 1(GLSL.std.450) 33(Determinant) 937
939:39(float64_t) Load 41(doublev)
940:39(float64_t) FAdd 939 938
Store 41(doublev) 940
941: 737 Load 739(dmat2v)
942: 737 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 941
943: 737 Load 739(dmat2v)
944: 737 MatrixTimesMatrix 943 942
Store 739(dmat2v) 944
945: 743 Load 745(dmat3v)
946: 743 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 945
947: 743 Load 745(dmat3v)
948: 743 MatrixTimesMatrix 947 946
Store 745(dmat3v) 948
949: 749 Load 751(dmat4v)
950: 749 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 949
951: 749 Load 751(dmat4v)
952: 749 MatrixTimesMatrix 951 950
Store 751(dmat4v) 952
953:39(float64_t) Load 41(doublev)
955: 40(ptr) AccessChain 45(dvec2v) 954
956:39(float64_t) Load 955
957:39(float64_t) FAdd 953 956
959: 40(ptr) AccessChain 50(dvec3v) 958
960:39(float64_t) Load 959
961:39(float64_t) FAdd 957 960
963: 40(ptr) AccessChain 55(dvec4v) 962
964:39(float64_t) Load 963
965:39(float64_t) FAdd 961 964
967: 40(ptr) AccessChain 739(dmat2v) 966 954
968:39(float64_t) Load 967
969:39(float64_t) FAdd 965 968
971: 40(ptr) AccessChain 745(dmat3v) 970 958
972:39(float64_t) Load 971
973:39(float64_t) FAdd 970 972
974: 40(ptr) AccessChain 754(dmat2x3v) 963 951
973:39(float64_t) FAdd 969 972
974: 40(ptr) AccessChain 751(dmat4v) 25 962
975:39(float64_t) Load 974
976:39(float64_t) FAdd 973 975
977: 40(ptr) AccessChain 760(dmat3x2v) 963 951
977: 40(ptr) AccessChain 757(dmat2x3v) 966 954
978:39(float64_t) Load 977
979:39(float64_t) FAdd 976 978
980: 40(ptr) AccessChain 778(dmat3x4v) 967 955
980: 40(ptr) AccessChain 763(dmat3x2v) 966 954
981:39(float64_t) Load 980
982:39(float64_t) FAdd 979 981
983: 40(ptr) AccessChain 784(dmat4x3v) 967 955
983: 40(ptr) AccessChain 781(dmat3x4v) 970 958
984:39(float64_t) Load 983
985:39(float64_t) FAdd 982 984
986: 40(ptr) AccessChain 766(dmat2x4v) 963 951
986: 40(ptr) AccessChain 787(dmat4x3v) 970 958
987:39(float64_t) Load 986
988:39(float64_t) FAdd 985 987
989: 40(ptr) AccessChain 772(dmat4x2v) 963 951
989: 40(ptr) AccessChain 769(dmat2x4v) 966 954
990:39(float64_t) Load 989
991:39(float64_t) FAdd 988 990
992: 428(bool) Load 430(boolv)
994: 10(float) Select 992 993 21
995:39(float64_t) FConvert 994
996:39(float64_t) FAdd 991 995
997: 429(ptr) AccessChain 439(bvec2v) 33
998: 428(bool) Load 997
999: 10(float) Select 998 993 21
1000:39(float64_t) FConvert 999
1001:39(float64_t) FAdd 996 1000
1002: 429(ptr) AccessChain 448(bvec3v) 33
1003: 428(bool) Load 1002
1004: 10(float) Select 1003 993 21
1005:39(float64_t) FConvert 1004
1006:39(float64_t) FAdd 1001 1005
1007: 429(ptr) AccessChain 457(bvec4v) 33
1008: 428(bool) Load 1007
1009: 10(float) Select 1008 993 21
1010:39(float64_t) FConvert 1009
1011:39(float64_t) FAdd 1006 1010
1012: 10(float) FConvert 1011
1013: 11(fvec4) Load 13(outp)
1014: 11(fvec4) VectorTimesScalar 1013 1012
Store 13(outp) 1014
992: 40(ptr) AccessChain 775(dmat4x2v) 966 954
993:39(float64_t) Load 992
994:39(float64_t) FAdd 991 993
995: 428(bool) Load 430(boolv)
997: 10(float) Select 995 996 21
998:39(float64_t) FConvert 997
999:39(float64_t) FAdd 994 998
1000: 429(ptr) AccessChain 439(bvec2v) 33
1001: 428(bool) Load 1000
1002: 10(float) Select 1001 996 21
1003:39(float64_t) FConvert 1002
1004:39(float64_t) FAdd 999 1003
1005: 429(ptr) AccessChain 448(bvec3v) 33
1006: 428(bool) Load 1005
1007: 10(float) Select 1006 996 21
1008:39(float64_t) FConvert 1007
1009:39(float64_t) FAdd 1004 1008
1010: 429(ptr) AccessChain 457(bvec4v) 33
1011: 428(bool) Load 1010
1012: 10(float) Select 1011 996 21
1013:39(float64_t) FConvert 1012
1014:39(float64_t) FAdd 1009 1013
1015: 10(float) FConvert 1014
1016: 11(fvec4) Load 13(outp)
1017: 11(fvec4) VectorTimesScalar 1016 1015
Store 13(outp) 1017
Return
FunctionEnd

View File

@ -1,7 +1,7 @@
spv.float64.frag
// Module Version 10300
// Generated by (magic number): 80007
// Id's are bound by 523
// Id's are bound by 521
Capability Shader
Capability Float16
@ -13,7 +13,7 @@ spv.float64.frag
Capability InterpolationFunction
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 461
EntryPoint Fragment 4 "main" 458
ExecutionMode 4 OriginUpperLeft
Source GLSL 450
SourceExtension "GL_KHX_shader_explicit_arithmetic_types"
@ -67,63 +67,62 @@ spv.float64.frag
Name 372 "f64v1"
Name 376 "f64v2"
Name 382 "f64v3"
Name 399 "f"
Name 404 "f64m3"
Name 405 "f64m1"
Name 407 "f64m2"
Name 416 "f64v1"
Name 418 "f64v2"
Name 423 "f64m4"
Name 426 "f64"
Name 429 "f64m5"
Name 434 "f64m6"
Name 435 "f64m7"
Name 438 "bv"
Name 439 "f64v1"
Name 441 "f64v2"
Name 459 "f64v"
Name 461 "if64v"
Name 510 "S"
MemberName 510(S) 0 "x"
MemberName 510(S) 1 "y"
MemberName 510(S) 2 "z"
Name 512 "B1"
MemberName 512(B1) 0 "a"
MemberName 512(B1) 1 "b"
MemberName 512(B1) 2 "c"
MemberName 512(B1) 3 "d"
MemberName 512(B1) 4 "e"
MemberName 512(B1) 5 "f"
MemberName 512(B1) 6 "g"
MemberName 512(B1) 7 "h"
Name 514 ""
Name 515 "sf16"
Name 516 "sf"
Name 517 "sd"
Decorate 461(if64v) Flat
Decorate 508 ArrayStride 16
Decorate 509 ArrayStride 64
MemberDecorate 510(S) 0 Offset 0
MemberDecorate 510(S) 1 Offset 16
MemberDecorate 510(S) 2 Offset 32
Decorate 511 ArrayStride 64
MemberDecorate 512(B1) 0 Offset 0
MemberDecorate 512(B1) 1 Offset 16
MemberDecorate 512(B1) 2 Offset 32
MemberDecorate 512(B1) 3 Offset 64
MemberDecorate 512(B1) 4 ColMajor
MemberDecorate 512(B1) 4 Offset 96
MemberDecorate 512(B1) 4 MatrixStride 32
MemberDecorate 512(B1) 5 ColMajor
MemberDecorate 512(B1) 5 Offset 160
MemberDecorate 512(B1) 5 MatrixStride 32
MemberDecorate 512(B1) 6 Offset 288
MemberDecorate 512(B1) 7 Offset 352
Decorate 512(B1) Block
Decorate 514 DescriptorSet 0
Decorate 515(sf16) SpecId 100
Decorate 516(sf) SpecId 101
Decorate 517(sd) SpecId 102
Name 401 "f64m3"
Name 402 "f64m1"
Name 404 "f64m2"
Name 413 "f64v1"
Name 415 "f64v2"
Name 420 "f64m4"
Name 423 "f64"
Name 426 "f64m5"
Name 431 "f64m6"
Name 432 "f64m7"
Name 435 "bv"
Name 436 "f64v1"
Name 438 "f64v2"
Name 456 "f64v"
Name 458 "if64v"
Name 507 "S"
MemberName 507(S) 0 "x"
MemberName 507(S) 1 "y"
MemberName 507(S) 2 "z"
Name 509 "B1"
MemberName 509(B1) 0 "a"
MemberName 509(B1) 1 "b"
MemberName 509(B1) 2 "c"
MemberName 509(B1) 3 "d"
MemberName 509(B1) 4 "e"
MemberName 509(B1) 5 "f"
MemberName 509(B1) 6 "g"
MemberName 509(B1) 7 "h"
Name 511 ""
Name 512 "sf16"
Name 514 "sf"
Name 515 "sd"
Decorate 458(if64v) Flat
Decorate 505 ArrayStride 16
Decorate 506 ArrayStride 64
MemberDecorate 507(S) 0 Offset 0
MemberDecorate 507(S) 1 Offset 16
MemberDecorate 507(S) 2 Offset 32
Decorate 508 ArrayStride 64
MemberDecorate 509(B1) 0 Offset 0
MemberDecorate 509(B1) 1 Offset 16
MemberDecorate 509(B1) 2 Offset 32
MemberDecorate 509(B1) 3 Offset 64
MemberDecorate 509(B1) 4 ColMajor
MemberDecorate 509(B1) 4 Offset 96
MemberDecorate 509(B1) 4 MatrixStride 32
MemberDecorate 509(B1) 5 ColMajor
MemberDecorate 509(B1) 5 Offset 160
MemberDecorate 509(B1) 5 MatrixStride 32
MemberDecorate 509(B1) 6 Offset 288
MemberDecorate 509(B1) 7 Offset 352
Decorate 509(B1) Block
Decorate 511 DescriptorSet 0
Decorate 512(sf16) SpecId 100
Decorate 514(sf) SpecId 101
Decorate 515(sd) SpecId 102
2: TypeVoid
3: TypeFunction 2
26: TypeFloat 64
@ -175,38 +174,37 @@ spv.float64.frag
214: TypeVector 26(float64_t) 4
215: TypePointer Function 214(f64vec4)
364(ResType): TypeStruct 149(f64vec3) 183(ivec3)
397: TypeFloat 32
398: TypePointer Function 397(float)
402: TypeMatrix 149(f64vec3) 2
403: TypePointer Function 402
421: TypeMatrix 27(f64vec2) 3
422: TypePointer Function 421
427: TypeMatrix 149(f64vec3) 3
428: TypePointer Function 427
432: TypeMatrix 214(f64vec4) 4
433: TypePointer Function 432
460: TypePointer Input 149(f64vec3)
461(if64v): 460(ptr) Variable Input
462: TypePointer Input 26(float64_t)
499: 182(int) Constant 1
504:26(float64_t) Constant 0 1071644672
505: 27(f64vec2) ConstantComposite 504 504
507: 31(int) Constant 2
508: TypeArray 26(float64_t) 507
509: TypeArray 402 507
510(S): TypeStruct 26(float64_t) 27(f64vec2) 149(f64vec3)
511: TypeArray 510(S) 507
512(B1): TypeStruct 26(float64_t) 27(f64vec2) 149(f64vec3) 508 402 509 510(S) 511
513: TypePointer Uniform 512(B1)
514: 513(ptr) Variable Uniform
515(sf16):162(float16_t) SpecConstant 12288
516(sf): 397(float) SpecConstant 1048576000
517(sd):26(float64_t) SpecConstant 0 1071644672
518: 397(float) SpecConstantOp 115 515(sf16)
519: 397(float) SpecConstantOp 115 515(sf16)
520:26(float64_t) SpecConstantOp 115 519
521:162(float16_t) SpecConstantOp 115 516(sf)
522:162(float16_t) SpecConstantOp 115 517(sd)
399: TypeMatrix 149(f64vec3) 2
400: TypePointer Function 399
418: TypeMatrix 27(f64vec2) 3
419: TypePointer Function 418
424: TypeMatrix 149(f64vec3) 3
425: TypePointer Function 424
429: TypeMatrix 214(f64vec4) 4
430: TypePointer Function 429
457: TypePointer Input 149(f64vec3)
458(if64v): 457(ptr) Variable Input
459: TypePointer Input 26(float64_t)
496: 182(int) Constant 1
501:26(float64_t) Constant 0 1071644672
502: 27(f64vec2) ConstantComposite 501 501
504: 31(int) Constant 2
505: TypeArray 26(float64_t) 504
506: TypeArray 399 504
507(S): TypeStruct 26(float64_t) 27(f64vec2) 149(f64vec3)
508: TypeArray 507(S) 504
509(B1): TypeStruct 26(float64_t) 27(f64vec2) 149(f64vec3) 505 399 506 507(S) 508
510: TypePointer Uniform 509(B1)
511: 510(ptr) Variable Uniform
512(sf16):162(float16_t) SpecConstant 12288
513: TypeFloat 32
514(sf): 513(float) SpecConstant 1048576000
515(sd):26(float64_t) SpecConstant 0 1071644672
516: 513(float) SpecConstantOp 115 512(sf16)
517: 513(float) SpecConstantOp 115 512(sf16)
518:26(float64_t) SpecConstantOp 115 517
519:162(float16_t) SpecConstantOp 115 514(sf)
520:162(float16_t) SpecConstantOp 115 515(sd)
4(main): 2 Function None 3
5: Label
Return
@ -628,7 +626,6 @@ spv.float64.frag
372(f64v1): 150(ptr) Variable Function
376(f64v2): 150(ptr) Variable Function
382(f64v3): 150(ptr) Variable Function
399(f): 398(ptr) Variable Function
373:149(f64vec3) Load 372(f64v1)
374:26(float64_t) ExtInst 1(GLSL.std.450) 66(Length) 373
Store 371(f64) 374
@ -658,134 +655,134 @@ spv.float64.frag
Store 382(f64v3) 394
395:149(f64vec3) Load 372(f64v1)
396:149(f64vec3) Load 376(f64v2)
400: 397(float) Load 399(f)
401:149(f64vec3) ExtInst 1(GLSL.std.450) 72(Refract) 395 396 400
Store 382(f64v3) 401
397:26(float64_t) Load 371(f64)
398:149(f64vec3) ExtInst 1(GLSL.std.450) 72(Refract) 395 396 397
Store 382(f64v3) 398
Return
FunctionEnd
20(builtinMatrixFuncs(): 2 Function None 3
21: Label
404(f64m3): 403(ptr) Variable Function
405(f64m1): 403(ptr) Variable Function
407(f64m2): 403(ptr) Variable Function
416(f64v1): 150(ptr) Variable Function
418(f64v2): 28(ptr) Variable Function
423(f64m4): 422(ptr) Variable Function
426(f64): 33(ptr) Variable Function
429(f64m5): 428(ptr) Variable Function
434(f64m6): 433(ptr) Variable Function
435(f64m7): 433(ptr) Variable Function
406: 402 Load 405(f64m1)
408: 402 Load 407(f64m2)
409:149(f64vec3) CompositeExtract 406 0
410:149(f64vec3) CompositeExtract 408 0
401(f64m3): 400(ptr) Variable Function
402(f64m1): 400(ptr) Variable Function
404(f64m2): 400(ptr) Variable Function
413(f64v1): 150(ptr) Variable Function
415(f64v2): 28(ptr) Variable Function
420(f64m4): 419(ptr) Variable Function
423(f64): 33(ptr) Variable Function
426(f64m5): 425(ptr) Variable Function
431(f64m6): 430(ptr) Variable Function
432(f64m7): 430(ptr) Variable Function
403: 399 Load 402(f64m1)
405: 399 Load 404(f64m2)
406:149(f64vec3) CompositeExtract 403 0
407:149(f64vec3) CompositeExtract 405 0
408:149(f64vec3) FMul 406 407
409:149(f64vec3) CompositeExtract 403 1
410:149(f64vec3) CompositeExtract 405 1
411:149(f64vec3) FMul 409 410
412:149(f64vec3) CompositeExtract 406 1
413:149(f64vec3) CompositeExtract 408 1
414:149(f64vec3) FMul 412 413
415: 402 CompositeConstruct 411 414
Store 404(f64m3) 415
417:149(f64vec3) Load 416(f64v1)
419: 27(f64vec2) Load 418(f64v2)
420: 402 OuterProduct 417 419
Store 405(f64m1) 420
424: 402 Load 405(f64m1)
425: 421 Transpose 424
Store 423(f64m4) 425
430: 427 Load 429(f64m5)
431:26(float64_t) ExtInst 1(GLSL.std.450) 33(Determinant) 430
Store 426(f64) 431
436: 432 Load 435(f64m7)
437: 432 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 436
Store 434(f64m6) 437
412: 399 CompositeConstruct 408 411
Store 401(f64m3) 412
414:149(f64vec3) Load 413(f64v1)
416: 27(f64vec2) Load 415(f64v2)
417: 399 OuterProduct 414 416
Store 402(f64m1) 417
421: 399 Load 402(f64m1)
422: 418 Transpose 421
Store 420(f64m4) 422
427: 424 Load 426(f64m5)
428:26(float64_t) ExtInst 1(GLSL.std.450) 33(Determinant) 427
Store 423(f64) 428
433: 429 Load 432(f64m7)
434: 429 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 433
Store 431(f64m6) 434
Return
FunctionEnd
22(builtinVecRelFuncs(): 2 Function None 3
23: Label
438(bv): 153(ptr) Variable Function
439(f64v1): 150(ptr) Variable Function
441(f64v2): 150(ptr) Variable Function
440:149(f64vec3) Load 439(f64v1)
442:149(f64vec3) Load 441(f64v2)
443: 152(bvec3) FOrdLessThan 440 442
Store 438(bv) 443
444:149(f64vec3) Load 439(f64v1)
445:149(f64vec3) Load 441(f64v2)
446: 152(bvec3) FOrdLessThanEqual 444 445
Store 438(bv) 446
447:149(f64vec3) Load 439(f64v1)
448:149(f64vec3) Load 441(f64v2)
449: 152(bvec3) FOrdGreaterThan 447 448
Store 438(bv) 449
450:149(f64vec3) Load 439(f64v1)
451:149(f64vec3) Load 441(f64v2)
452: 152(bvec3) FOrdGreaterThanEqual 450 451
Store 438(bv) 452
453:149(f64vec3) Load 439(f64v1)
454:149(f64vec3) Load 441(f64v2)
455: 152(bvec3) FOrdEqual 453 454
Store 438(bv) 455
456:149(f64vec3) Load 439(f64v1)
457:149(f64vec3) Load 441(f64v2)
458: 152(bvec3) FOrdNotEqual 456 457
Store 438(bv) 458
435(bv): 153(ptr) Variable Function
436(f64v1): 150(ptr) Variable Function
438(f64v2): 150(ptr) Variable Function
437:149(f64vec3) Load 436(f64v1)
439:149(f64vec3) Load 438(f64v2)
440: 152(bvec3) FOrdLessThan 437 439
Store 435(bv) 440
441:149(f64vec3) Load 436(f64v1)
442:149(f64vec3) Load 438(f64v2)
443: 152(bvec3) FOrdLessThanEqual 441 442
Store 435(bv) 443
444:149(f64vec3) Load 436(f64v1)
445:149(f64vec3) Load 438(f64v2)
446: 152(bvec3) FOrdGreaterThan 444 445
Store 435(bv) 446
447:149(f64vec3) Load 436(f64v1)
448:149(f64vec3) Load 438(f64v2)
449: 152(bvec3) FOrdGreaterThanEqual 447 448
Store 435(bv) 449
450:149(f64vec3) Load 436(f64v1)
451:149(f64vec3) Load 438(f64v2)
452: 152(bvec3) FOrdEqual 450 451
Store 435(bv) 452
453:149(f64vec3) Load 436(f64v1)
454:149(f64vec3) Load 438(f64v2)
455: 152(bvec3) FOrdNotEqual 453 454
Store 435(bv) 455
Return
FunctionEnd
24(builtinFragProcFuncs(): 2 Function None 3
25: Label
459(f64v): 150(ptr) Variable Function
463: 462(ptr) AccessChain 461(if64v) 32
464:26(float64_t) Load 463
465:26(float64_t) DPdx 464
466: 33(ptr) AccessChain 459(f64v) 32
Store 466 465
467: 462(ptr) AccessChain 461(if64v) 88
468:26(float64_t) Load 467
469:26(float64_t) DPdy 468
470: 33(ptr) AccessChain 459(f64v) 88
Store 470 469
471:149(f64vec3) Load 461(if64v)
472: 27(f64vec2) VectorShuffle 471 471 0 1
473: 27(f64vec2) DPdxFine 472
474:149(f64vec3) Load 459(f64v)
475:149(f64vec3) VectorShuffle 474 473 3 4 2
Store 459(f64v) 475
476:149(f64vec3) Load 461(if64v)
477: 27(f64vec2) VectorShuffle 476 476 0 1
478: 27(f64vec2) DPdyFine 477
479:149(f64vec3) Load 459(f64v)
480:149(f64vec3) VectorShuffle 479 478 3 4 2
Store 459(f64v) 480
481:149(f64vec3) Load 461(if64v)
482:149(f64vec3) DPdxCoarse 481
Store 459(f64v) 482
483:149(f64vec3) Load 461(if64v)
484:149(f64vec3) DPdxCoarse 483
Store 459(f64v) 484
485: 462(ptr) AccessChain 461(if64v) 32
486:26(float64_t) Load 485
487:26(float64_t) Fwidth 486
488: 33(ptr) AccessChain 459(f64v) 32
Store 488 487
489:149(f64vec3) Load 461(if64v)
490: 27(f64vec2) VectorShuffle 489 489 0 1
491: 27(f64vec2) FwidthFine 490
492:149(f64vec3) Load 459(f64v)
493:149(f64vec3) VectorShuffle 492 491 3 4 2
Store 459(f64v) 493
494:149(f64vec3) Load 461(if64v)
495:149(f64vec3) FwidthCoarse 494
Store 459(f64v) 495
496: 462(ptr) AccessChain 461(if64v) 32
497:26(float64_t) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 496
498: 33(ptr) AccessChain 459(f64v) 32
Store 498 497
500:149(f64vec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 461(if64v) 499
501: 27(f64vec2) VectorShuffle 500 500 0 1
502:149(f64vec3) Load 459(f64v)
503:149(f64vec3) VectorShuffle 502 501 3 4 2
Store 459(f64v) 503
506:149(f64vec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 461(if64v) 505
Store 459(f64v) 506
456(f64v): 150(ptr) Variable Function
460: 459(ptr) AccessChain 458(if64v) 32
461:26(float64_t) Load 460
462:26(float64_t) DPdx 461
463: 33(ptr) AccessChain 456(f64v) 32
Store 463 462
464: 459(ptr) AccessChain 458(if64v) 88
465:26(float64_t) Load 464
466:26(float64_t) DPdy 465
467: 33(ptr) AccessChain 456(f64v) 88
Store 467 466
468:149(f64vec3) Load 458(if64v)
469: 27(f64vec2) VectorShuffle 468 468 0 1
470: 27(f64vec2) DPdxFine 469
471:149(f64vec3) Load 456(f64v)
472:149(f64vec3) VectorShuffle 471 470 3 4 2
Store 456(f64v) 472
473:149(f64vec3) Load 458(if64v)
474: 27(f64vec2) VectorShuffle 473 473 0 1
475: 27(f64vec2) DPdyFine 474
476:149(f64vec3) Load 456(f64v)
477:149(f64vec3) VectorShuffle 476 475 3 4 2
Store 456(f64v) 477
478:149(f64vec3) Load 458(if64v)
479:149(f64vec3) DPdxCoarse 478
Store 456(f64v) 479
480:149(f64vec3) Load 458(if64v)
481:149(f64vec3) DPdxCoarse 480
Store 456(f64v) 481
482: 459(ptr) AccessChain 458(if64v) 32
483:26(float64_t) Load 482
484:26(float64_t) Fwidth 483
485: 33(ptr) AccessChain 456(f64v) 32
Store 485 484
486:149(f64vec3) Load 458(if64v)
487: 27(f64vec2) VectorShuffle 486 486 0 1
488: 27(f64vec2) FwidthFine 487
489:149(f64vec3) Load 456(f64v)
490:149(f64vec3) VectorShuffle 489 488 3 4 2
Store 456(f64v) 490
491:149(f64vec3) Load 458(if64v)
492:149(f64vec3) FwidthCoarse 491
Store 456(f64v) 492
493: 459(ptr) AccessChain 458(if64v) 32
494:26(float64_t) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 493
495: 33(ptr) AccessChain 456(f64v) 32
Store 495 494
497:149(f64vec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 458(if64v) 496
498: 27(f64vec2) VectorShuffle 497 497 0 1
499:149(f64vec3) Load 456(f64v)
500:149(f64vec3) VectorShuffle 499 498 3 4 2
Store 456(f64v) 500
503:149(f64vec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 458(if64v) 502
Store 456(f64v) 503
Return
FunctionEnd

8
Test/spv.400.frag Executable file → Normal file
View File

@ -192,10 +192,10 @@ void doubles()
dvec3v += reflect(dvec3v, dvec3v);
dvec4v += reflect(dvec4v, dvec4v);
doublev += refract(doublev, doublev, 1.3);
dvec2v += refract(dvec2v, dvec2v, 1.3);
dvec3v += refract(dvec3v, dvec3v, 1.3);
dvec4v += refract(dvec4v, dvec4v, 1.3);
doublev += refract(doublev, doublev, doublev);
dvec2v += refract(dvec2v, dvec2v, doublev);
dvec3v += refract(dvec3v, dvec3v, doublev);
dvec4v += refract(dvec4v, dvec4v, doublev);
dmat2 dmat2v = outerProduct(dvec2v, dvec2v);
dmat3 dmat3v = outerProduct(dvec3v, dvec3v);

4
Test/spv.float64.frag Executable file → Normal file
View File

@ -204,7 +204,7 @@ void builtinGeometryFuncs()
{
float64_t f64;
f64vec3 f64v1, f64v2, f64v3;
float f;
f64 = length(f64v1);
f64 = distance(f64v1, f64v2);
f64 = dot(f64v1, f64v2);
@ -212,7 +212,7 @@ void builtinGeometryFuncs()
f64v2 = normalize(f64v1);
f64v3 = faceforward(f64v1, f64v2, f64v3);
f64v3 = reflect(f64v1, f64v2);
f64v3 = refract(f64v1, f64v2, f);
f64v3 = refract(f64v1, f64v2, f64);
}
void builtinMatrixFuncs()

View File

@ -603,10 +603,10 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"dvec3 reflect(dvec3 , dvec3 );"
"dvec4 reflect(dvec4 , dvec4 );"
"double refract(double, double, float);"
"dvec2 refract(dvec2 , dvec2 , float);"
"dvec3 refract(dvec3 , dvec3 , float);"
"dvec4 refract(dvec4 , dvec4 , float);"
"double refract(double, double, double);"
"dvec2 refract(dvec2 , dvec2 , double);"
"dvec3 refract(dvec3 , dvec3 , double);"
"dvec4 refract(dvec4 , dvec4 , double);"
"dmat2 matrixCompMult(dmat2, dmat2);"
"dmat3 matrixCompMult(dmat3, dmat3);"