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); dvec3v += reflect(dvec3v, dvec3v);
dvec4v += reflect(dvec4v, dvec4v); dvec4v += reflect(dvec4v, dvec4v);
doublev += refract(doublev, doublev, 1.3); doublev += refract(doublev, doublev, doublev);
dvec2v += refract(dvec2v, dvec2v, 1.3); dvec2v += refract(dvec2v, dvec2v, doublev);
dvec3v += refract(dvec3v, dvec3v, 1.3); dvec3v += refract(dvec3v, dvec3v, doublev);
dvec4v += refract(dvec4v, dvec4v, 1.3); dvec4v += refract(dvec4v, dvec4v, doublev);
dmat2 dmat2v = outerProduct(dvec2v, dvec2v); dmat2 dmat2v = outerProduct(dvec2v, dvec2v);
dmat3 dmat3v = outerProduct(dvec3v, dvec3v); dmat3 dmat3v = outerProduct(dvec3v, dvec3v);
@ -300,9 +300,9 @@ void doubles()
dmat3x4 dmat3x4v = outerProduct(dvec4v, dvec3v); dmat3x4 dmat3x4v = outerProduct(dvec4v, dvec3v);
dmat4x3 dmat4x3v = outerProduct(dvec3v, dvec4v); dmat4x3 dmat4x3v = outerProduct(dvec3v, dvec4v);
dmat2v *= matrixCompMult(dmat2v, dmat2v); dmat2v *= matrixCompMult(dmat2v, dmat2v);
dmat3v *= matrixCompMult(dmat3v, dmat3v); dmat3v *= matrixCompMult(dmat3v, dmat3v);
dmat4v *= matrixCompMult(dmat4v, dmat4v); dmat4v *= matrixCompMult(dmat4v, dmat4v);
dmat2x3v = matrixCompMult(dmat2x3v, dmat2x3v); dmat2x3v = matrixCompMult(dmat2x3v, dmat2x3v);
dmat2x4v = matrixCompMult(dmat2x4v, dmat2x4v); dmat2x4v = matrixCompMult(dmat2x4v, dmat2x4v);
dmat3x2v = matrixCompMult(dmat3x2v, dmat3x2v); dmat3x2v = matrixCompMult(dmat3x2v, dmat3x2v);

View File

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

View File

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

View File

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

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

@ -192,10 +192,10 @@ void doubles()
dvec3v += reflect(dvec3v, dvec3v); dvec3v += reflect(dvec3v, dvec3v);
dvec4v += reflect(dvec4v, dvec4v); dvec4v += reflect(dvec4v, dvec4v);
doublev += refract(doublev, doublev, 1.3); doublev += refract(doublev, doublev, doublev);
dvec2v += refract(dvec2v, dvec2v, 1.3); dvec2v += refract(dvec2v, dvec2v, doublev);
dvec3v += refract(dvec3v, dvec3v, 1.3); dvec3v += refract(dvec3v, dvec3v, doublev);
dvec4v += refract(dvec4v, dvec4v, 1.3); dvec4v += refract(dvec4v, dvec4v, doublev);
dmat2 dmat2v = outerProduct(dvec2v, dvec2v); dmat2 dmat2v = outerProduct(dvec2v, dvec2v);
dmat3 dmat3v = outerProduct(dvec3v, dvec3v); 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; float64_t f64;
f64vec3 f64v1, f64v2, f64v3; f64vec3 f64v1, f64v2, f64v3;
float f;
f64 = length(f64v1); f64 = length(f64v1);
f64 = distance(f64v1, f64v2); f64 = distance(f64v1, f64v2);
f64 = dot(f64v1, f64v2); f64 = dot(f64v1, f64v2);
@ -212,7 +212,7 @@ void builtinGeometryFuncs()
f64v2 = normalize(f64v1); f64v2 = normalize(f64v1);
f64v3 = faceforward(f64v1, f64v2, f64v3); f64v3 = faceforward(f64v1, f64v2, f64v3);
f64v3 = reflect(f64v1, f64v2); f64v3 = reflect(f64v1, f64v2);
f64v3 = refract(f64v1, f64v2, f); f64v3 = refract(f64v1, f64v2, f64);
} }
void builtinMatrixFuncs() void builtinMatrixFuncs()

View File

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