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

This commit is contained in:
John Kessenich 2018-05-17 10:42:10 -06:00
parent a0044f4fee
commit ebec909487
7 changed files with 675 additions and 671 deletions

8
Test/400.geom Normal file → Executable file
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, doublev); doublev += refract(doublev, doublev, 1.3);
dvec2v += refract(dvec2v, dvec2v, doublev); dvec2v += refract(dvec2v, dvec2v, 1.3);
dvec3v += refract(dvec3v, dvec3v, doublev); dvec3v += refract(dvec3v, dvec3v, 1.3);
dvec4v += refract(dvec4v, dvec4v, doublev); dvec4v += refract(dvec4v, dvec4v, 1.3);
dmat2 dmat2v = outerProduct(dvec2v, dvec2v); dmat2 dmat2v = outerProduct(dvec2v, dvec2v);
dmat3 dmat3v = outerProduct(dvec3v, dvec3v); dmat3 dmat3v = outerProduct(dvec3v, dvec3v);

View File

@ -844,25 +844,29 @@ 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 'doublev' ( temp double) 0:288 Constant:
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 'doublev' ( temp double) 0:289 Constant:
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 'doublev' ( temp double) 0:290 Constant:
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 'doublev' ( temp double) 0:291 Constant:
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): 80006 // Generated by (magic number): 80006
// Id's are bound by 1118 // Id's are bound by 1115
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 1027 1033 1038 1050 1076 1097 1099 1105 1107 1116 EntryPoint Fragment 4 "main" 13 1024 1030 1035 1047 1073 1094 1096 1102 1104 1113
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 739 "dmat2v" Name 736 "dmat2v"
Name 745 "dmat3v" Name 742 "dmat3v"
Name 751 "dmat4v" Name 748 "dmat4v"
Name 757 "dmat2x3v" Name 754 "dmat2x3v"
Name 763 "dmat3x2v" Name 760 "dmat3x2v"
Name 769 "dmat2x4v" Name 766 "dmat2x4v"
Name 775 "dmat4x2v" Name 772 "dmat4x2v"
Name 781 "dmat3x4v" Name 778 "dmat3x4v"
Name 787 "dmat4x3v" Name 784 "dmat4x3v"
Name 1019 "v" Name 1016 "v"
Name 1025 "arrayedSampler" Name 1022 "arrayedSampler"
Name 1027 "i" Name 1024 "i"
Name 1033 "c2D" Name 1030 "c2D"
Name 1038 "gl_ClipDistance" Name 1035 "gl_ClipDistance"
Name 1050 "uoutp" Name 1047 "uoutp"
Name 1054 "samp2dr" Name 1051 "samp2dr"
Name 1076 "ioutp" Name 1073 "ioutp"
Name 1080 "isamp2DA" Name 1077 "isamp2DA"
Name 1097 "gl_FragCoord" Name 1094 "gl_FragCoord"
Name 1099 "vl2" Name 1096 "vl2"
Name 1105 "uo" Name 1102 "uo"
Name 1107 "u" Name 1104 "u"
Name 1115 "id" Name 1112 "id"
Name 1116 "gl_PrimitiveID" Name 1113 "gl_PrimitiveID"
Decorate 17(u2drs) DescriptorSet 0 Decorate 17(u2drs) DescriptorSet 0
Decorate 1025(arrayedSampler) DescriptorSet 0 Decorate 1022(arrayedSampler) DescriptorSet 0
Decorate 1027(i) Flat Decorate 1024(i) Flat
Decorate 1038(gl_ClipDistance) BuiltIn ClipDistance Decorate 1035(gl_ClipDistance) BuiltIn ClipDistance
Decorate 1054(samp2dr) DescriptorSet 0 Decorate 1051(samp2dr) DescriptorSet 0
Decorate 1080(isamp2DA) DescriptorSet 0 Decorate 1077(isamp2DA) DescriptorSet 0
Decorate 1097(gl_FragCoord) BuiltIn FragCoord Decorate 1094(gl_FragCoord) BuiltIn FragCoord
Decorate 1099(vl2) Location 6 Decorate 1096(vl2) Location 6
Decorate 1107(u) Flat Decorate 1104(u) Flat
Decorate 1116(gl_PrimitiveID) Flat Decorate 1113(gl_PrimitiveID) Flat
Decorate 1116(gl_PrimitiveID) BuiltIn PrimitiveId Decorate 1113(gl_PrimitiveID) BuiltIn PrimitiveId
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
10: TypeFloat 32 10: TypeFloat 32
@ -109,143 +109,144 @@ 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
737: TypeMatrix 43(fvec2) 2 715: 10(float) Constant 1067869798
738: TypePointer Function 737 734: TypeMatrix 43(fvec2) 2
743: TypeMatrix 48(fvec3) 3 735: TypePointer Function 734
744: TypePointer Function 743 740: TypeMatrix 48(fvec3) 3
749: TypeMatrix 53(fvec4) 4 741: TypePointer Function 740
750: TypePointer Function 749 746: TypeMatrix 53(fvec4) 4
755: TypeMatrix 48(fvec3) 2 747: TypePointer Function 746
756: TypePointer Function 755 752: TypeMatrix 48(fvec3) 2
761: TypeMatrix 43(fvec2) 3 753: TypePointer Function 752
762: TypePointer Function 761 758: TypeMatrix 43(fvec2) 3
767: TypeMatrix 53(fvec4) 2 759: TypePointer Function 758
768: TypePointer Function 767 764: TypeMatrix 53(fvec4) 2
773: TypeMatrix 43(fvec2) 4 765: TypePointer Function 764
774: TypePointer Function 773 770: TypeMatrix 43(fvec2) 4
779: TypeMatrix 53(fvec4) 3 771: TypePointer Function 770
780: TypePointer Function 779 776: TypeMatrix 53(fvec4) 3
785: TypeMatrix 48(fvec3) 4 777: TypePointer Function 776
786: TypePointer Function 785 782: TypeMatrix 48(fvec3) 4
954: 32(int) Constant 1 783: TypePointer Function 782
958: 32(int) Constant 2 951: 32(int) Constant 1
962: 32(int) Constant 3 955: 32(int) Constant 2
966: 23(int) Constant 1 959: 32(int) Constant 3
970: 23(int) Constant 2 963: 23(int) Constant 1
996: 10(float) Constant 1065353216 967: 23(int) Constant 2
1018: TypePointer Function 11(fvec4) 993: 10(float) Constant 1065353216
1020: TypeImage 10(float) 2D sampled format:Unknown 1015: TypePointer Function 11(fvec4)
1021: TypeSampledImage 1020 1017: TypeImage 10(float) 2D sampled format:Unknown
1022: 32(int) Constant 5 1018: TypeSampledImage 1017
1023: TypeArray 1021 1022 1019: 32(int) Constant 5
1024: TypePointer UniformConstant 1023 1020: TypeArray 1018 1019
1025(arrayedSampler): 1024(ptr) Variable UniformConstant 1021: TypePointer UniformConstant 1020
1026: TypePointer Input 23(int) 1022(arrayedSampler): 1021(ptr) Variable UniformConstant
1027(i): 1026(ptr) Variable Input 1023: TypePointer Input 23(int)
1029: TypePointer UniformConstant 1021 1024(i): 1023(ptr) Variable Input
1032: TypePointer Input 20(fvec2) 1026: TypePointer UniformConstant 1018
1033(c2D): 1032(ptr) Variable Input 1029: TypePointer Input 20(fvec2)
1036: TypeArray 10(float) 958 1030(c2D): 1029(ptr) Variable Input
1037: TypePointer Input 1036 1033: TypeArray 10(float) 955
1038(gl_ClipDistance): 1037(ptr) Variable Input 1034: TypePointer Input 1033
1039: TypePointer Input 10(float) 1035(gl_ClipDistance): 1034(ptr) Variable Input
1043: TypeVector 10(float) 3 1036: TypePointer Input 10(float)
1048: TypeVector 32(int) 4 1040: TypeVector 10(float) 3
1049: TypePointer Output 1048(ivec4) 1045: TypeVector 32(int) 4
1050(uoutp): 1049(ptr) Variable Output 1046: TypePointer Output 1045(ivec4)
1051: TypeImage 32(int) Rect sampled format:Unknown 1047(uoutp): 1046(ptr) Variable Output
1052: TypeSampledImage 1051 1048: TypeImage 32(int) Rect sampled format:Unknown
1053: TypePointer UniformConstant 1052 1049: TypeSampledImage 1048
1054(samp2dr): 1053(ptr) Variable UniformConstant 1050: TypePointer UniformConstant 1049
1057: 32(int) Constant 4 1051(samp2dr): 1050(ptr) Variable UniformConstant
1058: TypeArray 24(ivec2) 1057 1054: 32(int) Constant 4
1059: 24(ivec2) ConstantComposite 966 970 1055: TypeArray 24(ivec2) 1054
1060: 23(int) Constant 15 1056: 24(ivec2) ConstantComposite 963 967
1061: 23(int) Constant 16 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
1062: 24(ivec2) ConstantComposite 1060 1061 1062: 24(ivec2) ConstantComposite 1060 1061
1063: 23(int) Constant 4294967294 1063: 1055 ConstantComposite 1056 27 1059 1062
1064: 23(int) Constant 0 1071: TypeVector 23(int) 4
1065: 24(ivec2) ConstantComposite 1063 1064 1072: TypePointer Output 1071(ivec4)
1066: 1058 ConstantComposite 1059 27 1062 1065 1073(ioutp): 1072(ptr) Variable Output
1074: TypeVector 23(int) 4 1074: TypeImage 23(int) 2D array sampled format:Unknown
1075: TypePointer Output 1074(ivec4) 1075: TypeSampledImage 1074
1076(ioutp): 1075(ptr) Variable Output 1076: TypePointer UniformConstant 1075
1077: TypeImage 23(int) 2D array sampled format:Unknown 1077(isamp2DA): 1076(ptr) Variable UniformConstant
1078: TypeSampledImage 1077 1079: 10(float) Constant 1036831949
1079: TypePointer UniformConstant 1078 1080: 1040(fvec3) ConstantComposite 1079 1079 1079
1080(isamp2DA): 1079(ptr) Variable UniformConstant 1081: 24(ivec2) ConstantComposite 963 963
1082: 10(float) Constant 1036831949 1093: TypePointer Input 11(fvec4)
1083: 1043(fvec3) ConstantComposite 1082 1082 1082 1094(gl_FragCoord): 1093(ptr) Variable Input
1084: 24(ivec2) ConstantComposite 966 966 1096(vl2): 1093(ptr) Variable Input
1096: TypePointer Input 11(fvec4) 1101: TypePointer Output 32(int)
1097(gl_FragCoord): 1096(ptr) Variable Input 1102(uo): 1101(ptr) Variable Output
1099(vl2): 1096(ptr) Variable Input 1103: TypePointer Input 32(int)
1104: TypePointer Output 32(int) 1104(u): 1103(ptr) Variable Input
1105(uo): 1104(ptr) Variable Output 1111: TypePointer Function 23(int)
1106: TypePointer Input 32(int) 1113(gl_PrimitiveID): 1023(ptr) Variable Input
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
1019(v): 1018(ptr) Variable Function 1016(v): 1015(ptr) Variable Function
1115(id): 1114(ptr) Variable Function 1112(id): 1111(ptr) Variable Function
1028: 23(int) Load 1027(i) 1025: 23(int) Load 1024(i)
1030: 1029(ptr) AccessChain 1025(arrayedSampler) 1028 1027: 1026(ptr) AccessChain 1022(arrayedSampler) 1025
1031: 1021 Load 1030 1028: 1018 Load 1027
1034: 20(fvec2) Load 1033(c2D) 1031: 20(fvec2) Load 1030(c2D)
1035: 11(fvec4) ImageSampleImplicitLod 1031 1034 1032: 11(fvec4) ImageSampleImplicitLod 1028 1031
Store 1019(v) 1035 Store 1016(v) 1032
1040: 1039(ptr) AccessChain 1038(gl_ClipDistance) 966 1037: 1036(ptr) AccessChain 1035(gl_ClipDistance) 963
1041: 10(float) Load 1040 1038: 10(float) Load 1037
1042: 34(ptr) AccessChain 13(outp) 33 1039: 34(ptr) AccessChain 13(outp) 33
Store 1042 1041 Store 1039 1038
1044: 11(fvec4) Load 1019(v) 1041: 11(fvec4) Load 1016(v)
1045: 1043(fvec3) VectorShuffle 1044 1044 1 2 3 1042: 1040(fvec3) VectorShuffle 1041 1041 1 2 3
1046: 11(fvec4) Load 13(outp) 1043: 11(fvec4) Load 13(outp)
1047: 11(fvec4) VectorShuffle 1046 1045 0 4 5 6 1044: 11(fvec4) VectorShuffle 1043 1042 0 4 5 6
Store 13(outp) 1047 Store 13(outp) 1044
1055: 1052 Load 1054(samp2dr) 1052: 1049 Load 1051(samp2dr)
1056: 20(fvec2) Load 1033(c2D) 1053: 20(fvec2) Load 1030(c2D)
1067: 1048(ivec4) ImageGather 1055 1056 970 ConstOffsets 1066 1064: 1045(ivec4) ImageGather 1052 1053 967 ConstOffsets 1063
Store 1050(uoutp) 1067 Store 1047(uoutp) 1064
1068: 1029(ptr) AccessChain 1025(arrayedSampler) 1064 1065: 1026(ptr) AccessChain 1022(arrayedSampler) 1061
1069: 1021 Load 1068 1066: 1018 Load 1065
1070: 20(fvec2) Load 1033(c2D) 1067: 20(fvec2) Load 1030(c2D)
1071: 11(fvec4) ImageGather 1069 1070 1064 1068: 11(fvec4) ImageGather 1066 1067 1061
1072: 11(fvec4) Load 13(outp) 1069: 11(fvec4) Load 13(outp)
1073: 11(fvec4) FAdd 1072 1071 1070: 11(fvec4) FAdd 1069 1068
Store 13(outp) 1073 Store 13(outp) 1070
1081: 1078 Load 1080(isamp2DA) 1078: 1075 Load 1077(isamp2DA)
1085: 1074(ivec4) ImageGather 1081 1083 25 ConstOffset 1084 1082: 1071(ivec4) ImageGather 1078 1080 25 ConstOffset 1081
Store 1076(ioutp) 1085 Store 1073(ioutp) 1082
1086: 1078 Load 1080(isamp2DA) 1083: 1075 Load 1077(isamp2DA)
1087: 1074(ivec4) ImageGather 1086 1083 25 ConstOffset 1084 1084: 1071(ivec4) ImageGather 1083 1080 25 ConstOffset 1081
1088: 1074(ivec4) Load 1076(ioutp) 1085: 1071(ivec4) Load 1073(ioutp)
1089: 1074(ivec4) IAdd 1088 1087 1086: 1071(ivec4) IAdd 1085 1084
Store 1076(ioutp) 1089 Store 1073(ioutp) 1086
1090: 1078 Load 1080(isamp2DA) 1087: 1075 Load 1077(isamp2DA)
1091: 23(int) Load 1027(i) 1088: 23(int) Load 1024(i)
1092: 24(ivec2) CompositeConstruct 1091 1091 1089: 24(ivec2) CompositeConstruct 1088 1088
1093: 1074(ivec4) ImageGather 1090 1083 1064 Offset 1092 1090: 1071(ivec4) ImageGather 1087 1080 1061 Offset 1089
1094: 1074(ivec4) Load 1076(ioutp) 1091: 1071(ivec4) Load 1073(ioutp)
1095: 1074(ivec4) IAdd 1094 1093 1092: 1071(ivec4) IAdd 1091 1090
Store 1076(ioutp) 1095 Store 1073(ioutp) 1092
1098: 11(fvec4) Load 1097(gl_FragCoord) 1095: 11(fvec4) Load 1094(gl_FragCoord)
1100: 11(fvec4) Load 1099(vl2) 1097: 11(fvec4) Load 1096(vl2)
1101: 11(fvec4) FAdd 1098 1100 1098: 11(fvec4) FAdd 1095 1097
1102: 11(fvec4) Load 13(outp) 1099: 11(fvec4) Load 13(outp)
1103: 11(fvec4) FAdd 1102 1101 1100: 11(fvec4) FAdd 1099 1098
Store 13(outp) 1103 Store 13(outp) 1100
1108: 32(int) Load 1107(u) 1105: 32(int) Load 1104(u)
1109: 23(int) Load 1027(i) 1106: 23(int) Load 1024(i)
1110: 32(int) Bitcast 1109 1107: 32(int) Bitcast 1106
1111: 32(int) UMod 1108 1110 1108: 32(int) UMod 1105 1107
Store 1105(uo) 1111 Store 1102(uo) 1108
1112: 2 FunctionCall 6(foo23() 1109: 2 FunctionCall 6(foo23()
1113: 2 FunctionCall 8(doubles() 1110: 2 FunctionCall 8(doubles()
1117: 23(int) Load 1116(gl_PrimitiveID) 1114: 23(int) Load 1113(gl_PrimitiveID)
Store 1115(id) 1117 Store 1112(id) 1114
Return Return
FunctionEnd FunctionEnd
6(foo23(): 2 Function None 3 6(foo23(): 2 Function None 3
@ -277,15 +278,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
739(dmat2v): 738(ptr) Variable Function 736(dmat2v): 735(ptr) Variable Function
745(dmat3v): 744(ptr) Variable Function 742(dmat3v): 741(ptr) Variable Function
751(dmat4v): 750(ptr) Variable Function 748(dmat4v): 747(ptr) Variable Function
757(dmat2x3v): 756(ptr) Variable Function 754(dmat2x3v): 753(ptr) Variable Function
763(dmat3x2v): 762(ptr) Variable Function 760(dmat3x2v): 759(ptr) Variable Function
769(dmat2x4v): 768(ptr) Variable Function 766(dmat2x4v): 765(ptr) Variable Function
775(dmat4x2v): 774(ptr) Variable Function 772(dmat4x2v): 771(ptr) Variable Function
781(dmat3x4v): 780(ptr) Variable Function 778(dmat3x4v): 777(ptr) Variable Function
787(dmat4x3v): 786(ptr) Variable Function 784(dmat4x3v): 783(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
@ -1079,313 +1080,309 @@ spv.400.frag
Store 55(dvec4v) 712 Store 55(dvec4v) 712
713: 39(float) Load 41(doublev) 713: 39(float) Load 41(doublev)
714: 39(float) Load 41(doublev) 714: 39(float) Load 41(doublev)
715: 39(float) Load 41(doublev)
716: 39(float) ExtInst 1(GLSL.std.450) 72(Refract) 713 714 715 716: 39(float) ExtInst 1(GLSL.std.450) 72(Refract) 713 714 715
717: 39(float) Load 41(doublev) 717: 39(float) Load 41(doublev)
718: 39(float) FAdd 717 716 718: 39(float) FAdd 717 716
Store 41(doublev) 718 Store 41(doublev) 718
719: 43(fvec2) Load 45(dvec2v) 719: 43(fvec2) Load 45(dvec2v)
720: 43(fvec2) Load 45(dvec2v) 720: 43(fvec2) Load 45(dvec2v)
721: 39(float) Load 41(doublev) 721: 43(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 719 720 715
722: 43(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 719 720 721 722: 43(fvec2) Load 45(dvec2v)
723: 43(fvec2) Load 45(dvec2v) 723: 43(fvec2) FAdd 722 721
724: 43(fvec2) FAdd 723 722 Store 45(dvec2v) 723
Store 45(dvec2v) 724 724: 48(fvec3) Load 50(dvec3v)
725: 48(fvec3) Load 50(dvec3v) 725: 48(fvec3) Load 50(dvec3v)
726: 48(fvec3) Load 50(dvec3v) 726: 48(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 724 725 715
727: 39(float) Load 41(doublev) 727: 48(fvec3) Load 50(dvec3v)
728: 48(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 725 726 727 728: 48(fvec3) FAdd 727 726
729: 48(fvec3) Load 50(dvec3v) Store 50(dvec3v) 728
730: 48(fvec3) FAdd 729 728 729: 53(fvec4) Load 55(dvec4v)
Store 50(dvec3v) 730 730: 53(fvec4) Load 55(dvec4v)
731: 53(fvec4) Load 55(dvec4v) 731: 53(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 729 730 715
732: 53(fvec4) Load 55(dvec4v) 732: 53(fvec4) Load 55(dvec4v)
733: 39(float) Load 41(doublev) 733: 53(fvec4) FAdd 732 731
734: 53(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 731 732 733 Store 55(dvec4v) 733
735: 53(fvec4) Load 55(dvec4v) 737: 43(fvec2) Load 45(dvec2v)
736: 53(fvec4) FAdd 735 734 738: 43(fvec2) Load 45(dvec2v)
Store 55(dvec4v) 736 739: 734 OuterProduct 737 738
740: 43(fvec2) Load 45(dvec2v) Store 736(dmat2v) 739
741: 43(fvec2) Load 45(dvec2v) 743: 48(fvec3) Load 50(dvec3v)
742: 737 OuterProduct 740 741 744: 48(fvec3) Load 50(dvec3v)
Store 739(dmat2v) 742 745: 740 OuterProduct 743 744
746: 48(fvec3) Load 50(dvec3v) Store 742(dmat3v) 745
747: 48(fvec3) Load 50(dvec3v) 749: 53(fvec4) Load 55(dvec4v)
748: 743 OuterProduct 746 747 750: 53(fvec4) Load 55(dvec4v)
Store 745(dmat3v) 748 751: 746 OuterProduct 749 750
752: 53(fvec4) Load 55(dvec4v) Store 748(dmat4v) 751
753: 53(fvec4) Load 55(dvec4v) 755: 48(fvec3) Load 50(dvec3v)
754: 749 OuterProduct 752 753 756: 43(fvec2) Load 45(dvec2v)
Store 751(dmat4v) 754 757: 752 OuterProduct 755 756
758: 48(fvec3) Load 50(dvec3v) Store 754(dmat2x3v) 757
759: 43(fvec2) Load 45(dvec2v) 761: 43(fvec2) Load 45(dvec2v)
760: 755 OuterProduct 758 759 762: 48(fvec3) Load 50(dvec3v)
Store 757(dmat2x3v) 760 763: 758 OuterProduct 761 762
764: 43(fvec2) Load 45(dvec2v) Store 760(dmat3x2v) 763
765: 48(fvec3) Load 50(dvec3v) 767: 53(fvec4) Load 55(dvec4v)
766: 761 OuterProduct 764 765 768: 43(fvec2) Load 45(dvec2v)
Store 763(dmat3x2v) 766 769: 764 OuterProduct 767 768
770: 53(fvec4) Load 55(dvec4v) Store 766(dmat2x4v) 769
771: 43(fvec2) Load 45(dvec2v) 773: 43(fvec2) Load 45(dvec2v)
772: 767 OuterProduct 770 771 774: 53(fvec4) Load 55(dvec4v)
Store 769(dmat2x4v) 772 775: 770 OuterProduct 773 774
776: 43(fvec2) Load 45(dvec2v) Store 772(dmat4x2v) 775
777: 53(fvec4) Load 55(dvec4v) 779: 53(fvec4) Load 55(dvec4v)
778: 773 OuterProduct 776 777 780: 48(fvec3) Load 50(dvec3v)
Store 775(dmat4x2v) 778 781: 776 OuterProduct 779 780
782: 53(fvec4) Load 55(dvec4v) Store 778(dmat3x4v) 781
783: 48(fvec3) Load 50(dvec3v) 785: 48(fvec3) Load 50(dvec3v)
784: 779 OuterProduct 782 783 786: 53(fvec4) Load 55(dvec4v)
Store 781(dmat3x4v) 784 787: 782 OuterProduct 785 786
788: 48(fvec3) Load 50(dvec3v) Store 784(dmat4x3v) 787
789: 53(fvec4) Load 55(dvec4v) 788: 734 Load 736(dmat2v)
790: 785 OuterProduct 788 789 789: 734 Load 736(dmat2v)
Store 787(dmat4x3v) 790 790: 43(fvec2) CompositeExtract 788 0
791: 737 Load 739(dmat2v) 791: 43(fvec2) CompositeExtract 789 0
792: 737 Load 739(dmat2v) 792: 43(fvec2) FMul 790 791
793: 43(fvec2) CompositeExtract 791 0 793: 43(fvec2) CompositeExtract 788 1
794: 43(fvec2) CompositeExtract 792 0 794: 43(fvec2) CompositeExtract 789 1
795: 43(fvec2) FMul 793 794 795: 43(fvec2) FMul 793 794
796: 43(fvec2) CompositeExtract 791 1 796: 734 CompositeConstruct 792 795
797: 43(fvec2) CompositeExtract 792 1 797: 734 Load 736(dmat2v)
798: 43(fvec2) FMul 796 797 798: 734 MatrixTimesMatrix 797 796
799: 737 CompositeConstruct 795 798 Store 736(dmat2v) 798
800: 737 Load 739(dmat2v) 799: 740 Load 742(dmat3v)
801: 737 MatrixTimesMatrix 800 799 800: 740 Load 742(dmat3v)
Store 739(dmat2v) 801 801: 48(fvec3) CompositeExtract 799 0
802: 743 Load 745(dmat3v) 802: 48(fvec3) CompositeExtract 800 0
803: 743 Load 745(dmat3v) 803: 48(fvec3) FMul 801 802
804: 48(fvec3) CompositeExtract 802 0 804: 48(fvec3) CompositeExtract 799 1
805: 48(fvec3) CompositeExtract 803 0 805: 48(fvec3) CompositeExtract 800 1
806: 48(fvec3) FMul 804 805 806: 48(fvec3) FMul 804 805
807: 48(fvec3) CompositeExtract 802 1 807: 48(fvec3) CompositeExtract 799 2
808: 48(fvec3) CompositeExtract 803 1 808: 48(fvec3) CompositeExtract 800 2
809: 48(fvec3) FMul 807 808 809: 48(fvec3) FMul 807 808
810: 48(fvec3) CompositeExtract 802 2 810: 740 CompositeConstruct 803 806 809
811: 48(fvec3) CompositeExtract 803 2 811: 740 Load 742(dmat3v)
812: 48(fvec3) FMul 810 811 812: 740 MatrixTimesMatrix 811 810
813: 743 CompositeConstruct 806 809 812 Store 742(dmat3v) 812
814: 743 Load 745(dmat3v) 813: 746 Load 748(dmat4v)
815: 743 MatrixTimesMatrix 814 813 814: 746 Load 748(dmat4v)
Store 745(dmat3v) 815 815: 53(fvec4) CompositeExtract 813 0
816: 749 Load 751(dmat4v) 816: 53(fvec4) CompositeExtract 814 0
817: 749 Load 751(dmat4v) 817: 53(fvec4) FMul 815 816
818: 53(fvec4) CompositeExtract 816 0 818: 53(fvec4) CompositeExtract 813 1
819: 53(fvec4) CompositeExtract 817 0 819: 53(fvec4) CompositeExtract 814 1
820: 53(fvec4) FMul 818 819 820: 53(fvec4) FMul 818 819
821: 53(fvec4) CompositeExtract 816 1 821: 53(fvec4) CompositeExtract 813 2
822: 53(fvec4) CompositeExtract 817 1 822: 53(fvec4) CompositeExtract 814 2
823: 53(fvec4) FMul 821 822 823: 53(fvec4) FMul 821 822
824: 53(fvec4) CompositeExtract 816 2 824: 53(fvec4) CompositeExtract 813 3
825: 53(fvec4) CompositeExtract 817 2 825: 53(fvec4) CompositeExtract 814 3
826: 53(fvec4) FMul 824 825 826: 53(fvec4) FMul 824 825
827: 53(fvec4) CompositeExtract 816 3 827: 746 CompositeConstruct 817 820 823 826
828: 53(fvec4) CompositeExtract 817 3 828: 746 Load 748(dmat4v)
829: 53(fvec4) FMul 827 828 829: 746 MatrixTimesMatrix 828 827
830: 749 CompositeConstruct 820 823 826 829 Store 748(dmat4v) 829
831: 749 Load 751(dmat4v) 830: 752 Load 754(dmat2x3v)
832: 749 MatrixTimesMatrix 831 830 831: 752 Load 754(dmat2x3v)
Store 751(dmat4v) 832 832: 48(fvec3) CompositeExtract 830 0
833: 755 Load 757(dmat2x3v) 833: 48(fvec3) CompositeExtract 831 0
834: 755 Load 757(dmat2x3v) 834: 48(fvec3) FMul 832 833
835: 48(fvec3) CompositeExtract 833 0 835: 48(fvec3) CompositeExtract 830 1
836: 48(fvec3) CompositeExtract 834 0 836: 48(fvec3) CompositeExtract 831 1
837: 48(fvec3) FMul 835 836 837: 48(fvec3) FMul 835 836
838: 48(fvec3) CompositeExtract 833 1 838: 752 CompositeConstruct 834 837
839: 48(fvec3) CompositeExtract 834 1 Store 754(dmat2x3v) 838
840: 48(fvec3) FMul 838 839 839: 764 Load 766(dmat2x4v)
841: 755 CompositeConstruct 837 840 840: 764 Load 766(dmat2x4v)
Store 757(dmat2x3v) 841 841: 53(fvec4) CompositeExtract 839 0
842: 767 Load 769(dmat2x4v) 842: 53(fvec4) CompositeExtract 840 0
843: 767 Load 769(dmat2x4v) 843: 53(fvec4) FMul 841 842
844: 53(fvec4) CompositeExtract 842 0 844: 53(fvec4) CompositeExtract 839 1
845: 53(fvec4) CompositeExtract 843 0 845: 53(fvec4) CompositeExtract 840 1
846: 53(fvec4) FMul 844 845 846: 53(fvec4) FMul 844 845
847: 53(fvec4) CompositeExtract 842 1 847: 764 CompositeConstruct 843 846
848: 53(fvec4) CompositeExtract 843 1 Store 766(dmat2x4v) 847
849: 53(fvec4) FMul 847 848 848: 758 Load 760(dmat3x2v)
850: 767 CompositeConstruct 846 849 849: 758 Load 760(dmat3x2v)
Store 769(dmat2x4v) 850 850: 43(fvec2) CompositeExtract 848 0
851: 761 Load 763(dmat3x2v) 851: 43(fvec2) CompositeExtract 849 0
852: 761 Load 763(dmat3x2v) 852: 43(fvec2) FMul 850 851
853: 43(fvec2) CompositeExtract 851 0 853: 43(fvec2) CompositeExtract 848 1
854: 43(fvec2) CompositeExtract 852 0 854: 43(fvec2) CompositeExtract 849 1
855: 43(fvec2) FMul 853 854 855: 43(fvec2) FMul 853 854
856: 43(fvec2) CompositeExtract 851 1 856: 43(fvec2) CompositeExtract 848 2
857: 43(fvec2) CompositeExtract 852 1 857: 43(fvec2) CompositeExtract 849 2
858: 43(fvec2) FMul 856 857 858: 43(fvec2) FMul 856 857
859: 43(fvec2) CompositeExtract 851 2 859: 758 CompositeConstruct 852 855 858
860: 43(fvec2) CompositeExtract 852 2 Store 760(dmat3x2v) 859
861: 43(fvec2) FMul 859 860 860: 776 Load 778(dmat3x4v)
862: 761 CompositeConstruct 855 858 861 861: 776 Load 778(dmat3x4v)
Store 763(dmat3x2v) 862 862: 53(fvec4) CompositeExtract 860 0
863: 779 Load 781(dmat3x4v) 863: 53(fvec4) CompositeExtract 861 0
864: 779 Load 781(dmat3x4v) 864: 53(fvec4) FMul 862 863
865: 53(fvec4) CompositeExtract 863 0 865: 53(fvec4) CompositeExtract 860 1
866: 53(fvec4) CompositeExtract 864 0 866: 53(fvec4) CompositeExtract 861 1
867: 53(fvec4) FMul 865 866 867: 53(fvec4) FMul 865 866
868: 53(fvec4) CompositeExtract 863 1 868: 53(fvec4) CompositeExtract 860 2
869: 53(fvec4) CompositeExtract 864 1 869: 53(fvec4) CompositeExtract 861 2
870: 53(fvec4) FMul 868 869 870: 53(fvec4) FMul 868 869
871: 53(fvec4) CompositeExtract 863 2 871: 776 CompositeConstruct 864 867 870
872: 53(fvec4) CompositeExtract 864 2 Store 778(dmat3x4v) 871
873: 53(fvec4) FMul 871 872 872: 770 Load 772(dmat4x2v)
874: 779 CompositeConstruct 867 870 873 873: 770 Load 772(dmat4x2v)
Store 781(dmat3x4v) 874 874: 43(fvec2) CompositeExtract 872 0
875: 773 Load 775(dmat4x2v) 875: 43(fvec2) CompositeExtract 873 0
876: 773 Load 775(dmat4x2v) 876: 43(fvec2) FMul 874 875
877: 43(fvec2) CompositeExtract 875 0 877: 43(fvec2) CompositeExtract 872 1
878: 43(fvec2) CompositeExtract 876 0 878: 43(fvec2) CompositeExtract 873 1
879: 43(fvec2) FMul 877 878 879: 43(fvec2) FMul 877 878
880: 43(fvec2) CompositeExtract 875 1 880: 43(fvec2) CompositeExtract 872 2
881: 43(fvec2) CompositeExtract 876 1 881: 43(fvec2) CompositeExtract 873 2
882: 43(fvec2) FMul 880 881 882: 43(fvec2) FMul 880 881
883: 43(fvec2) CompositeExtract 875 2 883: 43(fvec2) CompositeExtract 872 3
884: 43(fvec2) CompositeExtract 876 2 884: 43(fvec2) CompositeExtract 873 3
885: 43(fvec2) FMul 883 884 885: 43(fvec2) FMul 883 884
886: 43(fvec2) CompositeExtract 875 3 886: 770 CompositeConstruct 876 879 882 885
887: 43(fvec2) CompositeExtract 876 3 Store 772(dmat4x2v) 886
888: 43(fvec2) FMul 886 887 887: 782 Load 784(dmat4x3v)
889: 773 CompositeConstruct 879 882 885 888 888: 782 Load 784(dmat4x3v)
Store 775(dmat4x2v) 889 889: 48(fvec3) CompositeExtract 887 0
890: 785 Load 787(dmat4x3v) 890: 48(fvec3) CompositeExtract 888 0
891: 785 Load 787(dmat4x3v) 891: 48(fvec3) FMul 889 890
892: 48(fvec3) CompositeExtract 890 0 892: 48(fvec3) CompositeExtract 887 1
893: 48(fvec3) CompositeExtract 891 0 893: 48(fvec3) CompositeExtract 888 1
894: 48(fvec3) FMul 892 893 894: 48(fvec3) FMul 892 893
895: 48(fvec3) CompositeExtract 890 1 895: 48(fvec3) CompositeExtract 887 2
896: 48(fvec3) CompositeExtract 891 1 896: 48(fvec3) CompositeExtract 888 2
897: 48(fvec3) FMul 895 896 897: 48(fvec3) FMul 895 896
898: 48(fvec3) CompositeExtract 890 2 898: 48(fvec3) CompositeExtract 887 3
899: 48(fvec3) CompositeExtract 891 2 899: 48(fvec3) CompositeExtract 888 3
900: 48(fvec3) FMul 898 899 900: 48(fvec3) FMul 898 899
901: 48(fvec3) CompositeExtract 890 3 901: 782 CompositeConstruct 891 894 897 900
902: 48(fvec3) CompositeExtract 891 3 Store 784(dmat4x3v) 901
903: 48(fvec3) FMul 901 902 902: 734 Load 736(dmat2v)
904: 785 CompositeConstruct 894 897 900 903 903: 734 Transpose 902
Store 787(dmat4x3v) 904 904: 734 Load 736(dmat2v)
905: 737 Load 739(dmat2v) 905: 734 MatrixTimesMatrix 904 903
906: 737 Transpose 905 Store 736(dmat2v) 905
907: 737 Load 739(dmat2v) 906: 740 Load 742(dmat3v)
908: 737 MatrixTimesMatrix 907 906 907: 740 Transpose 906
Store 739(dmat2v) 908 908: 740 Load 742(dmat3v)
909: 743 Load 745(dmat3v) 909: 740 MatrixTimesMatrix 908 907
910: 743 Transpose 909 Store 742(dmat3v) 909
911: 743 Load 745(dmat3v) 910: 746 Load 748(dmat4v)
912: 743 MatrixTimesMatrix 911 910 911: 746 Transpose 910
Store 745(dmat3v) 912 912: 746 Load 748(dmat4v)
913: 749 Load 751(dmat4v) 913: 746 MatrixTimesMatrix 912 911
914: 749 Transpose 913 Store 748(dmat4v) 913
915: 749 Load 751(dmat4v) 914: 758 Load 760(dmat3x2v)
916: 749 MatrixTimesMatrix 915 914 915: 752 Transpose 914
Store 751(dmat4v) 916 Store 754(dmat2x3v) 915
917: 761 Load 763(dmat3x2v) 916: 752 Load 754(dmat2x3v)
918: 755 Transpose 917 917: 758 Transpose 916
Store 757(dmat2x3v) 918 Store 760(dmat3x2v) 917
919: 755 Load 757(dmat2x3v) 918: 770 Load 772(dmat4x2v)
920: 761 Transpose 919 919: 764 Transpose 918
Store 763(dmat3x2v) 920 Store 766(dmat2x4v) 919
921: 773 Load 775(dmat4x2v) 920: 764 Load 766(dmat2x4v)
922: 767 Transpose 921 921: 770 Transpose 920
Store 769(dmat2x4v) 922 Store 772(dmat4x2v) 921
923: 767 Load 769(dmat2x4v) 922: 782 Load 784(dmat4x3v)
924: 773 Transpose 923 923: 776 Transpose 922
Store 775(dmat4x2v) 924 Store 778(dmat3x4v) 923
925: 785 Load 787(dmat4x3v) 924: 776 Load 778(dmat3x4v)
926: 779 Transpose 925 925: 782 Transpose 924
Store 781(dmat3x4v) 926 Store 784(dmat4x3v) 925
927: 779 Load 781(dmat3x4v) 926: 734 Load 736(dmat2v)
928: 785 Transpose 927 927: 39(float) ExtInst 1(GLSL.std.450) 33(Determinant) 926
Store 787(dmat4x3v) 928 928: 39(float) Load 41(doublev)
929: 737 Load 739(dmat2v) 929: 39(float) FAdd 928 927
930: 39(float) ExtInst 1(GLSL.std.450) 33(Determinant) 929 Store 41(doublev) 929
931: 39(float) Load 41(doublev) 930: 740 Load 742(dmat3v)
932: 39(float) FAdd 931 930 931: 39(float) ExtInst 1(GLSL.std.450) 33(Determinant) 930
Store 41(doublev) 932 932: 39(float) Load 41(doublev)
933: 743 Load 745(dmat3v) 933: 39(float) FAdd 932 931
934: 39(float) ExtInst 1(GLSL.std.450) 33(Determinant) 933 Store 41(doublev) 933
935: 39(float) Load 41(doublev) 934: 746 Load 748(dmat4v)
936: 39(float) FAdd 935 934 935: 39(float) ExtInst 1(GLSL.std.450) 33(Determinant) 934
Store 41(doublev) 936 936: 39(float) Load 41(doublev)
937: 749 Load 751(dmat4v) 937: 39(float) FAdd 936 935
938: 39(float) ExtInst 1(GLSL.std.450) 33(Determinant) 937 Store 41(doublev) 937
939: 39(float) Load 41(doublev) 938: 734 Load 736(dmat2v)
940: 39(float) FAdd 939 938 939: 734 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 938
Store 41(doublev) 940 940: 734 Load 736(dmat2v)
941: 737 Load 739(dmat2v) 941: 734 MatrixTimesMatrix 940 939
942: 737 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 941 Store 736(dmat2v) 941
943: 737 Load 739(dmat2v) 942: 740 Load 742(dmat3v)
944: 737 MatrixTimesMatrix 943 942 943: 740 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 942
Store 739(dmat2v) 944 944: 740 Load 742(dmat3v)
945: 743 Load 745(dmat3v) 945: 740 MatrixTimesMatrix 944 943
946: 743 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 945 Store 742(dmat3v) 945
947: 743 Load 745(dmat3v) 946: 746 Load 748(dmat4v)
948: 743 MatrixTimesMatrix 947 946 947: 746 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 946
Store 745(dmat3v) 948 948: 746 Load 748(dmat4v)
949: 749 Load 751(dmat4v) 949: 746 MatrixTimesMatrix 948 947
950: 749 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 949 Store 748(dmat4v) 949
951: 749 Load 751(dmat4v) 950: 39(float) Load 41(doublev)
952: 749 MatrixTimesMatrix 951 950 952: 40(ptr) AccessChain 45(dvec2v) 951
Store 751(dmat4v) 952 953: 39(float) Load 952
953: 39(float) Load 41(doublev) 954: 39(float) FAdd 950 953
955: 40(ptr) AccessChain 45(dvec2v) 954 956: 40(ptr) AccessChain 50(dvec3v) 955
956: 39(float) Load 955 957: 39(float) Load 956
957: 39(float) FAdd 953 956 958: 39(float) FAdd 954 957
959: 40(ptr) AccessChain 50(dvec3v) 958 960: 40(ptr) AccessChain 55(dvec4v) 959
960: 39(float) Load 959 961: 39(float) Load 960
961: 39(float) FAdd 957 960 962: 39(float) FAdd 958 961
963: 40(ptr) AccessChain 55(dvec4v) 962 964: 40(ptr) AccessChain 736(dmat2v) 963 951
964: 39(float) Load 963 965: 39(float) Load 964
965: 39(float) FAdd 961 964 966: 39(float) FAdd 962 965
967: 40(ptr) AccessChain 739(dmat2v) 966 954 968: 40(ptr) AccessChain 742(dmat3v) 967 955
968: 39(float) Load 967 969: 39(float) Load 968
969: 39(float) FAdd 965 968 970: 39(float) FAdd 966 969
971: 40(ptr) AccessChain 745(dmat3v) 970 958 971: 40(ptr) AccessChain 748(dmat4v) 25 959
972: 39(float) Load 971 972: 39(float) Load 971
973: 39(float) FAdd 969 972 973: 39(float) FAdd 970 972
974: 40(ptr) AccessChain 751(dmat4v) 25 962 974: 40(ptr) AccessChain 754(dmat2x3v) 963 951
975: 39(float) Load 974 975: 39(float) Load 974
976: 39(float) FAdd 973 975 976: 39(float) FAdd 973 975
977: 40(ptr) AccessChain 757(dmat2x3v) 966 954 977: 40(ptr) AccessChain 760(dmat3x2v) 963 951
978: 39(float) Load 977 978: 39(float) Load 977
979: 39(float) FAdd 976 978 979: 39(float) FAdd 976 978
980: 40(ptr) AccessChain 763(dmat3x2v) 966 954 980: 40(ptr) AccessChain 778(dmat3x4v) 967 955
981: 39(float) Load 980 981: 39(float) Load 980
982: 39(float) FAdd 979 981 982: 39(float) FAdd 979 981
983: 40(ptr) AccessChain 781(dmat3x4v) 970 958 983: 40(ptr) AccessChain 784(dmat4x3v) 967 955
984: 39(float) Load 983 984: 39(float) Load 983
985: 39(float) FAdd 982 984 985: 39(float) FAdd 982 984
986: 40(ptr) AccessChain 787(dmat4x3v) 970 958 986: 40(ptr) AccessChain 766(dmat2x4v) 963 951
987: 39(float) Load 986 987: 39(float) Load 986
988: 39(float) FAdd 985 987 988: 39(float) FAdd 985 987
989: 40(ptr) AccessChain 769(dmat2x4v) 966 954 989: 40(ptr) AccessChain 772(dmat4x2v) 963 951
990: 39(float) Load 989 990: 39(float) Load 989
991: 39(float) FAdd 988 990 991: 39(float) FAdd 988 990
992: 40(ptr) AccessChain 775(dmat4x2v) 966 954 992: 428(bool) Load 430(boolv)
993: 39(float) Load 992 994: 10(float) Select 992 993 21
994: 39(float) FAdd 991 993 995: 39(float) FConvert 994
995: 428(bool) Load 430(boolv) 996: 39(float) FAdd 991 995
997: 10(float) Select 995 996 21 997: 429(ptr) AccessChain 439(bvec2v) 33
998: 39(float) FConvert 997 998: 428(bool) Load 997
999: 39(float) FAdd 994 998 999: 10(float) Select 998 993 21
1000: 429(ptr) AccessChain 439(bvec2v) 33 1000: 39(float) FConvert 999
1001: 428(bool) Load 1000 1001: 39(float) FAdd 996 1000
1002: 10(float) Select 1001 996 21 1002: 429(ptr) AccessChain 448(bvec3v) 33
1003: 39(float) FConvert 1002 1003: 428(bool) Load 1002
1004: 39(float) FAdd 999 1003 1004: 10(float) Select 1003 993 21
1005: 429(ptr) AccessChain 448(bvec3v) 33 1005: 39(float) FConvert 1004
1006: 428(bool) Load 1005 1006: 39(float) FAdd 1001 1005
1007: 10(float) Select 1006 996 21 1007: 429(ptr) AccessChain 457(bvec4v) 33
1008: 39(float) FConvert 1007 1008: 428(bool) Load 1007
1009: 39(float) FAdd 1004 1008 1009: 10(float) Select 1008 993 21
1010: 429(ptr) AccessChain 457(bvec4v) 33 1010: 39(float) FConvert 1009
1011: 428(bool) Load 1010 1011: 39(float) FAdd 1006 1010
1012: 10(float) Select 1011 996 21 1012: 10(float) FConvert 1011
1013: 39(float) FConvert 1012 1013: 11(fvec4) Load 13(outp)
1014: 39(float) FAdd 1009 1013 1014: 11(fvec4) VectorTimesScalar 1013 1012
1015: 10(float) FConvert 1014 Store 13(outp) 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): 80006 // Generated by (magic number): 80006
// Id's are bound by 521 // Id's are bound by 523
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" 458 EntryPoint Fragment 4 "main" 461
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,62 +67,63 @@ spv.float64.frag
Name 372 "f64v1" Name 372 "f64v1"
Name 376 "f64v2" Name 376 "f64v2"
Name 382 "f64v3" Name 382 "f64v3"
Name 401 "f64m3" Name 399 "f"
Name 402 "f64m1" Name 404 "f64m3"
Name 404 "f64m2" Name 405 "f64m1"
Name 413 "f64v1" Name 407 "f64m2"
Name 415 "f64v2" Name 416 "f64v1"
Name 420 "f64m4" Name 418 "f64v2"
Name 423 "f64" Name 423 "f64m4"
Name 426 "f64m5" Name 426 "f64"
Name 431 "f64m6" Name 429 "f64m5"
Name 432 "f64m7" Name 434 "f64m6"
Name 435 "bv" Name 435 "f64m7"
Name 436 "f64v1" Name 438 "bv"
Name 438 "f64v2" Name 439 "f64v1"
Name 456 "f64v" Name 441 "f64v2"
Name 458 "if64v" Name 459 "f64v"
Name 507 "S" Name 461 "if64v"
MemberName 507(S) 0 "x" Name 510 "S"
MemberName 507(S) 1 "y" MemberName 510(S) 0 "x"
MemberName 507(S) 2 "z" MemberName 510(S) 1 "y"
Name 509 "B1" MemberName 510(S) 2 "z"
MemberName 509(B1) 0 "a" Name 512 "B1"
MemberName 509(B1) 1 "b" MemberName 512(B1) 0 "a"
MemberName 509(B1) 2 "c" MemberName 512(B1) 1 "b"
MemberName 509(B1) 3 "d" MemberName 512(B1) 2 "c"
MemberName 509(B1) 4 "e" MemberName 512(B1) 3 "d"
MemberName 509(B1) 5 "f" MemberName 512(B1) 4 "e"
MemberName 509(B1) 6 "g" MemberName 512(B1) 5 "f"
MemberName 509(B1) 7 "h" MemberName 512(B1) 6 "g"
Name 511 "" MemberName 512(B1) 7 "h"
Name 512 "sf16" Name 514 ""
Name 514 "sf" Name 515 "sf16"
Name 515 "sd" Name 516 "sf"
Decorate 458(if64v) Flat Name 517 "sd"
Decorate 505 ArrayStride 16 Decorate 461(if64v) Flat
Decorate 506 ArrayStride 64 Decorate 508 ArrayStride 16
MemberDecorate 507(S) 0 Offset 0 Decorate 509 ArrayStride 64
MemberDecorate 507(S) 1 Offset 16 MemberDecorate 510(S) 0 Offset 0
MemberDecorate 507(S) 2 Offset 32 MemberDecorate 510(S) 1 Offset 16
Decorate 508 ArrayStride 64 MemberDecorate 510(S) 2 Offset 32
MemberDecorate 509(B1) 0 Offset 0 Decorate 511 ArrayStride 64
MemberDecorate 509(B1) 1 Offset 16 MemberDecorate 512(B1) 0 Offset 0
MemberDecorate 509(B1) 2 Offset 32 MemberDecorate 512(B1) 1 Offset 16
MemberDecorate 509(B1) 3 Offset 64 MemberDecorate 512(B1) 2 Offset 32
MemberDecorate 509(B1) 4 ColMajor MemberDecorate 512(B1) 3 Offset 64
MemberDecorate 509(B1) 4 Offset 96 MemberDecorate 512(B1) 4 ColMajor
MemberDecorate 509(B1) 4 MatrixStride 32 MemberDecorate 512(B1) 4 Offset 96
MemberDecorate 509(B1) 5 ColMajor MemberDecorate 512(B1) 4 MatrixStride 32
MemberDecorate 509(B1) 5 Offset 160 MemberDecorate 512(B1) 5 ColMajor
MemberDecorate 509(B1) 5 MatrixStride 32 MemberDecorate 512(B1) 5 Offset 160
MemberDecorate 509(B1) 6 Offset 288 MemberDecorate 512(B1) 5 MatrixStride 32
MemberDecorate 509(B1) 7 Offset 352 MemberDecorate 512(B1) 6 Offset 288
Decorate 509(B1) Block MemberDecorate 512(B1) 7 Offset 352
Decorate 511 DescriptorSet 0 Decorate 512(B1) Block
Decorate 512(sf16) SpecId 100 Decorate 514 DescriptorSet 0
Decorate 514(sf) SpecId 101 Decorate 515(sf16) SpecId 100
Decorate 515(sd) SpecId 102 Decorate 516(sf) SpecId 101
Decorate 517(sd) SpecId 102
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
26: TypeFloat 64 26: TypeFloat 64
@ -174,37 +175,38 @@ spv.float64.frag
214: TypeVector 26(float) 4 214: TypeVector 26(float) 4
215: TypePointer Function 214(fvec4) 215: TypePointer Function 214(fvec4)
364(ResType): TypeStruct 149(fvec3) 183(ivec3) 364(ResType): TypeStruct 149(fvec3) 183(ivec3)
399: TypeMatrix 149(fvec3) 2 397: TypeFloat 32
400: TypePointer Function 399 398: TypePointer Function 397(float)
418: TypeMatrix 27(fvec2) 3 402: TypeMatrix 149(fvec3) 2
419: TypePointer Function 418 403: TypePointer Function 402
424: TypeMatrix 149(fvec3) 3 421: TypeMatrix 27(fvec2) 3
425: TypePointer Function 424 422: TypePointer Function 421
429: TypeMatrix 214(fvec4) 4 427: TypeMatrix 149(fvec3) 3
430: TypePointer Function 429 428: TypePointer Function 427
457: TypePointer Input 149(fvec3) 432: TypeMatrix 214(fvec4) 4
458(if64v): 457(ptr) Variable Input 433: TypePointer Function 432
459: TypePointer Input 26(float) 460: TypePointer Input 149(fvec3)
496: 182(int) Constant 1 461(if64v): 460(ptr) Variable Input
501: 26(float) Constant 0 1071644672 462: TypePointer Input 26(float)
502: 27(fvec2) ConstantComposite 501 501 499: 182(int) Constant 1
504: 31(int) Constant 2 504: 26(float) Constant 0 1071644672
505: TypeArray 26(float) 504 505: 27(fvec2) ConstantComposite 504 504
506: TypeArray 399 504 507: 31(int) Constant 2
507(S): TypeStruct 26(float) 27(fvec2) 149(fvec3) 508: TypeArray 26(float) 507
508: TypeArray 507(S) 504 509: TypeArray 402 507
509(B1): TypeStruct 26(float) 27(fvec2) 149(fvec3) 505 399 506 507(S) 508 510(S): TypeStruct 26(float) 27(fvec2) 149(fvec3)
510: TypePointer Uniform 509(B1) 511: TypeArray 510(S) 507
511: 510(ptr) Variable Uniform 512(B1): TypeStruct 26(float) 27(fvec2) 149(fvec3) 508 402 509 510(S) 511
512(sf16): 162(float) SpecConstant 12288 513: TypePointer Uniform 512(B1)
513: TypeFloat 32 514: 513(ptr) Variable Uniform
514(sf): 513(float) SpecConstant 1048576000 515(sf16): 162(float) SpecConstant 12288
515(sd): 26(float) SpecConstant 0 1071644672 516(sf): 397(float) SpecConstant 1048576000
516: 513(float) SpecConstantOp 115 512(sf16) 517(sd): 26(float) SpecConstant 0 1071644672
517: 513(float) SpecConstantOp 115 512(sf16) 518: 397(float) SpecConstantOp 115 515(sf16)
518: 26(float) SpecConstantOp 115 517 519: 397(float) SpecConstantOp 115 515(sf16)
519: 162(float) SpecConstantOp 115 514(sf) 520: 26(float) SpecConstantOp 115 519
520: 162(float) SpecConstantOp 115 515(sd) 521: 162(float) SpecConstantOp 115 516(sf)
522: 162(float) SpecConstantOp 115 517(sd)
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
Return Return
@ -626,6 +628,7 @@ 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(fvec3) Load 372(f64v1) 373: 149(fvec3) Load 372(f64v1)
374: 26(float) ExtInst 1(GLSL.std.450) 66(Length) 373 374: 26(float) ExtInst 1(GLSL.std.450) 66(Length) 373
Store 371(f64) 374 Store 371(f64) 374
@ -655,134 +658,134 @@ spv.float64.frag
Store 382(f64v3) 394 Store 382(f64v3) 394
395: 149(fvec3) Load 372(f64v1) 395: 149(fvec3) Load 372(f64v1)
396: 149(fvec3) Load 376(f64v2) 396: 149(fvec3) Load 376(f64v2)
397: 26(float) Load 371(f64) 400: 397(float) Load 399(f)
398: 149(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 395 396 397 401: 149(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 395 396 400
Store 382(f64v3) 398 Store 382(f64v3) 401
Return Return
FunctionEnd FunctionEnd
20(builtinMatrixFuncs(): 2 Function None 3 20(builtinMatrixFuncs(): 2 Function None 3
21: Label 21: Label
401(f64m3): 400(ptr) Variable Function 404(f64m3): 403(ptr) Variable Function
402(f64m1): 400(ptr) Variable Function 405(f64m1): 403(ptr) Variable Function
404(f64m2): 400(ptr) Variable Function 407(f64m2): 403(ptr) Variable Function
413(f64v1): 150(ptr) Variable Function 416(f64v1): 150(ptr) Variable Function
415(f64v2): 28(ptr) Variable Function 418(f64v2): 28(ptr) Variable Function
420(f64m4): 419(ptr) Variable Function 423(f64m4): 422(ptr) Variable Function
423(f64): 33(ptr) Variable Function 426(f64): 33(ptr) Variable Function
426(f64m5): 425(ptr) Variable Function 429(f64m5): 428(ptr) Variable Function
431(f64m6): 430(ptr) Variable Function 434(f64m6): 433(ptr) Variable Function
432(f64m7): 430(ptr) Variable Function 435(f64m7): 433(ptr) Variable Function
403: 399 Load 402(f64m1) 406: 402 Load 405(f64m1)
405: 399 Load 404(f64m2) 408: 402 Load 407(f64m2)
406: 149(fvec3) CompositeExtract 403 0 409: 149(fvec3) CompositeExtract 406 0
407: 149(fvec3) CompositeExtract 405 0 410: 149(fvec3) CompositeExtract 408 0
408: 149(fvec3) FMul 406 407
409: 149(fvec3) CompositeExtract 403 1
410: 149(fvec3) CompositeExtract 405 1
411: 149(fvec3) FMul 409 410 411: 149(fvec3) FMul 409 410
412: 399 CompositeConstruct 408 411 412: 149(fvec3) CompositeExtract 406 1
Store 401(f64m3) 412 413: 149(fvec3) CompositeExtract 408 1
414: 149(fvec3) Load 413(f64v1) 414: 149(fvec3) FMul 412 413
416: 27(fvec2) Load 415(f64v2) 415: 402 CompositeConstruct 411 414
417: 399 OuterProduct 414 416 Store 404(f64m3) 415
Store 402(f64m1) 417 417: 149(fvec3) Load 416(f64v1)
421: 399 Load 402(f64m1) 419: 27(fvec2) Load 418(f64v2)
422: 418 Transpose 421 420: 402 OuterProduct 417 419
Store 420(f64m4) 422 Store 405(f64m1) 420
427: 424 Load 426(f64m5) 424: 402 Load 405(f64m1)
428: 26(float) ExtInst 1(GLSL.std.450) 33(Determinant) 427 425: 421 Transpose 424
Store 423(f64) 428 Store 423(f64m4) 425
433: 429 Load 432(f64m7) 430: 427 Load 429(f64m5)
434: 429 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 433 431: 26(float) ExtInst 1(GLSL.std.450) 33(Determinant) 430
Store 431(f64m6) 434 Store 426(f64) 431
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
435(bv): 153(ptr) Variable Function 438(bv): 153(ptr) Variable Function
436(f64v1): 150(ptr) Variable Function 439(f64v1): 150(ptr) Variable Function
438(f64v2): 150(ptr) Variable Function 441(f64v2): 150(ptr) Variable Function
437: 149(fvec3) Load 436(f64v1) 440: 149(fvec3) Load 439(f64v1)
439: 149(fvec3) Load 438(f64v2) 442: 149(fvec3) Load 441(f64v2)
440: 152(bvec3) FOrdLessThan 437 439 443: 152(bvec3) FOrdLessThan 440 442
Store 435(bv) 440 Store 438(bv) 443
441: 149(fvec3) Load 436(f64v1) 444: 149(fvec3) Load 439(f64v1)
442: 149(fvec3) Load 438(f64v2) 445: 149(fvec3) Load 441(f64v2)
443: 152(bvec3) FOrdLessThanEqual 441 442 446: 152(bvec3) FOrdLessThanEqual 444 445
Store 435(bv) 443 Store 438(bv) 446
444: 149(fvec3) Load 436(f64v1) 447: 149(fvec3) Load 439(f64v1)
445: 149(fvec3) Load 438(f64v2) 448: 149(fvec3) Load 441(f64v2)
446: 152(bvec3) FOrdGreaterThan 444 445 449: 152(bvec3) FOrdGreaterThan 447 448
Store 435(bv) 446 Store 438(bv) 449
447: 149(fvec3) Load 436(f64v1) 450: 149(fvec3) Load 439(f64v1)
448: 149(fvec3) Load 438(f64v2) 451: 149(fvec3) Load 441(f64v2)
449: 152(bvec3) FOrdGreaterThanEqual 447 448 452: 152(bvec3) FOrdGreaterThanEqual 450 451
Store 435(bv) 449 Store 438(bv) 452
450: 149(fvec3) Load 436(f64v1) 453: 149(fvec3) Load 439(f64v1)
451: 149(fvec3) Load 438(f64v2) 454: 149(fvec3) Load 441(f64v2)
452: 152(bvec3) FOrdEqual 450 451 455: 152(bvec3) FOrdEqual 453 454
Store 435(bv) 452 Store 438(bv) 455
453: 149(fvec3) Load 436(f64v1) 456: 149(fvec3) Load 439(f64v1)
454: 149(fvec3) Load 438(f64v2) 457: 149(fvec3) Load 441(f64v2)
455: 152(bvec3) FOrdNotEqual 453 454 458: 152(bvec3) FOrdNotEqual 456 457
Store 435(bv) 455 Store 438(bv) 458
Return Return
FunctionEnd FunctionEnd
24(builtinFragProcFuncs(): 2 Function None 3 24(builtinFragProcFuncs(): 2 Function None 3
25: Label 25: Label
456(f64v): 150(ptr) Variable Function 459(f64v): 150(ptr) Variable Function
460: 459(ptr) AccessChain 458(if64v) 32 463: 462(ptr) AccessChain 461(if64v) 32
461: 26(float) Load 460 464: 26(float) Load 463
462: 26(float) DPdx 461 465: 26(float) DPdx 464
463: 33(ptr) AccessChain 456(f64v) 32 466: 33(ptr) AccessChain 459(f64v) 32
Store 463 462 Store 466 465
464: 459(ptr) AccessChain 458(if64v) 88 467: 462(ptr) AccessChain 461(if64v) 88
465: 26(float) Load 464 468: 26(float) Load 467
466: 26(float) DPdy 465 469: 26(float) DPdy 468
467: 33(ptr) AccessChain 456(f64v) 88 470: 33(ptr) AccessChain 459(f64v) 88
Store 467 466 Store 470 469
468: 149(fvec3) Load 458(if64v) 471: 149(fvec3) Load 461(if64v)
469: 27(fvec2) VectorShuffle 468 468 0 1 472: 27(fvec2) VectorShuffle 471 471 0 1
470: 27(fvec2) DPdxFine 469 473: 27(fvec2) DPdxFine 472
471: 149(fvec3) Load 456(f64v) 474: 149(fvec3) Load 459(f64v)
472: 149(fvec3) VectorShuffle 471 470 3 4 2 475: 149(fvec3) VectorShuffle 474 473 3 4 2
Store 456(f64v) 472 Store 459(f64v) 475
473: 149(fvec3) Load 458(if64v) 476: 149(fvec3) Load 461(if64v)
474: 27(fvec2) VectorShuffle 473 473 0 1 477: 27(fvec2) VectorShuffle 476 476 0 1
475: 27(fvec2) DPdyFine 474 478: 27(fvec2) DPdyFine 477
476: 149(fvec3) Load 456(f64v) 479: 149(fvec3) Load 459(f64v)
477: 149(fvec3) VectorShuffle 476 475 3 4 2 480: 149(fvec3) VectorShuffle 479 478 3 4 2
Store 456(f64v) 477 Store 459(f64v) 480
478: 149(fvec3) Load 458(if64v) 481: 149(fvec3) Load 461(if64v)
479: 149(fvec3) DPdxCoarse 478 482: 149(fvec3) DPdxCoarse 481
Store 456(f64v) 479 Store 459(f64v) 482
480: 149(fvec3) Load 458(if64v) 483: 149(fvec3) Load 461(if64v)
481: 149(fvec3) DPdxCoarse 480 484: 149(fvec3) DPdxCoarse 483
Store 456(f64v) 481 Store 459(f64v) 484
482: 459(ptr) AccessChain 458(if64v) 32 485: 462(ptr) AccessChain 461(if64v) 32
483: 26(float) Load 482 486: 26(float) Load 485
484: 26(float) Fwidth 483 487: 26(float) Fwidth 486
485: 33(ptr) AccessChain 456(f64v) 32 488: 33(ptr) AccessChain 459(f64v) 32
Store 485 484 Store 488 487
486: 149(fvec3) Load 458(if64v) 489: 149(fvec3) Load 461(if64v)
487: 27(fvec2) VectorShuffle 486 486 0 1 490: 27(fvec2) VectorShuffle 489 489 0 1
488: 27(fvec2) FwidthFine 487 491: 27(fvec2) FwidthFine 490
489: 149(fvec3) Load 456(f64v) 492: 149(fvec3) Load 459(f64v)
490: 149(fvec3) VectorShuffle 489 488 3 4 2 493: 149(fvec3) VectorShuffle 492 491 3 4 2
Store 456(f64v) 490 Store 459(f64v) 493
491: 149(fvec3) Load 458(if64v) 494: 149(fvec3) Load 461(if64v)
492: 149(fvec3) FwidthCoarse 491 495: 149(fvec3) FwidthCoarse 494
Store 456(f64v) 492 Store 459(f64v) 495
493: 459(ptr) AccessChain 458(if64v) 32 496: 462(ptr) AccessChain 461(if64v) 32
494: 26(float) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 493 497: 26(float) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 496
495: 33(ptr) AccessChain 456(f64v) 32 498: 33(ptr) AccessChain 459(f64v) 32
Store 495 494 Store 498 497
497: 149(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 458(if64v) 496 500: 149(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 461(if64v) 499
498: 27(fvec2) VectorShuffle 497 497 0 1 501: 27(fvec2) VectorShuffle 500 500 0 1
499: 149(fvec3) Load 456(f64v) 502: 149(fvec3) Load 459(f64v)
500: 149(fvec3) VectorShuffle 499 498 3 4 2 503: 149(fvec3) VectorShuffle 502 501 3 4 2
Store 456(f64v) 500 Store 459(f64v) 503
503: 149(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 458(if64v) 502 506: 149(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 461(if64v) 505
Store 456(f64v) 503 Store 459(f64v) 506
Return Return
FunctionEnd FunctionEnd

8
Test/spv.400.frag Normal file → Executable 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, doublev); doublev += refract(doublev, doublev, 1.3);
dvec2v += refract(dvec2v, dvec2v, doublev); dvec2v += refract(dvec2v, dvec2v, 1.3);
dvec3v += refract(dvec3v, dvec3v, doublev); dvec3v += refract(dvec3v, dvec3v, 1.3);
dvec4v += refract(dvec4v, dvec4v, doublev); dvec4v += refract(dvec4v, dvec4v, 1.3);
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 Normal file → Executable 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, f64); f64v3 = refract(f64v1, f64v2, f);
} }
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, double);" "double refract(double, double, float);"
"dvec2 refract(dvec2 , dvec2 , double);" "dvec2 refract(dvec2 , dvec2 , float);"
"dvec3 refract(dvec3 , dvec3 , double);" "dvec3 refract(dvec3 , dvec3 , float);"
"dvec4 refract(dvec4 , dvec4 , double);" "dvec4 refract(dvec4 , dvec4 , float);"
"dmat2 matrixCompMult(dmat2, dmat2);" "dmat2 matrixCompMult(dmat2, dmat2);"
"dmat3 matrixCompMult(dmat3, dmat3);" "dmat3 matrixCompMult(dmat3, dmat3);"