const rayFlag defs used in the test cases in stead of numerical values
authorNeslisah Torosdagli <neslisah.torosdagli@amd.com>
Tue, 24 Mar 2020 03:09:44 +0000 (23:09 -0400)
committerNeslisah Torosdagli <neslisah.torosdagli@amd.com>
Tue, 24 Mar 2020 03:09:44 +0000 (23:09 -0400)
17 files changed:
Test/baseResults/rayQuery-allOps.comp.out
Test/baseResults/rayQuery-allOps.frag.out
Test/baseResults/rayQuery-allOps.rgen.out
Test/baseResults/rayQuery-array-2d-dynamic.rgen.out
Test/baseResults/rayQuery-decls.rgen.out
Test/baseResults/rayQuery-initialize.rgen.out
Test/baseResults/rayQuery-no-cse.rgen.out
Test/rayQuery-allOps.Error.rgen
Test/rayQuery-allOps.comp
Test/rayQuery-allOps.frag
Test/rayQuery-allOps.rgen
Test/rayQuery-array-2d-dynamic.rgen
Test/rayQuery-committed.Error.rgen
Test/rayQuery-decls.rgen
Test/rayQuery-initialize.rgen
Test/rayQuery-no-cse.rgen
glslang/MachineIndependent/Initialize.cpp

index d130122..ec174e7 100644 (file)
@@ -1,7 +1,7 @@
 rayQuery-allOps.comp
 // Module Version 10000
 // Generated by (magic number): 80008
-// Id's are bound by 265
+// Id's are bound by 266
 
                               Capability Shader
                               Capability RayQueryProvisionalKHR
@@ -26,40 +26,40 @@ rayQuery-allOps.comp
                               MemberName 15(Log) 1  "y"
                               Name 17  ""
                               Name 26  "ray"
-                              Name 45  "rayQuery"
-                              Name 48  "rtas"
-                              Name 51  "ray"
-                              Name 69  "candidateType"
-                              Name 79  "_mat4x3"
-                              Name 84  "_mat3x4"
-                              Name 146  "t"
-                              Name 160  "committedStatus"
-                              Name 246  "o"
-                              Name 249  "d"
-                              Name 260  "Ray"
-                              MemberName 260(Ray) 0  "pos"
-                              MemberName 260(Ray) 1  "tmin"
-                              MemberName 260(Ray) 2  "dir"
-                              MemberName 260(Ray) 3  "tmax"
-                              Name 262  "Rays"
-                              MemberName 262(Rays) 0  "rays"
-                              Name 264  ""
+                              Name 43  "ray"
+                              Name 47  "rayQuery"
+                              Name 50  "rtas"
+                              Name 70  "candidateType"
+                              Name 80  "_mat4x3"
+                              Name 85  "_mat3x4"
+                              Name 147  "t"
+                              Name 161  "committedStatus"
+                              Name 247  "o"
+                              Name 250  "d"
+                              Name 261  "Ray"
+                              MemberName 261(Ray) 0  "pos"
+                              MemberName 261(Ray) 1  "tmin"
+                              MemberName 261(Ray) 2  "dir"
+                              MemberName 261(Ray) 3  "tmax"
+                              Name 263  "Rays"
+                              MemberName 263(Rays) 0  "rays"
+                              Name 265  ""
                               MemberDecorate 15(Log) 0 Offset 0
                               MemberDecorate 15(Log) 1 Offset 4
                               Decorate 15(Log) BufferBlock
                               Decorate 17 DescriptorSet 0
                               Decorate 17 Binding 0
-                              Decorate 48(rtas) DescriptorSet 0
-                              Decorate 48(rtas) Binding 1
-                              MemberDecorate 260(Ray) 0 Offset 0
-                              MemberDecorate 260(Ray) 1 Offset 12
-                              MemberDecorate 260(Ray) 2 Offset 16
-                              MemberDecorate 260(Ray) 3 Offset 28
-                              Decorate 261 ArrayStride 32
-                              MemberDecorate 262(Rays) 0 Offset 0
-                              Decorate 262(Rays) BufferBlock
-                              Decorate 264 DescriptorSet 0
-                              Decorate 264 Binding 2
+                              Decorate 50(rtas) DescriptorSet 0
+                              Decorate 50(rtas) Binding 1
+                              MemberDecorate 261(Ray) 0 Offset 0
+                              MemberDecorate 261(Ray) 1 Offset 12
+                              MemberDecorate 261(Ray) 2 Offset 16
+                              MemberDecorate 261(Ray) 3 Offset 28
+                              Decorate 262 ArrayStride 32
+                              MemberDecorate 263(Rays) 0 Offset 0
+                              Decorate 263(Rays) BufferBlock
+                              Decorate 265 DescriptorSet 0
+                              Decorate 265 Binding 2
                2:             TypeVoid
                3:             TypeFunction 2
                8:             TypeFloat 32
@@ -85,333 +85,335 @@ rayQuery-allOps.comp
               35:             TypePointer Function 8(float)
               37:     18(int) Constant 3
               38:    8(float) Constant 1176255488
-              43:             TypeRayQueryProvisionalKHR
-              44:             TypePointer Function 43
-              46:             TypeAccelerationStructureKHR
-              47:             TypePointer UniformConstant 46
-        48(rtas):     47(ptr) Variable UniformConstant
-              50:     14(int) Constant 255
-              66:             TypeBool
-              68:             TypePointer Function 14(int)
-              70:    66(bool) ConstantFalse
-              77:             TypeMatrix 9(fvec3) 4
-              78:             TypePointer Function 77
-              81:             TypeVector 8(float) 4
-              82:             TypeMatrix 81(fvec4) 3
-              83:             TypePointer Function 82
-              88:    66(bool) ConstantTrue
-              93:             TypeVector 8(float) 2
-             147:    8(float) Constant 1056964608
-             179:     14(int) Constant 1
-             202:     14(int) Constant 2
-        260(Ray):             TypeStruct 9(fvec3) 8(float) 9(fvec3) 8(float)
-             261:             TypeRuntimeArray 260(Ray)
-       262(Rays):             TypeStruct 261
-             263:             TypePointer Uniform 262(Rays)
-             264:    263(ptr) Variable Uniform
+              45:             TypeRayQueryProvisionalKHR
+              46:             TypePointer Function 45
+              48:             TypeAccelerationStructureKHR
+              49:             TypePointer UniformConstant 48
+        50(rtas):     49(ptr) Variable UniformConstant
+              52:     14(int) Constant 255
+              67:             TypeBool
+              69:             TypePointer Function 14(int)
+              71:    67(bool) ConstantFalse
+              78:             TypeMatrix 9(fvec3) 4
+              79:             TypePointer Function 78
+              82:             TypeVector 8(float) 4
+              83:             TypeMatrix 82(fvec4) 3
+              84:             TypePointer Function 83
+              89:    67(bool) ConstantTrue
+              94:             TypeVector 8(float) 2
+             148:    8(float) Constant 1056964608
+             180:     14(int) Constant 1
+             203:     14(int) Constant 2
+        261(Ray):             TypeStruct 9(fvec3) 8(float) 9(fvec3) 8(float)
+             262:             TypeRuntimeArray 261(Ray)
+       263(Rays):             TypeStruct 262
+             264:             TypePointer Uniform 263(Rays)
+             265:    264(ptr) Variable Uniform
          4(main):           2 Function None 3
                5:             Label
-    45(rayQuery):     44(ptr) Variable Function
-         51(ray):     25(ptr) Variable Function
-69(candidateType):     68(ptr) Variable Function
-     79(_mat4x3):     78(ptr) Variable Function
-     84(_mat3x4):     83(ptr) Variable Function
-          146(t):     35(ptr) Variable Function
-160(committedStatus):     68(ptr) Variable Function
-          246(o):     29(ptr) Variable Function
-          249(d):     29(ptr) Variable Function
-              49:          46 Load 48(rtas)
-              52:     29(ptr) AccessChain 51(ray) 19
-              53:    9(fvec3) Load 52
-              54:     35(ptr) AccessChain 51(ray) 23
-              55:    8(float) Load 54
-              56:     29(ptr) AccessChain 51(ray) 31
-              57:    9(fvec3) Load 56
-              58:     35(ptr) AccessChain 51(ray) 37
-              59:    8(float) Load 58
-                              RayQueryInitializeKHR 45(rayQuery) 49 20 50 53 55 57 59
-                              Branch 60
-              60:             Label
-                              LoopMerge 62 63 None
-                              Branch 64
-              64:             Label
-              65:          43 Load 45(rayQuery)
-              67:    66(bool) RayQueryProceedKHR 65
-                              BranchConditional 67 61 62
-              61:               Label
-              71:     14(int)   RayQueryGetIntersectionTypeKHR 45(rayQuery) 19
-                                Store 69(candidateType) 71
-              72:     14(int)   Load 69(candidateType)
-                                SelectionMerge 75 None
-                                Switch 72 75 
-                                       case 0: 73
-                                       case 1: 74
-              73:                 Label
-              76:          43     Load 45(rayQuery)
-                                  RayQueryTerminateKHR 76
-              80:          77     RayQueryGetIntersectionObjectToWorldKHR 45(rayQuery) 19
-                                  Store 79(_mat4x3) 80
-              85:          77     Load 79(_mat4x3)
-              86:          82     Transpose 85
-                                  Store 84(_mat3x4) 86
-              87:          43     Load 45(rayQuery)
-                                  RayQueryConfirmIntersectionKHR 87
-              89:    66(bool)     RayQueryGetIntersectionFrontFaceKHR 45(rayQuery) 23
-                                  SelectionMerge 91 None
-                                  BranchConditional 89 90 91
-              90:                   Label
-              92:           2       FunctionCall 6(doSomething()
-                                    Branch 91
-              91:                 Label
-              94:   93(fvec2)     RayQueryGetIntersectionBarycentricsKHR 45(rayQuery) 23
-              95:    8(float)     CompositeExtract 94 0
-              96:    66(bool)     FOrdEqual 95 27
-                                  SelectionMerge 98 None
-                                  BranchConditional 96 97 98
-              97:                   Label
-              99:           2       FunctionCall 6(doSomething()
-                                    Branch 98
-              98:                 Label
-             100:     18(int)     RayQueryGetIntersectionInstanceCustomIndexKHR 45(rayQuery) 23
-             101:    66(bool)     SGreaterThan 100 19
-                                  SelectionMerge 103 None
-                                  BranchConditional 101 102 103
-             102:                   Label
-             104:           2       FunctionCall 6(doSomething()
-                                    Branch 103
-             103:                 Label
-             105:     18(int)     RayQueryGetIntersectionInstanceIdKHR 45(rayQuery) 23
-             106:    66(bool)     SGreaterThan 105 19
-                                  SelectionMerge 108 None
-                                  BranchConditional 106 107 108
-             107:                   Label
-             109:           2       FunctionCall 6(doSomething()
-                                    Branch 108
-             108:                 Label
-             110:    9(fvec3)     RayQueryGetIntersectionObjectRayDirectionKHR 45(rayQuery) 23
-             111:    8(float)     CompositeExtract 110 0
-             112:    66(bool)     FOrdGreaterThan 111 27
-                                  SelectionMerge 114 None
-                                  BranchConditional 112 113 114
-             113:                   Label
-             115:           2       FunctionCall 6(doSomething()
-                                    Branch 114
-             114:                 Label
-             116:    9(fvec3)     RayQueryGetIntersectionObjectRayOriginKHR 45(rayQuery) 23
-             117:    8(float)     CompositeExtract 116 0
-             118:    66(bool)     FOrdGreaterThan 117 27
-                                  SelectionMerge 120 None
-                                  BranchConditional 118 119 120
-             119:                   Label
-             121:           2       FunctionCall 6(doSomething()
-                                    Branch 120
-             120:                 Label
-             122:     18(int)     RayQueryGetIntersectionPrimitiveIndexKHR 45(rayQuery) 23
-             123:    66(bool)     SGreaterThan 122 19
-                                  SelectionMerge 125 None
-                                  BranchConditional 123 124 125
-             124:                   Label
-             126:           2       FunctionCall 6(doSomething()
-                                    Branch 125
-             125:                 Label
-             127:    8(float)     RayQueryGetIntersectionTKHR 45(rayQuery) 23
-             128:    66(bool)     FOrdGreaterThan 127 27
-                                  SelectionMerge 130 None
-                                  BranchConditional 128 129 130
-             129:                   Label
-             131:           2       FunctionCall 6(doSomething()
-                                    Branch 130
-             130:                 Label
-             132:     18(int)     RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR 45(rayQuery) 23
-             133:    66(bool)     UGreaterThan 132 20
-                                  SelectionMerge 135 None
-                                  BranchConditional 133 134 135
-             134:                   Label
-             136:           2       FunctionCall 6(doSomething()
-                                    Branch 135
-             135:                 Label
-                                  Branch 75
+         43(ray):     25(ptr) Variable Function
+    47(rayQuery):     46(ptr) Variable Function
+70(candidateType):     69(ptr) Variable Function
+     80(_mat4x3):     79(ptr) Variable Function
+     85(_mat3x4):     84(ptr) Variable Function
+          147(t):     35(ptr) Variable Function
+161(committedStatus):     69(ptr) Variable Function
+          247(o):     29(ptr) Variable Function
+          250(d):     29(ptr) Variable Function
+              44:     10(Ray) FunctionCall 12(makeRayDesc()
+                              Store 43(ray) 44
+              51:          48 Load 50(rtas)
+              53:     29(ptr) AccessChain 43(ray) 19
+              54:    9(fvec3) Load 53
+              55:     35(ptr) AccessChain 43(ray) 23
+              56:    8(float) Load 55
+              57:     29(ptr) AccessChain 43(ray) 31
+              58:    9(fvec3) Load 57
+              59:     35(ptr) AccessChain 43(ray) 37
+              60:    8(float) Load 59
+                              RayQueryInitializeKHR 47(rayQuery) 51 20 52 54 56 58 60
+                              Branch 61
+              61:             Label
+                              LoopMerge 63 64 None
+                              Branch 65
+              65:             Label
+              66:          45 Load 47(rayQuery)
+              68:    67(bool) RayQueryProceedKHR 66
+                              BranchConditional 68 62 63
+              62:               Label
+              72:     14(int)   RayQueryGetIntersectionTypeKHR 47(rayQuery) 19
+                                Store 70(candidateType) 72
+              73:     14(int)   Load 70(candidateType)
+                                SelectionMerge 76 None
+                                Switch 73 76 
+                                       case 0: 74
+                                       case 1: 75
               74:                 Label
-             138:          77     RayQueryGetIntersectionObjectToWorldKHR 45(rayQuery) 19
-                                  Store 79(_mat4x3) 138
-             139:          77     Load 79(_mat4x3)
-             140:          82     Transpose 139
-                                  Store 84(_mat3x4) 140
-             141:          43     Load 45(rayQuery)
-             142:    66(bool)     RayQueryGetIntersectionCandidateAABBOpaqueKHR 141
-                                  SelectionMerge 144 None
-                                  BranchConditional 142 143 144
-             143:                   Label
-             145:           2       FunctionCall 6(doSomething()
-                                    Branch 144
-             144:                 Label
-                                  Store 146(t) 147
-             148:    8(float)     Load 146(t)
-                                  RayQueryGenerateIntersectionKHR 45(rayQuery) 148
-             149:          43     Load 45(rayQuery)
-                                  RayQueryTerminateKHR 149
-                                  Branch 75
-              75:               Label
-                                Branch 63
-              63:               Label
-                                Branch 60
-              62:             Label
-             152:     35(ptr) AccessChain 84(_mat3x4) 19 20
-             153:    8(float) Load 152
-             154:     35(ptr) AccessChain 79(_mat4x3) 19 20
-             155:    8(float) Load 154
-             156:    66(bool) FOrdEqual 153 155
-                              SelectionMerge 158 None
-                              BranchConditional 156 157 158
-             157:               Label
-             159:           2   FunctionCall 6(doSomething()
-                                Branch 158
-             158:             Label
-             161:     14(int) RayQueryGetIntersectionTypeKHR 45(rayQuery) 23
-                              Store 160(committedStatus) 161
-             162:     14(int) Load 160(committedStatus)
-                              SelectionMerge 166 None
-                              Switch 162 166 
-                                     case 0: 163
-                                     case 1: 164
-                                     case 2: 165
-             163:               Label
-             167:          77   RayQueryGetIntersectionWorldToObjectKHR 45(rayQuery) 19
-                                Store 79(_mat4x3) 167
-             168:          77   Load 79(_mat4x3)
-             169:          82   Transpose 168
-                                Store 84(_mat3x4) 169
-                                Branch 166
+              77:          45     Load 47(rayQuery)
+                                  RayQueryTerminateKHR 77
+              81:          78     RayQueryGetIntersectionObjectToWorldKHR 47(rayQuery) 19
+                                  Store 80(_mat4x3) 81
+              86:          78     Load 80(_mat4x3)
+              87:          83     Transpose 86
+                                  Store 85(_mat3x4) 87
+              88:          45     Load 47(rayQuery)
+                                  RayQueryConfirmIntersectionKHR 88
+              90:    67(bool)     RayQueryGetIntersectionFrontFaceKHR 47(rayQuery) 23
+                                  SelectionMerge 92 None
+                                  BranchConditional 90 91 92
+              91:                   Label
+              93:           2       FunctionCall 6(doSomething()
+                                    Branch 92
+              92:                 Label
+              95:   94(fvec2)     RayQueryGetIntersectionBarycentricsKHR 47(rayQuery) 23
+              96:    8(float)     CompositeExtract 95 0
+              97:    67(bool)     FOrdEqual 96 27
+                                  SelectionMerge 99 None
+                                  BranchConditional 97 98 99
+              98:                   Label
+             100:           2       FunctionCall 6(doSomething()
+                                    Branch 99
+              99:                 Label
+             101:     18(int)     RayQueryGetIntersectionInstanceCustomIndexKHR 47(rayQuery) 23
+             102:    67(bool)     SGreaterThan 101 19
+                                  SelectionMerge 104 None
+                                  BranchConditional 102 103 104
+             103:                   Label
+             105:           2       FunctionCall 6(doSomething()
+                                    Branch 104
+             104:                 Label
+             106:     18(int)     RayQueryGetIntersectionInstanceIdKHR 47(rayQuery) 23
+             107:    67(bool)     SGreaterThan 106 19
+                                  SelectionMerge 109 None
+                                  BranchConditional 107 108 109
+             108:                   Label
+             110:           2       FunctionCall 6(doSomething()
+                                    Branch 109
+             109:                 Label
+             111:    9(fvec3)     RayQueryGetIntersectionObjectRayDirectionKHR 47(rayQuery) 23
+             112:    8(float)     CompositeExtract 111 0
+             113:    67(bool)     FOrdGreaterThan 112 27
+                                  SelectionMerge 115 None
+                                  BranchConditional 113 114 115
+             114:                   Label
+             116:           2       FunctionCall 6(doSomething()
+                                    Branch 115
+             115:                 Label
+             117:    9(fvec3)     RayQueryGetIntersectionObjectRayOriginKHR 47(rayQuery) 23
+             118:    8(float)     CompositeExtract 117 0
+             119:    67(bool)     FOrdGreaterThan 118 27
+                                  SelectionMerge 121 None
+                                  BranchConditional 119 120 121
+             120:                   Label
+             122:           2       FunctionCall 6(doSomething()
+                                    Branch 121
+             121:                 Label
+             123:     18(int)     RayQueryGetIntersectionPrimitiveIndexKHR 47(rayQuery) 23
+             124:    67(bool)     SGreaterThan 123 19
+                                  SelectionMerge 126 None
+                                  BranchConditional 124 125 126
+             125:                   Label
+             127:           2       FunctionCall 6(doSomething()
+                                    Branch 126
+             126:                 Label
+             128:    8(float)     RayQueryGetIntersectionTKHR 47(rayQuery) 23
+             129:    67(bool)     FOrdGreaterThan 128 27
+                                  SelectionMerge 131 None
+                                  BranchConditional 129 130 131
+             130:                   Label
+             132:           2       FunctionCall 6(doSomething()
+                                    Branch 131
+             131:                 Label
+             133:     18(int)     RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR 47(rayQuery) 23
+             134:    67(bool)     UGreaterThan 133 20
+                                  SelectionMerge 136 None
+                                  BranchConditional 134 135 136
+             135:                   Label
+             137:           2       FunctionCall 6(doSomething()
+                                    Branch 136
+             136:                 Label
+                                  Branch 76
+              75:                 Label
+             139:          78     RayQueryGetIntersectionObjectToWorldKHR 47(rayQuery) 19
+                                  Store 80(_mat4x3) 139
+             140:          78     Load 80(_mat4x3)
+             141:          83     Transpose 140
+                                  Store 85(_mat3x4) 141
+             142:          45     Load 47(rayQuery)
+             143:    67(bool)     RayQueryGetIntersectionCandidateAABBOpaqueKHR 142
+                                  SelectionMerge 145 None
+                                  BranchConditional 143 144 145
+             144:                   Label
+             146:           2       FunctionCall 6(doSomething()
+                                    Branch 145
+             145:                 Label
+                                  Store 147(t) 148
+             149:    8(float)     Load 147(t)
+                                  RayQueryGenerateIntersectionKHR 47(rayQuery) 149
+             150:          45     Load 47(rayQuery)
+                                  RayQueryTerminateKHR 150
+                                  Branch 76
+              76:               Label
+                                Branch 64
+              64:               Label
+                                Branch 61
+              63:             Label
+             153:     35(ptr) AccessChain 85(_mat3x4) 19 20
+             154:    8(float) Load 153
+             155:     35(ptr) AccessChain 80(_mat4x3) 19 20
+             156:    8(float) Load 155
+             157:    67(bool) FOrdEqual 154 156
+                              SelectionMerge 159 None
+                              BranchConditional 157 158 159
+             158:               Label
+             160:           2   FunctionCall 6(doSomething()
+                                Branch 159
+             159:             Label
+             162:     14(int) RayQueryGetIntersectionTypeKHR 47(rayQuery) 23
+                              Store 161(committedStatus) 162
+             163:     14(int) Load 161(committedStatus)
+                              SelectionMerge 167 None
+                              Switch 163 167 
+                                     case 0: 164
+                                     case 1: 165
+                                     case 2: 166
              164:               Label
-             171:          77   RayQueryGetIntersectionWorldToObjectKHR 45(rayQuery) 23
-                                Store 79(_mat4x3) 171
-             172:          77   Load 79(_mat4x3)
-             173:          82   Transpose 172
-                                Store 84(_mat3x4) 173
-             174:    66(bool)   RayQueryGetIntersectionFrontFaceKHR 45(rayQuery) 23
-                                SelectionMerge 176 None
-                                BranchConditional 174 175 176
-             175:                 Label
-             177:           2     FunctionCall 6(doSomething()
-                                  Branch 176
-             176:               Label
-             178:   93(fvec2)   RayQueryGetIntersectionBarycentricsKHR 45(rayQuery) 23
-             180:    8(float)   CompositeExtract 178 1
-             181:    66(bool)   FOrdEqual 180 27
-                                SelectionMerge 183 None
-                                BranchConditional 181 182 183
-             182:                 Label
-             184:           2     FunctionCall 6(doSomething()
-                                  Branch 183
-             183:               Label
-                                Branch 166
+             168:          78   RayQueryGetIntersectionWorldToObjectKHR 47(rayQuery) 19
+                                Store 80(_mat4x3) 168
+             169:          78   Load 80(_mat4x3)
+             170:          83   Transpose 169
+                                Store 85(_mat3x4) 170
+                                Branch 167
              165:               Label
-             186:     18(int)   RayQueryGetIntersectionGeometryIndexKHR 45(rayQuery) 23
-             187:    66(bool)   SGreaterThan 186 19
-                                SelectionMerge 189 None
-                                BranchConditional 187 188 189
-             188:                 Label
-             190:           2     FunctionCall 6(doSomething()
-                                  Branch 189
-             189:               Label
-             191:     18(int)   RayQueryGetIntersectionInstanceIdKHR 45(rayQuery) 23
-             192:    66(bool)   SGreaterThan 191 19
-                                SelectionMerge 194 None
-                                BranchConditional 192 193 194
-             193:                 Label
-             195:           2     FunctionCall 6(doSomething()
-                                  Branch 194
-             194:               Label
-             196:     18(int)   RayQueryGetIntersectionInstanceCustomIndexKHR 45(rayQuery) 23
-             197:    66(bool)   SGreaterThan 196 19
-                                SelectionMerge 199 None
-                                BranchConditional 197 198 199
-             198:                 Label
-             200:           2     FunctionCall 6(doSomething()
-                                  Branch 199
-             199:               Label
-             201:    9(fvec3)   RayQueryGetIntersectionObjectRayDirectionKHR 45(rayQuery) 23
-             203:    8(float)   CompositeExtract 201 2
-             204:    66(bool)   FOrdGreaterThan 203 27
-                                SelectionMerge 206 None
-                                BranchConditional 204 205 206
-             205:                 Label
-             207:           2     FunctionCall 6(doSomething()
-                                  Branch 206
-             206:               Label
-             208:    9(fvec3)   RayQueryGetIntersectionObjectRayOriginKHR 45(rayQuery) 23
-             209:    8(float)   CompositeExtract 208 0
-             210:    66(bool)   FOrdGreaterThan 209 27
-                                SelectionMerge 212 None
-                                BranchConditional 210 211 212
-             211:                 Label
-             213:           2     FunctionCall 6(doSomething()
-                                  Branch 212
-             212:               Label
-             214:     18(int)   RayQueryGetIntersectionPrimitiveIndexKHR 45(rayQuery) 23
-             215:    66(bool)   SGreaterThan 214 19
-                                SelectionMerge 217 None
-                                BranchConditional 215 216 217
-             216:                 Label
-             218:           2     FunctionCall 6(doSomething()
-                                  Branch 217
-             217:               Label
-             219:    8(float)   RayQueryGetIntersectionTKHR 45(rayQuery) 23
-             220:    66(bool)   FOrdGreaterThan 219 27
-                                SelectionMerge 222 None
-                                BranchConditional 220 221 222
-             221:                 Label
-             223:           2     FunctionCall 6(doSomething()
-                                  Branch 222
-             222:               Label
-                                Branch 166
-             166:             Label
-             226:     35(ptr) AccessChain 84(_mat3x4) 19 20
-             227:    8(float) Load 226
-             228:     35(ptr) AccessChain 79(_mat4x3) 19 20
-             229:    8(float) Load 228
-             230:    66(bool) FOrdEqual 227 229
-                              SelectionMerge 232 None
-                              BranchConditional 230 231 232
-             231:               Label
-             233:           2   FunctionCall 6(doSomething()
-                                Branch 232
-             232:             Label
-             234:          43 Load 45(rayQuery)
-             235:     14(int) RayQueryGetRayFlagsKHR 234
-             236:    66(bool) UGreaterThan 235 20
-                              SelectionMerge 238 None
-                              BranchConditional 236 237 238
-             237:               Label
-             239:           2   FunctionCall 6(doSomething()
-                                Branch 238
-             238:             Label
-             240:          43 Load 45(rayQuery)
-             241:    8(float) RayQueryGetRayTMinKHR 240
-             242:    66(bool) FOrdGreaterThan 241 27
-                              SelectionMerge 244 None
-                              BranchConditional 242 243 244
-             243:               Label
-             245:           2   FunctionCall 6(doSomething()
-                                Branch 244
-             244:             Label
-             247:          43 Load 45(rayQuery)
-             248:    9(fvec3) RayQueryGetWorldRayOriginKHR 247
-                              Store 246(o) 248
-             250:          43 Load 45(rayQuery)
-             251:    9(fvec3) RayQueryGetWorldRayDirectionKHR 250
-                              Store 249(d) 251
-             252:     35(ptr) AccessChain 246(o) 20
-             253:    8(float) Load 252
-             254:     35(ptr) AccessChain 249(d) 202
-             255:    8(float) Load 254
-             256:    66(bool) FOrdEqual 253 255
-                              SelectionMerge 258 None
-                              BranchConditional 256 257 258
-             257:               Label
-             259:           2   FunctionCall 6(doSomething()
-                                Branch 258
-             258:             Label
+             172:          78   RayQueryGetIntersectionWorldToObjectKHR 47(rayQuery) 23
+                                Store 80(_mat4x3) 172
+             173:          78   Load 80(_mat4x3)
+             174:          83   Transpose 173
+                                Store 85(_mat3x4) 174
+             175:    67(bool)   RayQueryGetIntersectionFrontFaceKHR 47(rayQuery) 23
+                                SelectionMerge 177 None
+                                BranchConditional 175 176 177
+             176:                 Label
+             178:           2     FunctionCall 6(doSomething()
+                                  Branch 177
+             177:               Label
+             179:   94(fvec2)   RayQueryGetIntersectionBarycentricsKHR 47(rayQuery) 23
+             181:    8(float)   CompositeExtract 179 1
+             182:    67(bool)   FOrdEqual 181 27
+                                SelectionMerge 184 None
+                                BranchConditional 182 183 184
+             183:                 Label
+             185:           2     FunctionCall 6(doSomething()
+                                  Branch 184
+             184:               Label
+                                Branch 167
+             166:               Label
+             187:     18(int)   RayQueryGetIntersectionGeometryIndexKHR 47(rayQuery) 23
+             188:    67(bool)   SGreaterThan 187 19
+                                SelectionMerge 190 None
+                                BranchConditional 188 189 190
+             189:                 Label
+             191:           2     FunctionCall 6(doSomething()
+                                  Branch 190
+             190:               Label
+             192:     18(int)   RayQueryGetIntersectionInstanceIdKHR 47(rayQuery) 23
+             193:    67(bool)   SGreaterThan 192 19
+                                SelectionMerge 195 None
+                                BranchConditional 193 194 195
+             194:                 Label
+             196:           2     FunctionCall 6(doSomething()
+                                  Branch 195
+             195:               Label
+             197:     18(int)   RayQueryGetIntersectionInstanceCustomIndexKHR 47(rayQuery) 23
+             198:    67(bool)   SGreaterThan 197 19
+                                SelectionMerge 200 None
+                                BranchConditional 198 199 200
+             199:                 Label
+             201:           2     FunctionCall 6(doSomething()
+                                  Branch 200
+             200:               Label
+             202:    9(fvec3)   RayQueryGetIntersectionObjectRayDirectionKHR 47(rayQuery) 23
+             204:    8(float)   CompositeExtract 202 2
+             205:    67(bool)   FOrdGreaterThan 204 27
+                                SelectionMerge 207 None
+                                BranchConditional 205 206 207
+             206:                 Label
+             208:           2     FunctionCall 6(doSomething()
+                                  Branch 207
+             207:               Label
+             209:    9(fvec3)   RayQueryGetIntersectionObjectRayOriginKHR 47(rayQuery) 23
+             210:    8(float)   CompositeExtract 209 0
+             211:    67(bool)   FOrdGreaterThan 210 27
+                                SelectionMerge 213 None
+                                BranchConditional 211 212 213
+             212:                 Label
+             214:           2     FunctionCall 6(doSomething()
+                                  Branch 213
+             213:               Label
+             215:     18(int)   RayQueryGetIntersectionPrimitiveIndexKHR 47(rayQuery) 23
+             216:    67(bool)   SGreaterThan 215 19
+                                SelectionMerge 218 None
+                                BranchConditional 216 217 218
+             217:                 Label
+             219:           2     FunctionCall 6(doSomething()
+                                  Branch 218
+             218:               Label
+             220:    8(float)   RayQueryGetIntersectionTKHR 47(rayQuery) 23
+             221:    67(bool)   FOrdGreaterThan 220 27
+                                SelectionMerge 223 None
+                                BranchConditional 221 222 223
+             222:                 Label
+             224:           2     FunctionCall 6(doSomething()
+                                  Branch 223
+             223:               Label
+                                Branch 167
+             167:             Label
+             227:     35(ptr) AccessChain 85(_mat3x4) 19 20
+             228:    8(float) Load 227
+             229:     35(ptr) AccessChain 80(_mat4x3) 19 20
+             230:    8(float) Load 229
+             231:    67(bool) FOrdEqual 228 230
+                              SelectionMerge 233 None
+                              BranchConditional 231 232 233
+             232:               Label
+             234:           2   FunctionCall 6(doSomething()
+                                Branch 233
+             233:             Label
+             235:          45 Load 47(rayQuery)
+             236:     14(int) RayQueryGetRayFlagsKHR 235
+             237:    67(bool) UGreaterThan 236 20
+                              SelectionMerge 239 None
+                              BranchConditional 237 238 239
+             238:               Label
+             240:           2   FunctionCall 6(doSomething()
+                                Branch 239
+             239:             Label
+             241:          45 Load 47(rayQuery)
+             242:    8(float) RayQueryGetRayTMinKHR 241
+             243:    67(bool) FOrdGreaterThan 242 27
+                              SelectionMerge 245 None
+                              BranchConditional 243 244 245
+             244:               Label
+             246:           2   FunctionCall 6(doSomething()
+                                Branch 245
+             245:             Label
+             248:          45 Load 47(rayQuery)
+             249:    9(fvec3) RayQueryGetWorldRayOriginKHR 248
+                              Store 247(o) 249
+             251:          45 Load 47(rayQuery)
+             252:    9(fvec3) RayQueryGetWorldRayDirectionKHR 251
+                              Store 250(d) 252
+             253:     35(ptr) AccessChain 247(o) 20
+             254:    8(float) Load 253
+             255:     35(ptr) AccessChain 250(d) 203
+             256:    8(float) Load 255
+             257:    67(bool) FOrdEqual 254 256
+                              SelectionMerge 259 None
+                              BranchConditional 257 258 259
+             258:               Label
+             260:           2   FunctionCall 6(doSomething()
+                                Branch 259
+             259:             Label
                               Return
                               FunctionEnd
  6(doSomething():           2 Function None 3
index 87706a8..4016688 100644 (file)
@@ -1,7 +1,7 @@
 rayQuery-allOps.frag
 // Module Version 10000
 // Generated by (magic number): 80008
-// Id's are bound by 265
+// Id's are bound by 266
 
                               Capability Shader
                               Capability RayQueryProvisionalKHR
@@ -26,40 +26,40 @@ rayQuery-allOps.frag
                               MemberName 15(Log) 1  "y"
                               Name 17  ""
                               Name 26  "ray"
-                              Name 45  "rayQuery"
-                              Name 48  "rtas"
-                              Name 51  "ray"
-                              Name 69  "candidateType"
-                              Name 79  "_mat4x3"
-                              Name 84  "_mat3x4"
-                              Name 146  "t"
-                              Name 160  "committedStatus"
-                              Name 246  "o"
-                              Name 249  "d"
-                              Name 260  "Ray"
-                              MemberName 260(Ray) 0  "pos"
-                              MemberName 260(Ray) 1  "tmin"
-                              MemberName 260(Ray) 2  "dir"
-                              MemberName 260(Ray) 3  "tmax"
-                              Name 262  "Rays"
-                              MemberName 262(Rays) 0  "rays"
-                              Name 264  ""
+                              Name 43  "ray"
+                              Name 47  "rayQuery"
+                              Name 50  "rtas"
+                              Name 70  "candidateType"
+                              Name 80  "_mat4x3"
+                              Name 85  "_mat3x4"
+                              Name 147  "t"
+                              Name 161  "committedStatus"
+                              Name 247  "o"
+                              Name 250  "d"
+                              Name 261  "Ray"
+                              MemberName 261(Ray) 0  "pos"
+                              MemberName 261(Ray) 1  "tmin"
+                              MemberName 261(Ray) 2  "dir"
+                              MemberName 261(Ray) 3  "tmax"
+                              Name 263  "Rays"
+                              MemberName 263(Rays) 0  "rays"
+                              Name 265  ""
                               MemberDecorate 15(Log) 0 Offset 0
                               MemberDecorate 15(Log) 1 Offset 4
                               Decorate 15(Log) BufferBlock
                               Decorate 17 DescriptorSet 0
                               Decorate 17 Binding 0
-                              Decorate 48(rtas) DescriptorSet 0
-                              Decorate 48(rtas) Binding 1
-                              MemberDecorate 260(Ray) 0 Offset 0
-                              MemberDecorate 260(Ray) 1 Offset 12
-                              MemberDecorate 260(Ray) 2 Offset 16
-                              MemberDecorate 260(Ray) 3 Offset 28
-                              Decorate 261 ArrayStride 32
-                              MemberDecorate 262(Rays) 0 Offset 0
-                              Decorate 262(Rays) BufferBlock
-                              Decorate 264 DescriptorSet 0
-                              Decorate 264 Binding 2
+                              Decorate 50(rtas) DescriptorSet 0
+                              Decorate 50(rtas) Binding 1
+                              MemberDecorate 261(Ray) 0 Offset 0
+                              MemberDecorate 261(Ray) 1 Offset 12
+                              MemberDecorate 261(Ray) 2 Offset 16
+                              MemberDecorate 261(Ray) 3 Offset 28
+                              Decorate 262 ArrayStride 32
+                              MemberDecorate 263(Rays) 0 Offset 0
+                              Decorate 263(Rays) BufferBlock
+                              Decorate 265 DescriptorSet 0
+                              Decorate 265 Binding 2
                2:             TypeVoid
                3:             TypeFunction 2
                8:             TypeFloat 32
@@ -85,333 +85,335 @@ rayQuery-allOps.frag
               35:             TypePointer Function 8(float)
               37:     18(int) Constant 3
               38:    8(float) Constant 1176255488
-              43:             TypeRayQueryProvisionalKHR
-              44:             TypePointer Function 43
-              46:             TypeAccelerationStructureKHR
-              47:             TypePointer UniformConstant 46
-        48(rtas):     47(ptr) Variable UniformConstant
-              50:     14(int) Constant 255
-              66:             TypeBool
-              68:             TypePointer Function 14(int)
-              70:    66(bool) ConstantFalse
-              77:             TypeMatrix 9(fvec3) 4
-              78:             TypePointer Function 77
-              81:             TypeVector 8(float) 4
-              82:             TypeMatrix 81(fvec4) 3
-              83:             TypePointer Function 82
-              88:    66(bool) ConstantTrue
-              93:             TypeVector 8(float) 2
-             147:    8(float) Constant 1056964608
-             179:     14(int) Constant 1
-             202:     14(int) Constant 2
-        260(Ray):             TypeStruct 9(fvec3) 8(float) 9(fvec3) 8(float)
-             261:             TypeRuntimeArray 260(Ray)
-       262(Rays):             TypeStruct 261
-             263:             TypePointer Uniform 262(Rays)
-             264:    263(ptr) Variable Uniform
+              45:             TypeRayQueryProvisionalKHR
+              46:             TypePointer Function 45
+              48:             TypeAccelerationStructureKHR
+              49:             TypePointer UniformConstant 48
+        50(rtas):     49(ptr) Variable UniformConstant
+              52:     14(int) Constant 255
+              67:             TypeBool
+              69:             TypePointer Function 14(int)
+              71:    67(bool) ConstantFalse
+              78:             TypeMatrix 9(fvec3) 4
+              79:             TypePointer Function 78
+              82:             TypeVector 8(float) 4
+              83:             TypeMatrix 82(fvec4) 3
+              84:             TypePointer Function 83
+              89:    67(bool) ConstantTrue
+              94:             TypeVector 8(float) 2
+             148:    8(float) Constant 1056964608
+             180:     14(int) Constant 1
+             203:     14(int) Constant 2
+        261(Ray):             TypeStruct 9(fvec3) 8(float) 9(fvec3) 8(float)
+             262:             TypeRuntimeArray 261(Ray)
+       263(Rays):             TypeStruct 262
+             264:             TypePointer Uniform 263(Rays)
+             265:    264(ptr) Variable Uniform
          4(main):           2 Function None 3
                5:             Label
-    45(rayQuery):     44(ptr) Variable Function
-         51(ray):     25(ptr) Variable Function
-69(candidateType):     68(ptr) Variable Function
-     79(_mat4x3):     78(ptr) Variable Function
-     84(_mat3x4):     83(ptr) Variable Function
-          146(t):     35(ptr) Variable Function
-160(committedStatus):     68(ptr) Variable Function
-          246(o):     29(ptr) Variable Function
-          249(d):     29(ptr) Variable Function
-              49:          46 Load 48(rtas)
-              52:     29(ptr) AccessChain 51(ray) 19
-              53:    9(fvec3) Load 52
-              54:     35(ptr) AccessChain 51(ray) 23
-              55:    8(float) Load 54
-              56:     29(ptr) AccessChain 51(ray) 31
-              57:    9(fvec3) Load 56
-              58:     35(ptr) AccessChain 51(ray) 37
-              59:    8(float) Load 58
-                              RayQueryInitializeKHR 45(rayQuery) 49 20 50 53 55 57 59
-                              Branch 60
-              60:             Label
-                              LoopMerge 62 63 None
-                              Branch 64
-              64:             Label
-              65:          43 Load 45(rayQuery)
-              67:    66(bool) RayQueryProceedKHR 65
-                              BranchConditional 67 61 62
-              61:               Label
-              71:     14(int)   RayQueryGetIntersectionTypeKHR 45(rayQuery) 19
-                                Store 69(candidateType) 71
-              72:     14(int)   Load 69(candidateType)
-                                SelectionMerge 75 None
-                                Switch 72 75 
-                                       case 0: 73
-                                       case 1: 74
-              73:                 Label
-              76:          43     Load 45(rayQuery)
-                                  RayQueryTerminateKHR 76
-              80:          77     RayQueryGetIntersectionObjectToWorldKHR 45(rayQuery) 19
-                                  Store 79(_mat4x3) 80
-              85:          77     Load 79(_mat4x3)
-              86:          82     Transpose 85
-                                  Store 84(_mat3x4) 86
-              87:          43     Load 45(rayQuery)
-                                  RayQueryConfirmIntersectionKHR 87
-              89:    66(bool)     RayQueryGetIntersectionFrontFaceKHR 45(rayQuery) 23
-                                  SelectionMerge 91 None
-                                  BranchConditional 89 90 91
-              90:                   Label
-              92:           2       FunctionCall 6(doSomething()
-                                    Branch 91
-              91:                 Label
-              94:   93(fvec2)     RayQueryGetIntersectionBarycentricsKHR 45(rayQuery) 23
-              95:    8(float)     CompositeExtract 94 0
-              96:    66(bool)     FOrdEqual 95 27
-                                  SelectionMerge 98 None
-                                  BranchConditional 96 97 98
-              97:                   Label
-              99:           2       FunctionCall 6(doSomething()
-                                    Branch 98
-              98:                 Label
-             100:     18(int)     RayQueryGetIntersectionInstanceCustomIndexKHR 45(rayQuery) 23
-             101:    66(bool)     SGreaterThan 100 19
-                                  SelectionMerge 103 None
-                                  BranchConditional 101 102 103
-             102:                   Label
-             104:           2       FunctionCall 6(doSomething()
-                                    Branch 103
-             103:                 Label
-             105:     18(int)     RayQueryGetIntersectionInstanceIdKHR 45(rayQuery) 23
-             106:    66(bool)     SGreaterThan 105 19
-                                  SelectionMerge 108 None
-                                  BranchConditional 106 107 108
-             107:                   Label
-             109:           2       FunctionCall 6(doSomething()
-                                    Branch 108
-             108:                 Label
-             110:    9(fvec3)     RayQueryGetIntersectionObjectRayDirectionKHR 45(rayQuery) 23
-             111:    8(float)     CompositeExtract 110 0
-             112:    66(bool)     FOrdGreaterThan 111 27
-                                  SelectionMerge 114 None
-                                  BranchConditional 112 113 114
-             113:                   Label
-             115:           2       FunctionCall 6(doSomething()
-                                    Branch 114
-             114:                 Label
-             116:    9(fvec3)     RayQueryGetIntersectionObjectRayOriginKHR 45(rayQuery) 23
-             117:    8(float)     CompositeExtract 116 0
-             118:    66(bool)     FOrdGreaterThan 117 27
-                                  SelectionMerge 120 None
-                                  BranchConditional 118 119 120
-             119:                   Label
-             121:           2       FunctionCall 6(doSomething()
-                                    Branch 120
-             120:                 Label
-             122:     18(int)     RayQueryGetIntersectionPrimitiveIndexKHR 45(rayQuery) 23
-             123:    66(bool)     SGreaterThan 122 19
-                                  SelectionMerge 125 None
-                                  BranchConditional 123 124 125
-             124:                   Label
-             126:           2       FunctionCall 6(doSomething()
-                                    Branch 125
-             125:                 Label
-             127:    8(float)     RayQueryGetIntersectionTKHR 45(rayQuery) 23
-             128:    66(bool)     FOrdGreaterThan 127 27
-                                  SelectionMerge 130 None
-                                  BranchConditional 128 129 130
-             129:                   Label
-             131:           2       FunctionCall 6(doSomething()
-                                    Branch 130
-             130:                 Label
-             132:     18(int)     RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR 45(rayQuery) 23
-             133:    66(bool)     UGreaterThan 132 20
-                                  SelectionMerge 135 None
-                                  BranchConditional 133 134 135
-             134:                   Label
-             136:           2       FunctionCall 6(doSomething()
-                                    Branch 135
-             135:                 Label
-                                  Branch 75
+         43(ray):     25(ptr) Variable Function
+    47(rayQuery):     46(ptr) Variable Function
+70(candidateType):     69(ptr) Variable Function
+     80(_mat4x3):     79(ptr) Variable Function
+     85(_mat3x4):     84(ptr) Variable Function
+          147(t):     35(ptr) Variable Function
+161(committedStatus):     69(ptr) Variable Function
+          247(o):     29(ptr) Variable Function
+          250(d):     29(ptr) Variable Function
+              44:     10(Ray) FunctionCall 12(makeRayDesc()
+                              Store 43(ray) 44
+              51:          48 Load 50(rtas)
+              53:     29(ptr) AccessChain 43(ray) 19
+              54:    9(fvec3) Load 53
+              55:     35(ptr) AccessChain 43(ray) 23
+              56:    8(float) Load 55
+              57:     29(ptr) AccessChain 43(ray) 31
+              58:    9(fvec3) Load 57
+              59:     35(ptr) AccessChain 43(ray) 37
+              60:    8(float) Load 59
+                              RayQueryInitializeKHR 47(rayQuery) 51 20 52 54 56 58 60
+                              Branch 61
+              61:             Label
+                              LoopMerge 63 64 None
+                              Branch 65
+              65:             Label
+              66:          45 Load 47(rayQuery)
+              68:    67(bool) RayQueryProceedKHR 66
+                              BranchConditional 68 62 63
+              62:               Label
+              72:     14(int)   RayQueryGetIntersectionTypeKHR 47(rayQuery) 19
+                                Store 70(candidateType) 72
+              73:     14(int)   Load 70(candidateType)
+                                SelectionMerge 76 None
+                                Switch 73 76 
+                                       case 0: 74
+                                       case 1: 75
               74:                 Label
-             138:          77     RayQueryGetIntersectionObjectToWorldKHR 45(rayQuery) 19
-                                  Store 79(_mat4x3) 138
-             139:          77     Load 79(_mat4x3)
-             140:          82     Transpose 139
-                                  Store 84(_mat3x4) 140
-             141:          43     Load 45(rayQuery)
-             142:    66(bool)     RayQueryGetIntersectionCandidateAABBOpaqueKHR 141
-                                  SelectionMerge 144 None
-                                  BranchConditional 142 143 144
-             143:                   Label
-             145:           2       FunctionCall 6(doSomething()
-                                    Branch 144
-             144:                 Label
-                                  Store 146(t) 147
-             148:    8(float)     Load 146(t)
-                                  RayQueryGenerateIntersectionKHR 45(rayQuery) 148
-             149:          43     Load 45(rayQuery)
-                                  RayQueryTerminateKHR 149
-                                  Branch 75
-              75:               Label
-                                Branch 63
-              63:               Label
-                                Branch 60
-              62:             Label
-             152:     35(ptr) AccessChain 84(_mat3x4) 19 20
-             153:    8(float) Load 152
-             154:     35(ptr) AccessChain 79(_mat4x3) 19 20
-             155:    8(float) Load 154
-             156:    66(bool) FOrdEqual 153 155
-                              SelectionMerge 158 None
-                              BranchConditional 156 157 158
-             157:               Label
-             159:           2   FunctionCall 6(doSomething()
-                                Branch 158
-             158:             Label
-             161:     14(int) RayQueryGetIntersectionTypeKHR 45(rayQuery) 23
-                              Store 160(committedStatus) 161
-             162:     14(int) Load 160(committedStatus)
-                              SelectionMerge 166 None
-                              Switch 162 166 
-                                     case 0: 163
-                                     case 1: 164
-                                     case 2: 165
-             163:               Label
-             167:          77   RayQueryGetIntersectionWorldToObjectKHR 45(rayQuery) 19
-                                Store 79(_mat4x3) 167
-             168:          77   Load 79(_mat4x3)
-             169:          82   Transpose 168
-                                Store 84(_mat3x4) 169
-                                Branch 166
+              77:          45     Load 47(rayQuery)
+                                  RayQueryTerminateKHR 77
+              81:          78     RayQueryGetIntersectionObjectToWorldKHR 47(rayQuery) 19
+                                  Store 80(_mat4x3) 81
+              86:          78     Load 80(_mat4x3)
+              87:          83     Transpose 86
+                                  Store 85(_mat3x4) 87
+              88:          45     Load 47(rayQuery)
+                                  RayQueryConfirmIntersectionKHR 88
+              90:    67(bool)     RayQueryGetIntersectionFrontFaceKHR 47(rayQuery) 23
+                                  SelectionMerge 92 None
+                                  BranchConditional 90 91 92
+              91:                   Label
+              93:           2       FunctionCall 6(doSomething()
+                                    Branch 92
+              92:                 Label
+              95:   94(fvec2)     RayQueryGetIntersectionBarycentricsKHR 47(rayQuery) 23
+              96:    8(float)     CompositeExtract 95 0
+              97:    67(bool)     FOrdEqual 96 27
+                                  SelectionMerge 99 None
+                                  BranchConditional 97 98 99
+              98:                   Label
+             100:           2       FunctionCall 6(doSomething()
+                                    Branch 99
+              99:                 Label
+             101:     18(int)     RayQueryGetIntersectionInstanceCustomIndexKHR 47(rayQuery) 23
+             102:    67(bool)     SGreaterThan 101 19
+                                  SelectionMerge 104 None
+                                  BranchConditional 102 103 104
+             103:                   Label
+             105:           2       FunctionCall 6(doSomething()
+                                    Branch 104
+             104:                 Label
+             106:     18(int)     RayQueryGetIntersectionInstanceIdKHR 47(rayQuery) 23
+             107:    67(bool)     SGreaterThan 106 19
+                                  SelectionMerge 109 None
+                                  BranchConditional 107 108 109
+             108:                   Label
+             110:           2       FunctionCall 6(doSomething()
+                                    Branch 109
+             109:                 Label
+             111:    9(fvec3)     RayQueryGetIntersectionObjectRayDirectionKHR 47(rayQuery) 23
+             112:    8(float)     CompositeExtract 111 0
+             113:    67(bool)     FOrdGreaterThan 112 27
+                                  SelectionMerge 115 None
+                                  BranchConditional 113 114 115
+             114:                   Label
+             116:           2       FunctionCall 6(doSomething()
+                                    Branch 115
+             115:                 Label
+             117:    9(fvec3)     RayQueryGetIntersectionObjectRayOriginKHR 47(rayQuery) 23
+             118:    8(float)     CompositeExtract 117 0
+             119:    67(bool)     FOrdGreaterThan 118 27
+                                  SelectionMerge 121 None
+                                  BranchConditional 119 120 121
+             120:                   Label
+             122:           2       FunctionCall 6(doSomething()
+                                    Branch 121
+             121:                 Label
+             123:     18(int)     RayQueryGetIntersectionPrimitiveIndexKHR 47(rayQuery) 23
+             124:    67(bool)     SGreaterThan 123 19
+                                  SelectionMerge 126 None
+                                  BranchConditional 124 125 126
+             125:                   Label
+             127:           2       FunctionCall 6(doSomething()
+                                    Branch 126
+             126:                 Label
+             128:    8(float)     RayQueryGetIntersectionTKHR 47(rayQuery) 23
+             129:    67(bool)     FOrdGreaterThan 128 27
+                                  SelectionMerge 131 None
+                                  BranchConditional 129 130 131
+             130:                   Label
+             132:           2       FunctionCall 6(doSomething()
+                                    Branch 131
+             131:                 Label
+             133:     18(int)     RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR 47(rayQuery) 23
+             134:    67(bool)     UGreaterThan 133 20
+                                  SelectionMerge 136 None
+                                  BranchConditional 134 135 136
+             135:                   Label
+             137:           2       FunctionCall 6(doSomething()
+                                    Branch 136
+             136:                 Label
+                                  Branch 76
+              75:                 Label
+             139:          78     RayQueryGetIntersectionObjectToWorldKHR 47(rayQuery) 19
+                                  Store 80(_mat4x3) 139
+             140:          78     Load 80(_mat4x3)
+             141:          83     Transpose 140
+                                  Store 85(_mat3x4) 141
+             142:          45     Load 47(rayQuery)
+             143:    67(bool)     RayQueryGetIntersectionCandidateAABBOpaqueKHR 142
+                                  SelectionMerge 145 None
+                                  BranchConditional 143 144 145
+             144:                   Label
+             146:           2       FunctionCall 6(doSomething()
+                                    Branch 145
+             145:                 Label
+                                  Store 147(t) 148
+             149:    8(float)     Load 147(t)
+                                  RayQueryGenerateIntersectionKHR 47(rayQuery) 149
+             150:          45     Load 47(rayQuery)
+                                  RayQueryTerminateKHR 150
+                                  Branch 76
+              76:               Label
+                                Branch 64
+              64:               Label
+                                Branch 61
+              63:             Label
+             153:     35(ptr) AccessChain 85(_mat3x4) 19 20
+             154:    8(float) Load 153
+             155:     35(ptr) AccessChain 80(_mat4x3) 19 20
+             156:    8(float) Load 155
+             157:    67(bool) FOrdEqual 154 156
+                              SelectionMerge 159 None
+                              BranchConditional 157 158 159
+             158:               Label
+             160:           2   FunctionCall 6(doSomething()
+                                Branch 159
+             159:             Label
+             162:     14(int) RayQueryGetIntersectionTypeKHR 47(rayQuery) 23
+                              Store 161(committedStatus) 162
+             163:     14(int) Load 161(committedStatus)
+                              SelectionMerge 167 None
+                              Switch 163 167 
+                                     case 0: 164
+                                     case 1: 165
+                                     case 2: 166
              164:               Label
-             171:          77   RayQueryGetIntersectionWorldToObjectKHR 45(rayQuery) 23
-                                Store 79(_mat4x3) 171
-             172:          77   Load 79(_mat4x3)
-             173:          82   Transpose 172
-                                Store 84(_mat3x4) 173
-             174:    66(bool)   RayQueryGetIntersectionFrontFaceKHR 45(rayQuery) 23
-                                SelectionMerge 176 None
-                                BranchConditional 174 175 176
-             175:                 Label
-             177:           2     FunctionCall 6(doSomething()
-                                  Branch 176
-             176:               Label
-             178:   93(fvec2)   RayQueryGetIntersectionBarycentricsKHR 45(rayQuery) 23
-             180:    8(float)   CompositeExtract 178 1
-             181:    66(bool)   FOrdEqual 180 27
-                                SelectionMerge 183 None
-                                BranchConditional 181 182 183
-             182:                 Label
-             184:           2     FunctionCall 6(doSomething()
-                                  Branch 183
-             183:               Label
-                                Branch 166
+             168:          78   RayQueryGetIntersectionWorldToObjectKHR 47(rayQuery) 19
+                                Store 80(_mat4x3) 168
+             169:          78   Load 80(_mat4x3)
+             170:          83   Transpose 169
+                                Store 85(_mat3x4) 170
+                                Branch 167
              165:               Label
-             186:     18(int)   RayQueryGetIntersectionGeometryIndexKHR 45(rayQuery) 23
-             187:    66(bool)   SGreaterThan 186 19
-                                SelectionMerge 189 None
-                                BranchConditional 187 188 189
-             188:                 Label
-             190:           2     FunctionCall 6(doSomething()
-                                  Branch 189
-             189:               Label
-             191:     18(int)   RayQueryGetIntersectionInstanceIdKHR 45(rayQuery) 23
-             192:    66(bool)   SGreaterThan 191 19
-                                SelectionMerge 194 None
-                                BranchConditional 192 193 194
-             193:                 Label
-             195:           2     FunctionCall 6(doSomething()
-                                  Branch 194
-             194:               Label
-             196:     18(int)   RayQueryGetIntersectionInstanceCustomIndexKHR 45(rayQuery) 23
-             197:    66(bool)   SGreaterThan 196 19
-                                SelectionMerge 199 None
-                                BranchConditional 197 198 199
-             198:                 Label
-             200:           2     FunctionCall 6(doSomething()
-                                  Branch 199
-             199:               Label
-             201:    9(fvec3)   RayQueryGetIntersectionObjectRayDirectionKHR 45(rayQuery) 23
-             203:    8(float)   CompositeExtract 201 2
-             204:    66(bool)   FOrdGreaterThan 203 27
-                                SelectionMerge 206 None
-                                BranchConditional 204 205 206
-             205:                 Label
-             207:           2     FunctionCall 6(doSomething()
-                                  Branch 206
-             206:               Label
-             208:    9(fvec3)   RayQueryGetIntersectionObjectRayOriginKHR 45(rayQuery) 23
-             209:    8(float)   CompositeExtract 208 0
-             210:    66(bool)   FOrdGreaterThan 209 27
-                                SelectionMerge 212 None
-                                BranchConditional 210 211 212
-             211:                 Label
-             213:           2     FunctionCall 6(doSomething()
-                                  Branch 212
-             212:               Label
-             214:     18(int)   RayQueryGetIntersectionPrimitiveIndexKHR 45(rayQuery) 23
-             215:    66(bool)   SGreaterThan 214 19
-                                SelectionMerge 217 None
-                                BranchConditional 215 216 217
-             216:                 Label
-             218:           2     FunctionCall 6(doSomething()
-                                  Branch 217
-             217:               Label
-             219:    8(float)   RayQueryGetIntersectionTKHR 45(rayQuery) 23
-             220:    66(bool)   FOrdGreaterThan 219 27
-                                SelectionMerge 222 None
-                                BranchConditional 220 221 222
-             221:                 Label
-             223:           2     FunctionCall 6(doSomething()
-                                  Branch 222
-             222:               Label
-                                Branch 166
-             166:             Label
-             226:     35(ptr) AccessChain 84(_mat3x4) 19 20
-             227:    8(float) Load 226
-             228:     35(ptr) AccessChain 79(_mat4x3) 19 20
-             229:    8(float) Load 228
-             230:    66(bool) FOrdEqual 227 229
-                              SelectionMerge 232 None
-                              BranchConditional 230 231 232
-             231:               Label
-             233:           2   FunctionCall 6(doSomething()
-                                Branch 232
-             232:             Label
-             234:          43 Load 45(rayQuery)
-             235:     14(int) RayQueryGetRayFlagsKHR 234
-             236:    66(bool) UGreaterThan 235 20
-                              SelectionMerge 238 None
-                              BranchConditional 236 237 238
-             237:               Label
-             239:           2   FunctionCall 6(doSomething()
-                                Branch 238
-             238:             Label
-             240:          43 Load 45(rayQuery)
-             241:    8(float) RayQueryGetRayTMinKHR 240
-             242:    66(bool) FOrdGreaterThan 241 27
-                              SelectionMerge 244 None
-                              BranchConditional 242 243 244
-             243:               Label
-             245:           2   FunctionCall 6(doSomething()
-                                Branch 244
-             244:             Label
-             247:          43 Load 45(rayQuery)
-             248:    9(fvec3) RayQueryGetWorldRayOriginKHR 247
-                              Store 246(o) 248
-             250:          43 Load 45(rayQuery)
-             251:    9(fvec3) RayQueryGetWorldRayDirectionKHR 250
-                              Store 249(d) 251
-             252:     35(ptr) AccessChain 246(o) 20
-             253:    8(float) Load 252
-             254:     35(ptr) AccessChain 249(d) 202
-             255:    8(float) Load 254
-             256:    66(bool) FOrdEqual 253 255
-                              SelectionMerge 258 None
-                              BranchConditional 256 257 258
-             257:               Label
-             259:           2   FunctionCall 6(doSomething()
-                                Branch 258
-             258:             Label
+             172:          78   RayQueryGetIntersectionWorldToObjectKHR 47(rayQuery) 23
+                                Store 80(_mat4x3) 172
+             173:          78   Load 80(_mat4x3)
+             174:          83   Transpose 173
+                                Store 85(_mat3x4) 174
+             175:    67(bool)   RayQueryGetIntersectionFrontFaceKHR 47(rayQuery) 23
+                                SelectionMerge 177 None
+                                BranchConditional 175 176 177
+             176:                 Label
+             178:           2     FunctionCall 6(doSomething()
+                                  Branch 177
+             177:               Label
+             179:   94(fvec2)   RayQueryGetIntersectionBarycentricsKHR 47(rayQuery) 23
+             181:    8(float)   CompositeExtract 179 1
+             182:    67(bool)   FOrdEqual 181 27
+                                SelectionMerge 184 None
+                                BranchConditional 182 183 184
+             183:                 Label
+             185:           2     FunctionCall 6(doSomething()
+                                  Branch 184
+             184:               Label
+                                Branch 167
+             166:               Label
+             187:     18(int)   RayQueryGetIntersectionGeometryIndexKHR 47(rayQuery) 23
+             188:    67(bool)   SGreaterThan 187 19
+                                SelectionMerge 190 None
+                                BranchConditional 188 189 190
+             189:                 Label
+             191:           2     FunctionCall 6(doSomething()
+                                  Branch 190
+             190:               Label
+             192:     18(int)   RayQueryGetIntersectionInstanceIdKHR 47(rayQuery) 23
+             193:    67(bool)   SGreaterThan 192 19
+                                SelectionMerge 195 None
+                                BranchConditional 193 194 195
+             194:                 Label
+             196:           2     FunctionCall 6(doSomething()
+                                  Branch 195
+             195:               Label
+             197:     18(int)   RayQueryGetIntersectionInstanceCustomIndexKHR 47(rayQuery) 23
+             198:    67(bool)   SGreaterThan 197 19
+                                SelectionMerge 200 None
+                                BranchConditional 198 199 200
+             199:                 Label
+             201:           2     FunctionCall 6(doSomething()
+                                  Branch 200
+             200:               Label
+             202:    9(fvec3)   RayQueryGetIntersectionObjectRayDirectionKHR 47(rayQuery) 23
+             204:    8(float)   CompositeExtract 202 2
+             205:    67(bool)   FOrdGreaterThan 204 27
+                                SelectionMerge 207 None
+                                BranchConditional 205 206 207
+             206:                 Label
+             208:           2     FunctionCall 6(doSomething()
+                                  Branch 207
+             207:               Label
+             209:    9(fvec3)   RayQueryGetIntersectionObjectRayOriginKHR 47(rayQuery) 23
+             210:    8(float)   CompositeExtract 209 0
+             211:    67(bool)   FOrdGreaterThan 210 27
+                                SelectionMerge 213 None
+                                BranchConditional 211 212 213
+             212:                 Label
+             214:           2     FunctionCall 6(doSomething()
+                                  Branch 213
+             213:               Label
+             215:     18(int)   RayQueryGetIntersectionPrimitiveIndexKHR 47(rayQuery) 23
+             216:    67(bool)   SGreaterThan 215 19
+                                SelectionMerge 218 None
+                                BranchConditional 216 217 218
+             217:                 Label
+             219:           2     FunctionCall 6(doSomething()
+                                  Branch 218
+             218:               Label
+             220:    8(float)   RayQueryGetIntersectionTKHR 47(rayQuery) 23
+             221:    67(bool)   FOrdGreaterThan 220 27
+                                SelectionMerge 223 None
+                                BranchConditional 221 222 223
+             222:                 Label
+             224:           2     FunctionCall 6(doSomething()
+                                  Branch 223
+             223:               Label
+                                Branch 167
+             167:             Label
+             227:     35(ptr) AccessChain 85(_mat3x4) 19 20
+             228:    8(float) Load 227
+             229:     35(ptr) AccessChain 80(_mat4x3) 19 20
+             230:    8(float) Load 229
+             231:    67(bool) FOrdEqual 228 230
+                              SelectionMerge 233 None
+                              BranchConditional 231 232 233
+             232:               Label
+             234:           2   FunctionCall 6(doSomething()
+                                Branch 233
+             233:             Label
+             235:          45 Load 47(rayQuery)
+             236:     14(int) RayQueryGetRayFlagsKHR 235
+             237:    67(bool) UGreaterThan 236 20
+                              SelectionMerge 239 None
+                              BranchConditional 237 238 239
+             238:               Label
+             240:           2   FunctionCall 6(doSomething()
+                                Branch 239
+             239:             Label
+             241:          45 Load 47(rayQuery)
+             242:    8(float) RayQueryGetRayTMinKHR 241
+             243:    67(bool) FOrdGreaterThan 242 27
+                              SelectionMerge 245 None
+                              BranchConditional 243 244 245
+             244:               Label
+             246:           2   FunctionCall 6(doSomething()
+                                Branch 245
+             245:             Label
+             248:          45 Load 47(rayQuery)
+             249:    9(fvec3) RayQueryGetWorldRayOriginKHR 248
+                              Store 247(o) 249
+             251:          45 Load 47(rayQuery)
+             252:    9(fvec3) RayQueryGetWorldRayDirectionKHR 251
+                              Store 250(d) 252
+             253:     35(ptr) AccessChain 247(o) 20
+             254:    8(float) Load 253
+             255:     35(ptr) AccessChain 250(d) 203
+             256:    8(float) Load 255
+             257:    67(bool) FOrdEqual 254 256
+                              SelectionMerge 259 None
+                              BranchConditional 257 258 259
+             258:               Label
+             260:           2   FunctionCall 6(doSomething()
+                                Branch 259
+             259:             Label
                               Return
                               FunctionEnd
  6(doSomething():           2 Function None 3
index 826094c..0d84235 100644 (file)
@@ -1,7 +1,7 @@
 rayQuery-allOps.rgen
 // Module Version 10000
 // Generated by (magic number): 80008
-// Id's are bound by 265
+// Id's are bound by 266
 
                               Capability RayQueryProvisionalKHR
                               Capability RayTracingNV
@@ -26,40 +26,40 @@ rayQuery-allOps.rgen
                               MemberName 15(Log) 1  "y"
                               Name 17  ""
                               Name 26  "ray"
-                              Name 45  "rayQuery"
-                              Name 48  "rtas"
-                              Name 51  "ray"
-                              Name 69  "candidateType"
-                              Name 79  "_mat4x3"
-                              Name 84  "_mat3x4"
-                              Name 146  "t"
-                              Name 160  "committedStatus"
-                              Name 246  "o"
-                              Name 249  "d"
-                              Name 260  "Ray"
-                              MemberName 260(Ray) 0  "pos"
-                              MemberName 260(Ray) 1  "tmin"
-                              MemberName 260(Ray) 2  "dir"
-                              MemberName 260(Ray) 3  "tmax"
-                              Name 262  "Rays"
-                              MemberName 262(Rays) 0  "rays"
-                              Name 264  ""
+                              Name 43  "ray"
+                              Name 47  "rayQuery"
+                              Name 50  "rtas"
+                              Name 70  "candidateType"
+                              Name 80  "_mat4x3"
+                              Name 85  "_mat3x4"
+                              Name 147  "t"
+                              Name 161  "committedStatus"
+                              Name 247  "o"
+                              Name 250  "d"
+                              Name 261  "Ray"
+                              MemberName 261(Ray) 0  "pos"
+                              MemberName 261(Ray) 1  "tmin"
+                              MemberName 261(Ray) 2  "dir"
+                              MemberName 261(Ray) 3  "tmax"
+                              Name 263  "Rays"
+                              MemberName 263(Rays) 0  "rays"
+                              Name 265  ""
                               MemberDecorate 15(Log) 0 Offset 0
                               MemberDecorate 15(Log) 1 Offset 4
                               Decorate 15(Log) BufferBlock
                               Decorate 17 DescriptorSet 0
                               Decorate 17 Binding 0
-                              Decorate 48(rtas) DescriptorSet 0
-                              Decorate 48(rtas) Binding 1
-                              MemberDecorate 260(Ray) 0 Offset 0
-                              MemberDecorate 260(Ray) 1 Offset 12
-                              MemberDecorate 260(Ray) 2 Offset 16
-                              MemberDecorate 260(Ray) 3 Offset 28
-                              Decorate 261 ArrayStride 32
-                              MemberDecorate 262(Rays) 0 Offset 0
-                              Decorate 262(Rays) BufferBlock
-                              Decorate 264 DescriptorSet 0
-                              Decorate 264 Binding 2
+                              Decorate 50(rtas) DescriptorSet 0
+                              Decorate 50(rtas) Binding 1
+                              MemberDecorate 261(Ray) 0 Offset 0
+                              MemberDecorate 261(Ray) 1 Offset 12
+                              MemberDecorate 261(Ray) 2 Offset 16
+                              MemberDecorate 261(Ray) 3 Offset 28
+                              Decorate 262 ArrayStride 32
+                              MemberDecorate 263(Rays) 0 Offset 0
+                              Decorate 263(Rays) BufferBlock
+                              Decorate 265 DescriptorSet 0
+                              Decorate 265 Binding 2
                2:             TypeVoid
                3:             TypeFunction 2
                8:             TypeFloat 32
@@ -85,333 +85,335 @@ rayQuery-allOps.rgen
               35:             TypePointer Function 8(float)
               37:     18(int) Constant 3
               38:    8(float) Constant 1176255488
-              43:             TypeRayQueryProvisionalKHR
-              44:             TypePointer Function 43
-              46:             TypeAccelerationStructureKHR
-              47:             TypePointer UniformConstant 46
-        48(rtas):     47(ptr) Variable UniformConstant
-              50:     14(int) Constant 255
-              66:             TypeBool
-              68:             TypePointer Function 14(int)
-              70:    66(bool) ConstantFalse
-              77:             TypeMatrix 9(fvec3) 4
-              78:             TypePointer Function 77
-              81:             TypeVector 8(float) 4
-              82:             TypeMatrix 81(fvec4) 3
-              83:             TypePointer Function 82
-              88:    66(bool) ConstantTrue
-              93:             TypeVector 8(float) 2
-             147:    8(float) Constant 1056964608
-             179:     14(int) Constant 1
-             202:     14(int) Constant 2
-        260(Ray):             TypeStruct 9(fvec3) 8(float) 9(fvec3) 8(float)
-             261:             TypeRuntimeArray 260(Ray)
-       262(Rays):             TypeStruct 261
-             263:             TypePointer Uniform 262(Rays)
-             264:    263(ptr) Variable Uniform
+              45:             TypeRayQueryProvisionalKHR
+              46:             TypePointer Function 45
+              48:             TypeAccelerationStructureKHR
+              49:             TypePointer UniformConstant 48
+        50(rtas):     49(ptr) Variable UniformConstant
+              52:     14(int) Constant 255
+              67:             TypeBool
+              69:             TypePointer Function 14(int)
+              71:    67(bool) ConstantFalse
+              78:             TypeMatrix 9(fvec3) 4
+              79:             TypePointer Function 78
+              82:             TypeVector 8(float) 4
+              83:             TypeMatrix 82(fvec4) 3
+              84:             TypePointer Function 83
+              89:    67(bool) ConstantTrue
+              94:             TypeVector 8(float) 2
+             148:    8(float) Constant 1056964608
+             180:     14(int) Constant 1
+             203:     14(int) Constant 2
+        261(Ray):             TypeStruct 9(fvec3) 8(float) 9(fvec3) 8(float)
+             262:             TypeRuntimeArray 261(Ray)
+       263(Rays):             TypeStruct 262
+             264:             TypePointer Uniform 263(Rays)
+             265:    264(ptr) Variable Uniform
          4(main):           2 Function None 3
                5:             Label
-    45(rayQuery):     44(ptr) Variable Function
-         51(ray):     25(ptr) Variable Function
-69(candidateType):     68(ptr) Variable Function
-     79(_mat4x3):     78(ptr) Variable Function
-     84(_mat3x4):     83(ptr) Variable Function
-          146(t):     35(ptr) Variable Function
-160(committedStatus):     68(ptr) Variable Function
-          246(o):     29(ptr) Variable Function
-          249(d):     29(ptr) Variable Function
-              49:          46 Load 48(rtas)
-              52:     29(ptr) AccessChain 51(ray) 19
-              53:    9(fvec3) Load 52
-              54:     35(ptr) AccessChain 51(ray) 23
-              55:    8(float) Load 54
-              56:     29(ptr) AccessChain 51(ray) 31
-              57:    9(fvec3) Load 56
-              58:     35(ptr) AccessChain 51(ray) 37
-              59:    8(float) Load 58
-                              RayQueryInitializeKHR 45(rayQuery) 49 20 50 53 55 57 59
-                              Branch 60
-              60:             Label
-                              LoopMerge 62 63 None
-                              Branch 64
-              64:             Label
-              65:          43 Load 45(rayQuery)
-              67:    66(bool) RayQueryProceedKHR 65
-                              BranchConditional 67 61 62
-              61:               Label
-              71:     14(int)   RayQueryGetIntersectionTypeKHR 45(rayQuery) 19
-                                Store 69(candidateType) 71
-              72:     14(int)   Load 69(candidateType)
-                                SelectionMerge 75 None
-                                Switch 72 75 
-                                       case 0: 73
-                                       case 1: 74
-              73:                 Label
-              76:          43     Load 45(rayQuery)
-                                  RayQueryTerminateKHR 76
-              80:          77     RayQueryGetIntersectionObjectToWorldKHR 45(rayQuery) 19
-                                  Store 79(_mat4x3) 80
-              85:          77     Load 79(_mat4x3)
-              86:          82     Transpose 85
-                                  Store 84(_mat3x4) 86
-              87:          43     Load 45(rayQuery)
-                                  RayQueryConfirmIntersectionKHR 87
-              89:    66(bool)     RayQueryGetIntersectionFrontFaceKHR 45(rayQuery) 23
-                                  SelectionMerge 91 None
-                                  BranchConditional 89 90 91
-              90:                   Label
-              92:           2       FunctionCall 6(doSomething()
-                                    Branch 91
-              91:                 Label
-              94:   93(fvec2)     RayQueryGetIntersectionBarycentricsKHR 45(rayQuery) 23
-              95:    8(float)     CompositeExtract 94 0
-              96:    66(bool)     FOrdEqual 95 27
-                                  SelectionMerge 98 None
-                                  BranchConditional 96 97 98
-              97:                   Label
-              99:           2       FunctionCall 6(doSomething()
-                                    Branch 98
-              98:                 Label
-             100:     18(int)     RayQueryGetIntersectionInstanceCustomIndexKHR 45(rayQuery) 23
-             101:    66(bool)     SGreaterThan 100 19
-                                  SelectionMerge 103 None
-                                  BranchConditional 101 102 103
-             102:                   Label
-             104:           2       FunctionCall 6(doSomething()
-                                    Branch 103
-             103:                 Label
-             105:     18(int)     RayQueryGetIntersectionInstanceIdKHR 45(rayQuery) 23
-             106:    66(bool)     SGreaterThan 105 19
-                                  SelectionMerge 108 None
-                                  BranchConditional 106 107 108
-             107:                   Label
-             109:           2       FunctionCall 6(doSomething()
-                                    Branch 108
-             108:                 Label
-             110:    9(fvec3)     RayQueryGetIntersectionObjectRayDirectionKHR 45(rayQuery) 23
-             111:    8(float)     CompositeExtract 110 0
-             112:    66(bool)     FOrdGreaterThan 111 27
-                                  SelectionMerge 114 None
-                                  BranchConditional 112 113 114
-             113:                   Label
-             115:           2       FunctionCall 6(doSomething()
-                                    Branch 114
-             114:                 Label
-             116:    9(fvec3)     RayQueryGetIntersectionObjectRayOriginKHR 45(rayQuery) 23
-             117:    8(float)     CompositeExtract 116 0
-             118:    66(bool)     FOrdGreaterThan 117 27
-                                  SelectionMerge 120 None
-                                  BranchConditional 118 119 120
-             119:                   Label
-             121:           2       FunctionCall 6(doSomething()
-                                    Branch 120
-             120:                 Label
-             122:     18(int)     RayQueryGetIntersectionPrimitiveIndexKHR 45(rayQuery) 23
-             123:    66(bool)     SGreaterThan 122 19
-                                  SelectionMerge 125 None
-                                  BranchConditional 123 124 125
-             124:                   Label
-             126:           2       FunctionCall 6(doSomething()
-                                    Branch 125
-             125:                 Label
-             127:    8(float)     RayQueryGetIntersectionTKHR 45(rayQuery) 23
-             128:    66(bool)     FOrdGreaterThan 127 27
-                                  SelectionMerge 130 None
-                                  BranchConditional 128 129 130
-             129:                   Label
-             131:           2       FunctionCall 6(doSomething()
-                                    Branch 130
-             130:                 Label
-             132:     18(int)     RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR 45(rayQuery) 23
-             133:    66(bool)     UGreaterThan 132 20
-                                  SelectionMerge 135 None
-                                  BranchConditional 133 134 135
-             134:                   Label
-             136:           2       FunctionCall 6(doSomething()
-                                    Branch 135
-             135:                 Label
-                                  Branch 75
+         43(ray):     25(ptr) Variable Function
+    47(rayQuery):     46(ptr) Variable Function
+70(candidateType):     69(ptr) Variable Function
+     80(_mat4x3):     79(ptr) Variable Function
+     85(_mat3x4):     84(ptr) Variable Function
+          147(t):     35(ptr) Variable Function
+161(committedStatus):     69(ptr) Variable Function
+          247(o):     29(ptr) Variable Function
+          250(d):     29(ptr) Variable Function
+              44:     10(Ray) FunctionCall 12(makeRayDesc()
+                              Store 43(ray) 44
+              51:          48 Load 50(rtas)
+              53:     29(ptr) AccessChain 43(ray) 19
+              54:    9(fvec3) Load 53
+              55:     35(ptr) AccessChain 43(ray) 23
+              56:    8(float) Load 55
+              57:     29(ptr) AccessChain 43(ray) 31
+              58:    9(fvec3) Load 57
+              59:     35(ptr) AccessChain 43(ray) 37
+              60:    8(float) Load 59
+                              RayQueryInitializeKHR 47(rayQuery) 51 20 52 54 56 58 60
+                              Branch 61
+              61:             Label
+                              LoopMerge 63 64 None
+                              Branch 65
+              65:             Label
+              66:          45 Load 47(rayQuery)
+              68:    67(bool) RayQueryProceedKHR 66
+                              BranchConditional 68 62 63
+              62:               Label
+              72:     14(int)   RayQueryGetIntersectionTypeKHR 47(rayQuery) 19
+                                Store 70(candidateType) 72
+              73:     14(int)   Load 70(candidateType)
+                                SelectionMerge 76 None
+                                Switch 73 76 
+                                       case 0: 74
+                                       case 1: 75
               74:                 Label
-             138:          77     RayQueryGetIntersectionObjectToWorldKHR 45(rayQuery) 19
-                                  Store 79(_mat4x3) 138
-             139:          77     Load 79(_mat4x3)
-             140:          82     Transpose 139
-                                  Store 84(_mat3x4) 140
-             141:          43     Load 45(rayQuery)
-             142:    66(bool)     RayQueryGetIntersectionCandidateAABBOpaqueKHR 141
-                                  SelectionMerge 144 None
-                                  BranchConditional 142 143 144
-             143:                   Label
-             145:           2       FunctionCall 6(doSomething()
-                                    Branch 144
-             144:                 Label
-                                  Store 146(t) 147
-             148:    8(float)     Load 146(t)
-                                  RayQueryGenerateIntersectionKHR 45(rayQuery) 148
-             149:          43     Load 45(rayQuery)
-                                  RayQueryTerminateKHR 149
-                                  Branch 75
-              75:               Label
-                                Branch 63
-              63:               Label
-                                Branch 60
-              62:             Label
-             152:     35(ptr) AccessChain 84(_mat3x4) 19 20
-             153:    8(float) Load 152
-             154:     35(ptr) AccessChain 79(_mat4x3) 19 20
-             155:    8(float) Load 154
-             156:    66(bool) FOrdEqual 153 155
-                              SelectionMerge 158 None
-                              BranchConditional 156 157 158
-             157:               Label
-             159:           2   FunctionCall 6(doSomething()
-                                Branch 158
-             158:             Label
-             161:     14(int) RayQueryGetIntersectionTypeKHR 45(rayQuery) 23
-                              Store 160(committedStatus) 161
-             162:     14(int) Load 160(committedStatus)
-                              SelectionMerge 166 None
-                              Switch 162 166 
-                                     case 0: 163
-                                     case 1: 164
-                                     case 2: 165
-             163:               Label
-             167:          77   RayQueryGetIntersectionWorldToObjectKHR 45(rayQuery) 19
-                                Store 79(_mat4x3) 167
-             168:          77   Load 79(_mat4x3)
-             169:          82   Transpose 168
-                                Store 84(_mat3x4) 169
-                                Branch 166
+              77:          45     Load 47(rayQuery)
+                                  RayQueryTerminateKHR 77
+              81:          78     RayQueryGetIntersectionObjectToWorldKHR 47(rayQuery) 19
+                                  Store 80(_mat4x3) 81
+              86:          78     Load 80(_mat4x3)
+              87:          83     Transpose 86
+                                  Store 85(_mat3x4) 87
+              88:          45     Load 47(rayQuery)
+                                  RayQueryConfirmIntersectionKHR 88
+              90:    67(bool)     RayQueryGetIntersectionFrontFaceKHR 47(rayQuery) 23
+                                  SelectionMerge 92 None
+                                  BranchConditional 90 91 92
+              91:                   Label
+              93:           2       FunctionCall 6(doSomething()
+                                    Branch 92
+              92:                 Label
+              95:   94(fvec2)     RayQueryGetIntersectionBarycentricsKHR 47(rayQuery) 23
+              96:    8(float)     CompositeExtract 95 0
+              97:    67(bool)     FOrdEqual 96 27
+                                  SelectionMerge 99 None
+                                  BranchConditional 97 98 99
+              98:                   Label
+             100:           2       FunctionCall 6(doSomething()
+                                    Branch 99
+              99:                 Label
+             101:     18(int)     RayQueryGetIntersectionInstanceCustomIndexKHR 47(rayQuery) 23
+             102:    67(bool)     SGreaterThan 101 19
+                                  SelectionMerge 104 None
+                                  BranchConditional 102 103 104
+             103:                   Label
+             105:           2       FunctionCall 6(doSomething()
+                                    Branch 104
+             104:                 Label
+             106:     18(int)     RayQueryGetIntersectionInstanceIdKHR 47(rayQuery) 23
+             107:    67(bool)     SGreaterThan 106 19
+                                  SelectionMerge 109 None
+                                  BranchConditional 107 108 109
+             108:                   Label
+             110:           2       FunctionCall 6(doSomething()
+                                    Branch 109
+             109:                 Label
+             111:    9(fvec3)     RayQueryGetIntersectionObjectRayDirectionKHR 47(rayQuery) 23
+             112:    8(float)     CompositeExtract 111 0
+             113:    67(bool)     FOrdGreaterThan 112 27
+                                  SelectionMerge 115 None
+                                  BranchConditional 113 114 115
+             114:                   Label
+             116:           2       FunctionCall 6(doSomething()
+                                    Branch 115
+             115:                 Label
+             117:    9(fvec3)     RayQueryGetIntersectionObjectRayOriginKHR 47(rayQuery) 23
+             118:    8(float)     CompositeExtract 117 0
+             119:    67(bool)     FOrdGreaterThan 118 27
+                                  SelectionMerge 121 None
+                                  BranchConditional 119 120 121
+             120:                   Label
+             122:           2       FunctionCall 6(doSomething()
+                                    Branch 121
+             121:                 Label
+             123:     18(int)     RayQueryGetIntersectionPrimitiveIndexKHR 47(rayQuery) 23
+             124:    67(bool)     SGreaterThan 123 19
+                                  SelectionMerge 126 None
+                                  BranchConditional 124 125 126
+             125:                   Label
+             127:           2       FunctionCall 6(doSomething()
+                                    Branch 126
+             126:                 Label
+             128:    8(float)     RayQueryGetIntersectionTKHR 47(rayQuery) 23
+             129:    67(bool)     FOrdGreaterThan 128 27
+                                  SelectionMerge 131 None
+                                  BranchConditional 129 130 131
+             130:                   Label
+             132:           2       FunctionCall 6(doSomething()
+                                    Branch 131
+             131:                 Label
+             133:     18(int)     RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR 47(rayQuery) 23
+             134:    67(bool)     UGreaterThan 133 20
+                                  SelectionMerge 136 None
+                                  BranchConditional 134 135 136
+             135:                   Label
+             137:           2       FunctionCall 6(doSomething()
+                                    Branch 136
+             136:                 Label
+                                  Branch 76
+              75:                 Label
+             139:          78     RayQueryGetIntersectionObjectToWorldKHR 47(rayQuery) 19
+                                  Store 80(_mat4x3) 139
+             140:          78     Load 80(_mat4x3)
+             141:          83     Transpose 140
+                                  Store 85(_mat3x4) 141
+             142:          45     Load 47(rayQuery)
+             143:    67(bool)     RayQueryGetIntersectionCandidateAABBOpaqueKHR 142
+                                  SelectionMerge 145 None
+                                  BranchConditional 143 144 145
+             144:                   Label
+             146:           2       FunctionCall 6(doSomething()
+                                    Branch 145
+             145:                 Label
+                                  Store 147(t) 148
+             149:    8(float)     Load 147(t)
+                                  RayQueryGenerateIntersectionKHR 47(rayQuery) 149
+             150:          45     Load 47(rayQuery)
+                                  RayQueryTerminateKHR 150
+                                  Branch 76
+              76:               Label
+                                Branch 64
+              64:               Label
+                                Branch 61
+              63:             Label
+             153:     35(ptr) AccessChain 85(_mat3x4) 19 20
+             154:    8(float) Load 153
+             155:     35(ptr) AccessChain 80(_mat4x3) 19 20
+             156:    8(float) Load 155
+             157:    67(bool) FOrdEqual 154 156
+                              SelectionMerge 159 None
+                              BranchConditional 157 158 159
+             158:               Label
+             160:           2   FunctionCall 6(doSomething()
+                                Branch 159
+             159:             Label
+             162:     14(int) RayQueryGetIntersectionTypeKHR 47(rayQuery) 23
+                              Store 161(committedStatus) 162
+             163:     14(int) Load 161(committedStatus)
+                              SelectionMerge 167 None
+                              Switch 163 167 
+                                     case 0: 164
+                                     case 1: 165
+                                     case 2: 166
              164:               Label
-             171:          77   RayQueryGetIntersectionWorldToObjectKHR 45(rayQuery) 23
-                                Store 79(_mat4x3) 171
-             172:          77   Load 79(_mat4x3)
-             173:          82   Transpose 172
-                                Store 84(_mat3x4) 173
-             174:    66(bool)   RayQueryGetIntersectionFrontFaceKHR 45(rayQuery) 23
-                                SelectionMerge 176 None
-                                BranchConditional 174 175 176
-             175:                 Label
-             177:           2     FunctionCall 6(doSomething()
-                                  Branch 176
-             176:               Label
-             178:   93(fvec2)   RayQueryGetIntersectionBarycentricsKHR 45(rayQuery) 23
-             180:    8(float)   CompositeExtract 178 1
-             181:    66(bool)   FOrdEqual 180 27
-                                SelectionMerge 183 None
-                                BranchConditional 181 182 183
-             182:                 Label
-             184:           2     FunctionCall 6(doSomething()
-                                  Branch 183
-             183:               Label
-                                Branch 166
+             168:          78   RayQueryGetIntersectionWorldToObjectKHR 47(rayQuery) 19
+                                Store 80(_mat4x3) 168
+             169:          78   Load 80(_mat4x3)
+             170:          83   Transpose 169
+                                Store 85(_mat3x4) 170
+                                Branch 167
              165:               Label
-             186:     18(int)   RayQueryGetIntersectionGeometryIndexKHR 45(rayQuery) 23
-             187:    66(bool)   SGreaterThan 186 19
-                                SelectionMerge 189 None
-                                BranchConditional 187 188 189
-             188:                 Label
-             190:           2     FunctionCall 6(doSomething()
-                                  Branch 189
-             189:               Label
-             191:     18(int)   RayQueryGetIntersectionInstanceIdKHR 45(rayQuery) 23
-             192:    66(bool)   SGreaterThan 191 19
-                                SelectionMerge 194 None
-                                BranchConditional 192 193 194
-             193:                 Label
-             195:           2     FunctionCall 6(doSomething()
-                                  Branch 194
-             194:               Label
-             196:     18(int)   RayQueryGetIntersectionInstanceCustomIndexKHR 45(rayQuery) 23
-             197:    66(bool)   SGreaterThan 196 19
-                                SelectionMerge 199 None
-                                BranchConditional 197 198 199
-             198:                 Label
-             200:           2     FunctionCall 6(doSomething()
-                                  Branch 199
-             199:               Label
-             201:    9(fvec3)   RayQueryGetIntersectionObjectRayDirectionKHR 45(rayQuery) 23
-             203:    8(float)   CompositeExtract 201 2
-             204:    66(bool)   FOrdGreaterThan 203 27
-                                SelectionMerge 206 None
-                                BranchConditional 204 205 206
-             205:                 Label
-             207:           2     FunctionCall 6(doSomething()
-                                  Branch 206
-             206:               Label
-             208:    9(fvec3)   RayQueryGetIntersectionObjectRayOriginKHR 45(rayQuery) 23
-             209:    8(float)   CompositeExtract 208 0
-             210:    66(bool)   FOrdGreaterThan 209 27
-                                SelectionMerge 212 None
-                                BranchConditional 210 211 212
-             211:                 Label
-             213:           2     FunctionCall 6(doSomething()
-                                  Branch 212
-             212:               Label
-             214:     18(int)   RayQueryGetIntersectionPrimitiveIndexKHR 45(rayQuery) 23
-             215:    66(bool)   SGreaterThan 214 19
-                                SelectionMerge 217 None
-                                BranchConditional 215 216 217
-             216:                 Label
-             218:           2     FunctionCall 6(doSomething()
-                                  Branch 217
-             217:               Label
-             219:    8(float)   RayQueryGetIntersectionTKHR 45(rayQuery) 23
-             220:    66(bool)   FOrdGreaterThan 219 27
-                                SelectionMerge 222 None
-                                BranchConditional 220 221 222
-             221:                 Label
-             223:           2     FunctionCall 6(doSomething()
-                                  Branch 222
-             222:               Label
-                                Branch 166
-             166:             Label
-             226:     35(ptr) AccessChain 84(_mat3x4) 19 20
-             227:    8(float) Load 226
-             228:     35(ptr) AccessChain 79(_mat4x3) 19 20
-             229:    8(float) Load 228
-             230:    66(bool) FOrdEqual 227 229
-                              SelectionMerge 232 None
-                              BranchConditional 230 231 232
-             231:               Label
-             233:           2   FunctionCall 6(doSomething()
-                                Branch 232
-             232:             Label
-             234:          43 Load 45(rayQuery)
-             235:     14(int) RayQueryGetRayFlagsKHR 234
-             236:    66(bool) UGreaterThan 235 20
-                              SelectionMerge 238 None
-                              BranchConditional 236 237 238
-             237:               Label
-             239:           2   FunctionCall 6(doSomething()
-                                Branch 238
-             238:             Label
-             240:          43 Load 45(rayQuery)
-             241:    8(float) RayQueryGetRayTMinKHR 240
-             242:    66(bool) FOrdGreaterThan 241 27
-                              SelectionMerge 244 None
-                              BranchConditional 242 243 244
-             243:               Label
-             245:           2   FunctionCall 6(doSomething()
-                                Branch 244
-             244:             Label
-             247:          43 Load 45(rayQuery)
-             248:    9(fvec3) RayQueryGetWorldRayOriginKHR 247
-                              Store 246(o) 248
-             250:          43 Load 45(rayQuery)
-             251:    9(fvec3) RayQueryGetWorldRayDirectionKHR 250
-                              Store 249(d) 251
-             252:     35(ptr) AccessChain 246(o) 20
-             253:    8(float) Load 252
-             254:     35(ptr) AccessChain 249(d) 202
-             255:    8(float) Load 254
-             256:    66(bool) FOrdEqual 253 255
-                              SelectionMerge 258 None
-                              BranchConditional 256 257 258
-             257:               Label
-             259:           2   FunctionCall 6(doSomething()
-                                Branch 258
-             258:             Label
+             172:          78   RayQueryGetIntersectionWorldToObjectKHR 47(rayQuery) 23
+                                Store 80(_mat4x3) 172
+             173:          78   Load 80(_mat4x3)
+             174:          83   Transpose 173
+                                Store 85(_mat3x4) 174
+             175:    67(bool)   RayQueryGetIntersectionFrontFaceKHR 47(rayQuery) 23
+                                SelectionMerge 177 None
+                                BranchConditional 175 176 177
+             176:                 Label
+             178:           2     FunctionCall 6(doSomething()
+                                  Branch 177
+             177:               Label
+             179:   94(fvec2)   RayQueryGetIntersectionBarycentricsKHR 47(rayQuery) 23
+             181:    8(float)   CompositeExtract 179 1
+             182:    67(bool)   FOrdEqual 181 27
+                                SelectionMerge 184 None
+                                BranchConditional 182 183 184
+             183:                 Label
+             185:           2     FunctionCall 6(doSomething()
+                                  Branch 184
+             184:               Label
+                                Branch 167
+             166:               Label
+             187:     18(int)   RayQueryGetIntersectionGeometryIndexKHR 47(rayQuery) 23
+             188:    67(bool)   SGreaterThan 187 19
+                                SelectionMerge 190 None
+                                BranchConditional 188 189 190
+             189:                 Label
+             191:           2     FunctionCall 6(doSomething()
+                                  Branch 190
+             190:               Label
+             192:     18(int)   RayQueryGetIntersectionInstanceIdKHR 47(rayQuery) 23
+             193:    67(bool)   SGreaterThan 192 19
+                                SelectionMerge 195 None
+                                BranchConditional 193 194 195
+             194:                 Label
+             196:           2     FunctionCall 6(doSomething()
+                                  Branch 195
+             195:               Label
+             197:     18(int)   RayQueryGetIntersectionInstanceCustomIndexKHR 47(rayQuery) 23
+             198:    67(bool)   SGreaterThan 197 19
+                                SelectionMerge 200 None
+                                BranchConditional 198 199 200
+             199:                 Label
+             201:           2     FunctionCall 6(doSomething()
+                                  Branch 200
+             200:               Label
+             202:    9(fvec3)   RayQueryGetIntersectionObjectRayDirectionKHR 47(rayQuery) 23
+             204:    8(float)   CompositeExtract 202 2
+             205:    67(bool)   FOrdGreaterThan 204 27
+                                SelectionMerge 207 None
+                                BranchConditional 205 206 207
+             206:                 Label
+             208:           2     FunctionCall 6(doSomething()
+                                  Branch 207
+             207:               Label
+             209:    9(fvec3)   RayQueryGetIntersectionObjectRayOriginKHR 47(rayQuery) 23
+             210:    8(float)   CompositeExtract 209 0
+             211:    67(bool)   FOrdGreaterThan 210 27
+                                SelectionMerge 213 None
+                                BranchConditional 211 212 213
+             212:                 Label
+             214:           2     FunctionCall 6(doSomething()
+                                  Branch 213
+             213:               Label
+             215:     18(int)   RayQueryGetIntersectionPrimitiveIndexKHR 47(rayQuery) 23
+             216:    67(bool)   SGreaterThan 215 19
+                                SelectionMerge 218 None
+                                BranchConditional 216 217 218
+             217:                 Label
+             219:           2     FunctionCall 6(doSomething()
+                                  Branch 218
+             218:               Label
+             220:    8(float)   RayQueryGetIntersectionTKHR 47(rayQuery) 23
+             221:    67(bool)   FOrdGreaterThan 220 27
+                                SelectionMerge 223 None
+                                BranchConditional 221 222 223
+             222:                 Label
+             224:           2     FunctionCall 6(doSomething()
+                                  Branch 223
+             223:               Label
+                                Branch 167
+             167:             Label
+             227:     35(ptr) AccessChain 85(_mat3x4) 19 20
+             228:    8(float) Load 227
+             229:     35(ptr) AccessChain 80(_mat4x3) 19 20
+             230:    8(float) Load 229
+             231:    67(bool) FOrdEqual 228 230
+                              SelectionMerge 233 None
+                              BranchConditional 231 232 233
+             232:               Label
+             234:           2   FunctionCall 6(doSomething()
+                                Branch 233
+             233:             Label
+             235:          45 Load 47(rayQuery)
+             236:     14(int) RayQueryGetRayFlagsKHR 235
+             237:    67(bool) UGreaterThan 236 20
+                              SelectionMerge 239 None
+                              BranchConditional 237 238 239
+             238:               Label
+             240:           2   FunctionCall 6(doSomething()
+                                Branch 239
+             239:             Label
+             241:          45 Load 47(rayQuery)
+             242:    8(float) RayQueryGetRayTMinKHR 241
+             243:    67(bool) FOrdGreaterThan 242 27
+                              SelectionMerge 245 None
+                              BranchConditional 243 244 245
+             244:               Label
+             246:           2   FunctionCall 6(doSomething()
+                                Branch 245
+             245:             Label
+             248:          45 Load 47(rayQuery)
+             249:    9(fvec3) RayQueryGetWorldRayOriginKHR 248
+                              Store 247(o) 249
+             251:          45 Load 47(rayQuery)
+             252:    9(fvec3) RayQueryGetWorldRayDirectionKHR 251
+                              Store 250(d) 252
+             253:     35(ptr) AccessChain 247(o) 20
+             254:    8(float) Load 253
+             255:     35(ptr) AccessChain 250(d) 203
+             256:    8(float) Load 255
+             257:    67(bool) FOrdEqual 254 256
+                              SelectionMerge 259 None
+                              BranchConditional 257 258 259
+             258:               Label
+             260:           2   FunctionCall 6(doSomething()
+                                Branch 259
+             259:             Label
                               Return
                               FunctionEnd
  6(doSomething():           2 Function None 3
index e5af7ee..df13225 100644 (file)
@@ -1,7 +1,7 @@
 rayQuery-array-2d-dynamic.rgen
 // Module Version 10000
 // Generated by (magic number): 80008
-// Id's are bound by 126
+// Id's are bound by 128
 
                               Capability RayQueryProvisionalKHR
                               Capability RayTracingNV
@@ -26,35 +26,35 @@ rayQuery-array-2d-dynamic.rgen
                               Name 23  "gl_LaunchIDNV"
                               Name 28  "gl_LaunchSizeNV"
                               Name 50  "rtas"
-                              Name 68  "index"
-                              Name 70  "ray"
-                              Name 71  "Ray"
-                              MemberName 71(Ray) 0  "pos"
-                              MemberName 71(Ray) 1  "tmin"
-                              MemberName 71(Ray) 2  "dir"
-                              MemberName 71(Ray) 3  "tmax"
-                              Name 73  "Rays"
-                              MemberName 73(Rays) 0  "rays"
-                              Name 75  ""
-                              Name 90  "rayQuery"
-                              Name 92  "param"
-                              Name 95  "param"
-                              Name 118  "C"
-                              Name 120  "param"
-                              Name 123  "param"
+                              Name 69  "index"
+                              Name 71  "ray"
+                              Name 72  "Ray"
+                              MemberName 72(Ray) 0  "pos"
+                              MemberName 72(Ray) 1  "tmin"
+                              MemberName 72(Ray) 2  "dir"
+                              MemberName 72(Ray) 3  "tmax"
+                              Name 74  "Rays"
+                              MemberName 74(Rays) 0  "rays"
+                              Name 76  ""
+                              Name 91  "rayQuery"
+                              Name 93  "param"
+                              Name 96  "param"
+                              Name 120  "C"
+                              Name 122  "param"
+                              Name 125  "param"
                               Decorate 23(gl_LaunchIDNV) BuiltIn LaunchIdKHR
                               Decorate 28(gl_LaunchSizeNV) BuiltIn LaunchSizeKHR
                               Decorate 50(rtas) DescriptorSet 0
                               Decorate 50(rtas) Binding 0
-                              MemberDecorate 71(Ray) 0 Offset 0
-                              MemberDecorate 71(Ray) 1 Offset 12
-                              MemberDecorate 71(Ray) 2 Offset 16
-                              MemberDecorate 71(Ray) 3 Offset 28
-                              Decorate 72 ArrayStride 32
-                              MemberDecorate 73(Rays) 0 Offset 0
-                              Decorate 73(Rays) BufferBlock
-                              Decorate 75 DescriptorSet 0
-                              Decorate 75 Binding 2
+                              MemberDecorate 72(Ray) 0 Offset 0
+                              MemberDecorate 72(Ray) 1 Offset 12
+                              MemberDecorate 72(Ray) 2 Offset 16
+                              MemberDecorate 72(Ray) 3 Offset 28
+                              Decorate 73 ArrayStride 32
+                              MemberDecorate 74(Rays) 0 Offset 0
+                              Decorate 74(Rays) BufferBlock
+                              Decorate 76 DescriptorSet 0
+                              Decorate 76 Binding 2
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
@@ -77,87 +77,89 @@ rayQuery-array-2d-dynamic.rgen
               48:             TypeAccelerationStructureKHR
               49:             TypePointer UniformConstant 48
         50(rtas):     49(ptr) Variable UniformConstant
-              52:             TypeInt 32 1
-              53:     52(int) Constant 0
-              54:             TypePointer Function 13(fvec3)
-              57:     52(int) Constant 1
-              58:             TypePointer Function 12(float)
-              61:     52(int) Constant 2
-              64:     52(int) Constant 3
-              67:             TypePointer Function 6(int)
-         71(Ray):             TypeStruct 13(fvec3) 12(float) 13(fvec3) 12(float)
-              72:             TypeRuntimeArray 71(Ray)
-        73(Rays):             TypeStruct 72
-              74:             TypePointer Uniform 73(Rays)
-              75:     74(ptr) Variable Uniform
-              77:             TypePointer Uniform 71(Ray)
-              88:             TypeArray 10 24
-              89:             TypePointer Function 88
-             117:             TypePointer Private 52(int)
-          118(C):    117(ptr) Variable Private
+              52:      6(int) Constant 16
+              53:             TypeInt 32 1
+              54:     53(int) Constant 0
+              55:             TypePointer Function 13(fvec3)
+              58:     53(int) Constant 1
+              59:             TypePointer Function 12(float)
+              62:     53(int) Constant 2
+              65:     53(int) Constant 3
+              68:             TypePointer Function 6(int)
+         72(Ray):             TypeStruct 13(fvec3) 12(float) 13(fvec3) 12(float)
+              73:             TypeRuntimeArray 72(Ray)
+        74(Rays):             TypeStruct 73
+              75:             TypePointer Uniform 74(Rays)
+              76:     75(ptr) Variable Uniform
+              78:             TypePointer Uniform 72(Ray)
+              89:             TypeArray 10 24
+              90:             TypePointer Function 89
+             110:      6(int) Constant 32
+             119:             TypePointer Private 53(int)
+          120(C):    119(ptr) Variable Private
          4(main):           2 Function None 3
                5:             Label
-       68(index):     67(ptr) Variable Function
-         70(ray):     15(ptr) Variable Function
-    90(rayQuery):     89(ptr) Variable Function
-       92(param):     11(ptr) Variable Function
-       95(param):     15(ptr) Variable Function
-      120(param):     11(ptr) Variable Function
-      123(param):     15(ptr) Variable Function
-              69:      6(int) FunctionCall 8(launchIndex()
-                              Store 68(index) 69
-              76:      6(int) Load 68(index)
-              78:     77(ptr) AccessChain 75 53 76
-              79:     71(Ray) Load 78
-              80:   13(fvec3) CompositeExtract 79 0
-              81:     54(ptr) AccessChain 70(ray) 53
-                              Store 81 80
-              82:   12(float) CompositeExtract 79 1
-              83:     58(ptr) AccessChain 70(ray) 57
-                              Store 83 82
-              84:   13(fvec3) CompositeExtract 79 2
-              85:     54(ptr) AccessChain 70(ray) 61
-                              Store 85 84
-              86:   12(float) CompositeExtract 79 3
-              87:     58(ptr) AccessChain 70(ray) 64
-                              Store 87 86
-              91:      6(int) Load 68(index)
-              93:     11(ptr) AccessChain 90(rayQuery) 53
-              94:          10 Load 93
-                              Store 92(param) 94
-              96:     77(ptr) AccessChain 75 53 91
-              97:     71(Ray) Load 96
-              98:   13(fvec3) CompositeExtract 97 0
-              99:     54(ptr) AccessChain 95(param) 53
-                              Store 99 98
-             100:   12(float) CompositeExtract 97 1
-             101:     58(ptr) AccessChain 95(param) 57
-                              Store 101 100
-             102:   13(fvec3) CompositeExtract 97 2
-             103:     54(ptr) AccessChain 95(param) 61
-                              Store 103 102
-             104:   12(float) CompositeExtract 97 3
-             105:     58(ptr) AccessChain 95(param) 64
-                              Store 105 104
-             106:           2 FunctionCall 19(doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;) 92(param) 95(param)
-             107:     11(ptr) AccessChain 90(rayQuery) 57
-             108:          48 Load 50(rtas)
-             109:     54(ptr) AccessChain 70(ray) 53
-             110:   13(fvec3) Load 109
-             111:     58(ptr) AccessChain 70(ray) 57
-             112:   12(float) Load 111
-             113:     54(ptr) AccessChain 70(ray) 61
-             114:   13(fvec3) Load 113
-             115:     58(ptr) AccessChain 70(ray) 64
-             116:   12(float) Load 115
-                              RayQueryInitializeKHR 107 108 33 24 110 112 114 116
-             119:     52(int) Load 118(C)
-             121:     11(ptr) AccessChain 90(rayQuery) 119
-             122:          10 Load 121
-                              Store 120(param) 122
-             124:     14(Ray) Load 70(ray)
-                              Store 123(param) 124
-             125:           2 FunctionCall 19(doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;) 120(param) 123(param)
+       69(index):     68(ptr) Variable Function
+         71(ray):     15(ptr) Variable Function
+    91(rayQuery):     90(ptr) Variable Function
+       93(param):     11(ptr) Variable Function
+       96(param):     15(ptr) Variable Function
+      122(param):     11(ptr) Variable Function
+      125(param):     15(ptr) Variable Function
+              70:      6(int) FunctionCall 8(launchIndex()
+                              Store 69(index) 70
+              77:      6(int) Load 69(index)
+              79:     78(ptr) AccessChain 76 54 77
+              80:     72(Ray) Load 79
+              81:   13(fvec3) CompositeExtract 80 0
+              82:     55(ptr) AccessChain 71(ray) 54
+                              Store 82 81
+              83:   12(float) CompositeExtract 80 1
+              84:     59(ptr) AccessChain 71(ray) 58
+                              Store 84 83
+              85:   13(fvec3) CompositeExtract 80 2
+              86:     55(ptr) AccessChain 71(ray) 62
+                              Store 86 85
+              87:   12(float) CompositeExtract 80 3
+              88:     59(ptr) AccessChain 71(ray) 65
+                              Store 88 87
+              92:      6(int) Load 69(index)
+              94:     11(ptr) AccessChain 91(rayQuery) 54
+              95:          10 Load 94
+                              Store 93(param) 95
+              97:     78(ptr) AccessChain 76 54 92
+              98:     72(Ray) Load 97
+              99:   13(fvec3) CompositeExtract 98 0
+             100:     55(ptr) AccessChain 96(param) 54
+                              Store 100 99
+             101:   12(float) CompositeExtract 98 1
+             102:     59(ptr) AccessChain 96(param) 58
+                              Store 102 101
+             103:   13(fvec3) CompositeExtract 98 2
+             104:     55(ptr) AccessChain 96(param) 62
+                              Store 104 103
+             105:   12(float) CompositeExtract 98 3
+             106:     59(ptr) AccessChain 96(param) 65
+                              Store 106 105
+             107:           2 FunctionCall 19(doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;) 93(param) 96(param)
+             108:     11(ptr) AccessChain 91(rayQuery) 58
+             109:          48 Load 50(rtas)
+             111:     55(ptr) AccessChain 71(ray) 54
+             112:   13(fvec3) Load 111
+             113:     59(ptr) AccessChain 71(ray) 58
+             114:   12(float) Load 113
+             115:     55(ptr) AccessChain 71(ray) 62
+             116:   13(fvec3) Load 115
+             117:     59(ptr) AccessChain 71(ray) 65
+             118:   12(float) Load 117
+                              RayQueryInitializeKHR 108 109 33 110 112 114 116 118
+             121:     53(int) Load 120(C)
+             123:     11(ptr) AccessChain 91(rayQuery) 121
+             124:          10 Load 123
+                              Store 122(param) 124
+             126:     14(Ray) Load 71(ray)
+                              Store 125(param) 126
+             127:           2 FunctionCall 19(doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;) 122(param) 125(param)
                               Return
                               FunctionEnd
  8(launchIndex():      6(int) Function None 7
@@ -186,14 +188,14 @@ rayQuery-array-2d-dynamic.rgen
          18(ray):     15(ptr) FunctionParameter
               20:             Label
               51:          48 Load 50(rtas)
-              55:     54(ptr) AccessChain 18(ray) 53
-              56:   13(fvec3) Load 55
-              59:     58(ptr) AccessChain 18(ray) 57
-              60:   12(float) Load 59
-              62:     54(ptr) AccessChain 18(ray) 61
-              63:   13(fvec3) Load 62
-              65:     58(ptr) AccessChain 18(ray) 64
-              66:   12(float) Load 65
-                              RayQueryInitializeKHR 17(rayQuery) 51 29 33 56 60 63 66
+              56:     55(ptr) AccessChain 18(ray) 54
+              57:   13(fvec3) Load 56
+              60:     59(ptr) AccessChain 18(ray) 58
+              61:   12(float) Load 60
+              63:     55(ptr) AccessChain 18(ray) 62
+              64:   13(fvec3) Load 63
+              66:     59(ptr) AccessChain 18(ray) 65
+              67:   12(float) Load 66
+                              RayQueryInitializeKHR 17(rayQuery) 51 29 52 57 61 64 67
                               Return
                               FunctionEnd
index 7a40d43..aa66411 100644 (file)
@@ -1,7 +1,7 @@
 rayQuery-decls.rgen
 // Module Version 10000
 // Generated by (magic number): 80008
-// Id's are bound by 127
+// Id's are bound by 130
 
                               Capability RayQueryProvisionalKHR
                               Capability RayTracingNV
@@ -40,8 +40,8 @@ rayQuery-decls.rgen
                               Name 86  "rayQuery0a"
                               Name 89  "rayQuery0c"
                               Name 96  "rtas"
-                              Name 106  "rayQuery1c"
-                              Name 126  "g_rayQueryUnused"
+                              Name 107  "rayQuery1c"
+                              Name 129  "g_rayQueryUnused"
                               Decorate 12(gl_LaunchIDNV) BuiltIn LaunchIdKHR
                               Decorate 17(gl_LaunchSizeNV) BuiltIn LaunchSizeKHR
                               MemberDecorate 45(Ray) 0 Offset 0
@@ -99,7 +99,10 @@ rayQuery-decls.rgen
               94:             TypeAccelerationStructureKHR
               95:             TypePointer UniformConstant 94
         96(rtas):     95(ptr) Variable UniformConstant
-             117:      6(int) Constant 3
+              98:      6(int) Constant 16
+             109:      6(int) Constant 32
+             119:      6(int) Constant 3
+             120:      6(int) Constant 64
          4(main):           2 Function None 3
                5:             Label
        38(index):     37(ptr) Variable Function
@@ -108,8 +111,8 @@ rayQuery-decls.rgen
   81(rayQuery0b):     80(ptr) Variable Function
   86(rayQuery0a):     80(ptr) Variable Function
   89(rayQuery0c):     80(ptr) Variable Function
- 106(rayQuery1c):     80(ptr) Variable Function
-126(g_rayQueryUnused):     80(ptr) Variable Function
+ 107(rayQuery1c):     80(ptr) Variable Function
+129(g_rayQueryUnused):     80(ptr) Variable Function
               39:      6(int) FunctionCall 8(launchIndex()
                               Store 38(index) 39
               52:      6(int) Load 38(index)
@@ -143,35 +146,35 @@ rayQuery-decls.rgen
               93:          69 Load 92
                               Store 89(rayQuery0c) 93
               97:          94 Load 96(rtas)
-              98:     57(ptr) AccessChain 44(ray) 51
-              99:   41(fvec3) Load 98
-             100:     61(ptr) AccessChain 44(ray) 60
-             101:   40(float) Load 100
-             102:     57(ptr) AccessChain 44(ray) 64
-             103:   41(fvec3) Load 102
-             104:     61(ptr) AccessChain 44(ray) 67
-             105:   40(float) Load 104
-                              RayQueryInitializeKHR 89(rayQuery0c) 97 22 13 99 101 103 105
-             107:          94 Load 96(rtas)
-             108:     57(ptr) AccessChain 44(ray) 51
-             109:   41(fvec3) Load 108
-             110:     61(ptr) AccessChain 44(ray) 60
-             111:   40(float) Load 110
-             112:     57(ptr) AccessChain 44(ray) 64
-             113:   41(fvec3) Load 112
-             114:     61(ptr) AccessChain 44(ray) 67
-             115:   40(float) Load 114
-                              RayQueryInitializeKHR 106(rayQuery1c) 107 22 22 109 111 113 115
-             116:          94 Load 96(rtas)
-             118:     57(ptr) AccessChain 44(ray) 51
-             119:   41(fvec3) Load 118
-             120:     61(ptr) AccessChain 44(ray) 60
-             121:   40(float) Load 120
-             122:     57(ptr) AccessChain 44(ray) 64
-             123:   41(fvec3) Load 122
-             124:     61(ptr) AccessChain 44(ray) 67
-             125:   40(float) Load 124
-                              RayQueryInitializeKHR 106(rayQuery1c) 116 117 70 119 121 123 125
+              99:     57(ptr) AccessChain 44(ray) 51
+             100:   41(fvec3) Load 99
+             101:     61(ptr) AccessChain 44(ray) 60
+             102:   40(float) Load 101
+             103:     57(ptr) AccessChain 44(ray) 64
+             104:   41(fvec3) Load 103
+             105:     61(ptr) AccessChain 44(ray) 67
+             106:   40(float) Load 105
+                              RayQueryInitializeKHR 89(rayQuery0c) 97 22 98 100 102 104 106
+             108:          94 Load 96(rtas)
+             110:     57(ptr) AccessChain 44(ray) 51
+             111:   41(fvec3) Load 110
+             112:     61(ptr) AccessChain 44(ray) 60
+             113:   40(float) Load 112
+             114:     57(ptr) AccessChain 44(ray) 64
+             115:   41(fvec3) Load 114
+             116:     61(ptr) AccessChain 44(ray) 67
+             117:   40(float) Load 116
+                              RayQueryInitializeKHR 107(rayQuery1c) 108 22 109 111 113 115 117
+             118:          94 Load 96(rtas)
+             121:     57(ptr) AccessChain 44(ray) 51
+             122:   41(fvec3) Load 121
+             123:     61(ptr) AccessChain 44(ray) 60
+             124:   40(float) Load 123
+             125:     57(ptr) AccessChain 44(ray) 64
+             126:   41(fvec3) Load 125
+             127:     61(ptr) AccessChain 44(ray) 67
+             128:   40(float) Load 127
+                              RayQueryInitializeKHR 107(rayQuery1c) 118 119 120 122 124 126 128
                               Return
                               FunctionEnd
  8(launchIndex():      6(int) Function None 7
index f7e05a9..7daa658 100644 (file)
@@ -1,7 +1,7 @@
 rayQuery-initialize.rgen
 // Module Version 10000
 // Generated by (magic number): 80008
-// Id's are bound by 103
+// Id's are bound by 105
 
                               Capability RayQueryProvisionalKHR
                               Capability RayTracingNV
@@ -26,32 +26,32 @@ rayQuery-initialize.rgen
                               Name 23  "gl_LaunchIDNV"
                               Name 28  "gl_LaunchSizeNV"
                               Name 50  "rtas"
-                              Name 68  "index"
-                              Name 70  "ray"
-                              Name 71  "Ray"
-                              MemberName 71(Ray) 0  "pos"
-                              MemberName 71(Ray) 1  "tmin"
-                              MemberName 71(Ray) 2  "dir"
-                              MemberName 71(Ray) 3  "tmax"
-                              Name 73  "Rays"
-                              MemberName 73(Rays) 0  "rays"
-                              Name 75  ""
-                              Name 88  "rayQuery"
-                              Name 89  "param"
-                              Name 91  "param"
+                              Name 69  "index"
+                              Name 71  "ray"
+                              Name 72  "Ray"
+                              MemberName 72(Ray) 0  "pos"
+                              MemberName 72(Ray) 1  "tmin"
+                              MemberName 72(Ray) 2  "dir"
+                              MemberName 72(Ray) 3  "tmax"
+                              Name 74  "Rays"
+                              MemberName 74(Rays) 0  "rays"
+                              Name 76  ""
+                              Name 89  "rayQuery"
+                              Name 90  "param"
+                              Name 92  "param"
                               Decorate 23(gl_LaunchIDNV) BuiltIn LaunchIdKHR
                               Decorate 28(gl_LaunchSizeNV) BuiltIn LaunchSizeKHR
                               Decorate 50(rtas) DescriptorSet 0
                               Decorate 50(rtas) Binding 0
-                              MemberDecorate 71(Ray) 0 Offset 0
-                              MemberDecorate 71(Ray) 1 Offset 12
-                              MemberDecorate 71(Ray) 2 Offset 16
-                              MemberDecorate 71(Ray) 3 Offset 28
-                              Decorate 72 ArrayStride 32
-                              MemberDecorate 73(Rays) 0 Offset 0
-                              Decorate 73(Rays) BufferBlock
-                              Decorate 75 DescriptorSet 0
-                              Decorate 75 Binding 2
+                              MemberDecorate 72(Ray) 0 Offset 0
+                              MemberDecorate 72(Ray) 1 Offset 12
+                              MemberDecorate 72(Ray) 2 Offset 16
+                              MemberDecorate 72(Ray) 3 Offset 28
+                              Decorate 73 ArrayStride 32
+                              MemberDecorate 74(Rays) 0 Offset 0
+                              Decorate 74(Rays) BufferBlock
+                              Decorate 76 DescriptorSet 0
+                              Decorate 76 Binding 2
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
@@ -74,59 +74,61 @@ rayQuery-initialize.rgen
               48:             TypeAccelerationStructureKHR
               49:             TypePointer UniformConstant 48
         50(rtas):     49(ptr) Variable UniformConstant
-              52:             TypeInt 32 1
-              53:     52(int) Constant 0
-              54:             TypePointer Function 13(fvec3)
-              57:     52(int) Constant 1
-              58:             TypePointer Function 12(float)
-              61:     52(int) Constant 2
-              64:     52(int) Constant 3
-              67:             TypePointer Function 6(int)
-         71(Ray):             TypeStruct 13(fvec3) 12(float) 13(fvec3) 12(float)
-              72:             TypeRuntimeArray 71(Ray)
-        73(Rays):             TypeStruct 72
-              74:             TypePointer Uniform 73(Rays)
-              75:     74(ptr) Variable Uniform
-              77:             TypePointer Uniform 71(Ray)
+              52:      6(int) Constant 16
+              53:             TypeInt 32 1
+              54:     53(int) Constant 0
+              55:             TypePointer Function 13(fvec3)
+              58:     53(int) Constant 1
+              59:             TypePointer Function 12(float)
+              62:     53(int) Constant 2
+              65:     53(int) Constant 3
+              68:             TypePointer Function 6(int)
+         72(Ray):             TypeStruct 13(fvec3) 12(float) 13(fvec3) 12(float)
+              73:             TypeRuntimeArray 72(Ray)
+        74(Rays):             TypeStruct 73
+              75:             TypePointer Uniform 74(Rays)
+              76:     75(ptr) Variable Uniform
+              78:             TypePointer Uniform 72(Ray)
+              96:      6(int) Constant 32
          4(main):           2 Function None 3
                5:             Label
-       68(index):     67(ptr) Variable Function
-         70(ray):     15(ptr) Variable Function
-    88(rayQuery):     11(ptr) Variable Function
-       89(param):     11(ptr) Variable Function
-       91(param):     15(ptr) Variable Function
-              69:      6(int) FunctionCall 8(launchIndex()
-                              Store 68(index) 69
-              76:      6(int) Load 68(index)
-              78:     77(ptr) AccessChain 75 53 76
-              79:     71(Ray) Load 78
-              80:   13(fvec3) CompositeExtract 79 0
-              81:     54(ptr) AccessChain 70(ray) 53
-                              Store 81 80
-              82:   12(float) CompositeExtract 79 1
-              83:     58(ptr) AccessChain 70(ray) 57
-                              Store 83 82
-              84:   13(fvec3) CompositeExtract 79 2
-              85:     54(ptr) AccessChain 70(ray) 61
-                              Store 85 84
-              86:   12(float) CompositeExtract 79 3
-              87:     58(ptr) AccessChain 70(ray) 64
-                              Store 87 86
-              90:          10 Load 88(rayQuery)
-                              Store 89(param) 90
-              92:     14(Ray) Load 70(ray)
-                              Store 91(param) 92
-              93:           2 FunctionCall 19(doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;) 89(param) 91(param)
-              94:          48 Load 50(rtas)
-              95:     54(ptr) AccessChain 70(ray) 53
-              96:   13(fvec3) Load 95
-              97:     58(ptr) AccessChain 70(ray) 57
-              98:   12(float) Load 97
-              99:     54(ptr) AccessChain 70(ray) 61
-             100:   13(fvec3) Load 99
-             101:     58(ptr) AccessChain 70(ray) 64
-             102:   12(float) Load 101
-                              RayQueryInitializeKHR 88(rayQuery) 94 33 24 96 98 100 102
+       69(index):     68(ptr) Variable Function
+         71(ray):     15(ptr) Variable Function
+    89(rayQuery):     11(ptr) Variable Function
+       90(param):     11(ptr) Variable Function
+       92(param):     15(ptr) Variable Function
+              70:      6(int) FunctionCall 8(launchIndex()
+                              Store 69(index) 70
+              77:      6(int) Load 69(index)
+              79:     78(ptr) AccessChain 76 54 77
+              80:     72(Ray) Load 79
+              81:   13(fvec3) CompositeExtract 80 0
+              82:     55(ptr) AccessChain 71(ray) 54
+                              Store 82 81
+              83:   12(float) CompositeExtract 80 1
+              84:     59(ptr) AccessChain 71(ray) 58
+                              Store 84 83
+              85:   13(fvec3) CompositeExtract 80 2
+              86:     55(ptr) AccessChain 71(ray) 62
+                              Store 86 85
+              87:   12(float) CompositeExtract 80 3
+              88:     59(ptr) AccessChain 71(ray) 65
+                              Store 88 87
+              91:          10 Load 89(rayQuery)
+                              Store 90(param) 91
+              93:     14(Ray) Load 71(ray)
+                              Store 92(param) 93
+              94:           2 FunctionCall 19(doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;) 90(param) 92(param)
+              95:          48 Load 50(rtas)
+              97:     55(ptr) AccessChain 71(ray) 54
+              98:   13(fvec3) Load 97
+              99:     59(ptr) AccessChain 71(ray) 58
+             100:   12(float) Load 99
+             101:     55(ptr) AccessChain 71(ray) 62
+             102:   13(fvec3) Load 101
+             103:     59(ptr) AccessChain 71(ray) 65
+             104:   12(float) Load 103
+                              RayQueryInitializeKHR 89(rayQuery) 95 33 96 98 100 102 104
                               Return
                               FunctionEnd
  8(launchIndex():      6(int) Function None 7
@@ -155,14 +157,14 @@ rayQuery-initialize.rgen
          18(ray):     15(ptr) FunctionParameter
               20:             Label
               51:          48 Load 50(rtas)
-              55:     54(ptr) AccessChain 18(ray) 53
-              56:   13(fvec3) Load 55
-              59:     58(ptr) AccessChain 18(ray) 57
-              60:   12(float) Load 59
-              62:     54(ptr) AccessChain 18(ray) 61
-              63:   13(fvec3) Load 62
-              65:     58(ptr) AccessChain 18(ray) 64
-              66:   12(float) Load 65
-                              RayQueryInitializeKHR 17(rayQuery) 51 29 33 56 60 63 66
+              56:     55(ptr) AccessChain 18(ray) 54
+              57:   13(fvec3) Load 56
+              60:     59(ptr) AccessChain 18(ray) 58
+              61:   12(float) Load 60
+              63:     55(ptr) AccessChain 18(ray) 62
+              64:   13(fvec3) Load 63
+              66:     59(ptr) AccessChain 18(ray) 65
+              67:   12(float) Load 66
+                              RayQueryInitializeKHR 17(rayQuery) 51 29 52 57 61 64 67
                               Return
                               FunctionEnd
index 357fa8c..69e0841 100644 (file)
@@ -1,7 +1,7 @@
 rayQuery-no-cse.rgen
 // Module Version 10000
 // Generated by (magic number): 80008
-// Id's are bound by 109
+// Id's are bound by 111
 
                               Capability RayQueryProvisionalKHR
                               Capability RayTracingNV
@@ -26,35 +26,35 @@ rayQuery-no-cse.rgen
                               Name 23  "gl_LaunchIDNV"
                               Name 28  "gl_LaunchSizeNV"
                               Name 50  "rtas"
-                              Name 68  "index"
-                              Name 70  "ray"
-                              Name 71  "Ray"
-                              MemberName 71(Ray) 0  "pos"
-                              MemberName 71(Ray) 1  "tmin"
-                              MemberName 71(Ray) 2  "dir"
-                              MemberName 71(Ray) 3  "tmax"
-                              Name 73  "Rays"
-                              MemberName 73(Rays) 0  "rays"
-                              Name 75  ""
-                              Name 88  "rayQuery1"
-                              Name 89  "param"
-                              Name 91  "param"
-                              Name 103  "rayQuery2"
-                              Name 104  "param"
+                              Name 69  "index"
+                              Name 71  "ray"
+                              Name 72  "Ray"
+                              MemberName 72(Ray) 0  "pos"
+                              MemberName 72(Ray) 1  "tmin"
+                              MemberName 72(Ray) 2  "dir"
+                              MemberName 72(Ray) 3  "tmax"
+                              Name 74  "Rays"
+                              MemberName 74(Rays) 0  "rays"
+                              Name 76  ""
+                              Name 89  "rayQuery1"
+                              Name 90  "param"
+                              Name 92  "param"
+                              Name 105  "rayQuery2"
                               Name 106  "param"
+                              Name 108  "param"
                               Decorate 23(gl_LaunchIDNV) BuiltIn LaunchIdKHR
                               Decorate 28(gl_LaunchSizeNV) BuiltIn LaunchSizeKHR
                               Decorate 50(rtas) DescriptorSet 0
                               Decorate 50(rtas) Binding 0
-                              MemberDecorate 71(Ray) 0 Offset 0
-                              MemberDecorate 71(Ray) 1 Offset 12
-                              MemberDecorate 71(Ray) 2 Offset 16
-                              MemberDecorate 71(Ray) 3 Offset 28
-                              Decorate 72 ArrayStride 32
-                              MemberDecorate 73(Rays) 0 Offset 0
-                              Decorate 73(Rays) BufferBlock
-                              Decorate 75 DescriptorSet 0
-                              Decorate 75 Binding 2
+                              MemberDecorate 72(Ray) 0 Offset 0
+                              MemberDecorate 72(Ray) 1 Offset 12
+                              MemberDecorate 72(Ray) 2 Offset 16
+                              MemberDecorate 72(Ray) 3 Offset 28
+                              Decorate 73 ArrayStride 32
+                              MemberDecorate 74(Rays) 0 Offset 0
+                              Decorate 74(Rays) BufferBlock
+                              Decorate 76 DescriptorSet 0
+                              Decorate 76 Binding 2
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
@@ -77,67 +77,69 @@ rayQuery-no-cse.rgen
               48:             TypeAccelerationStructureKHR
               49:             TypePointer UniformConstant 48
         50(rtas):     49(ptr) Variable UniformConstant
-              52:             TypeInt 32 1
-              53:     52(int) Constant 0
-              54:             TypePointer Function 13(fvec3)
-              57:     52(int) Constant 1
-              58:             TypePointer Function 12(float)
-              61:     52(int) Constant 2
-              64:     52(int) Constant 3
-              67:             TypePointer Function 6(int)
-         71(Ray):             TypeStruct 13(fvec3) 12(float) 13(fvec3) 12(float)
-              72:             TypeRuntimeArray 71(Ray)
-        73(Rays):             TypeStruct 72
-              74:             TypePointer Uniform 73(Rays)
-              75:     74(ptr) Variable Uniform
-              77:             TypePointer Uniform 71(Ray)
+              52:      6(int) Constant 16
+              53:             TypeInt 32 1
+              54:     53(int) Constant 0
+              55:             TypePointer Function 13(fvec3)
+              58:     53(int) Constant 1
+              59:             TypePointer Function 12(float)
+              62:     53(int) Constant 2
+              65:     53(int) Constant 3
+              68:             TypePointer Function 6(int)
+         72(Ray):             TypeStruct 13(fvec3) 12(float) 13(fvec3) 12(float)
+              73:             TypeRuntimeArray 72(Ray)
+        74(Rays):             TypeStruct 73
+              75:             TypePointer Uniform 74(Rays)
+              76:     75(ptr) Variable Uniform
+              78:             TypePointer Uniform 72(Ray)
+              96:      6(int) Constant 32
          4(main):           2 Function None 3
                5:             Label
-       68(index):     67(ptr) Variable Function
-         70(ray):     15(ptr) Variable Function
-   88(rayQuery1):     11(ptr) Variable Function
-       89(param):     11(ptr) Variable Function
-       91(param):     15(ptr) Variable Function
-  103(rayQuery2):     11(ptr) Variable Function
-      104(param):     11(ptr) Variable Function
-      106(param):     15(ptr) Variable Function
-              69:      6(int) FunctionCall 8(launchIndex()
-                              Store 68(index) 69
-              76:      6(int) Load 68(index)
-              78:     77(ptr) AccessChain 75 53 76
-              79:     71(Ray) Load 78
-              80:   13(fvec3) CompositeExtract 79 0
-              81:     54(ptr) AccessChain 70(ray) 53
-                              Store 81 80
-              82:   12(float) CompositeExtract 79 1
-              83:     58(ptr) AccessChain 70(ray) 57
-                              Store 83 82
-              84:   13(fvec3) CompositeExtract 79 2
-              85:     54(ptr) AccessChain 70(ray) 61
-                              Store 85 84
-              86:   12(float) CompositeExtract 79 3
-              87:     58(ptr) AccessChain 70(ray) 64
-                              Store 87 86
-              90:          10 Load 88(rayQuery1)
-                              Store 89(param) 90
-              92:     14(Ray) Load 70(ray)
-                              Store 91(param) 92
-              93:           2 FunctionCall 19(doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;) 89(param) 91(param)
-              94:          48 Load 50(rtas)
-              95:     54(ptr) AccessChain 70(ray) 53
-              96:   13(fvec3) Load 95
-              97:     58(ptr) AccessChain 70(ray) 57
-              98:   12(float) Load 97
-              99:     54(ptr) AccessChain 70(ray) 61
-             100:   13(fvec3) Load 99
-             101:     58(ptr) AccessChain 70(ray) 64
-             102:   12(float) Load 101
-                              RayQueryInitializeKHR 88(rayQuery1) 94 33 24 96 98 100 102
-             105:          10 Load 103(rayQuery2)
-                              Store 104(param) 105
-             107:     14(Ray) Load 70(ray)
+       69(index):     68(ptr) Variable Function
+         71(ray):     15(ptr) Variable Function
+   89(rayQuery1):     11(ptr) Variable Function
+       90(param):     11(ptr) Variable Function
+       92(param):     15(ptr) Variable Function
+  105(rayQuery2):     11(ptr) Variable Function
+      106(param):     11(ptr) Variable Function
+      108(param):     15(ptr) Variable Function
+              70:      6(int) FunctionCall 8(launchIndex()
+                              Store 69(index) 70
+              77:      6(int) Load 69(index)
+              79:     78(ptr) AccessChain 76 54 77
+              80:     72(Ray) Load 79
+              81:   13(fvec3) CompositeExtract 80 0
+              82:     55(ptr) AccessChain 71(ray) 54
+                              Store 82 81
+              83:   12(float) CompositeExtract 80 1
+              84:     59(ptr) AccessChain 71(ray) 58
+                              Store 84 83
+              85:   13(fvec3) CompositeExtract 80 2
+              86:     55(ptr) AccessChain 71(ray) 62
+                              Store 86 85
+              87:   12(float) CompositeExtract 80 3
+              88:     59(ptr) AccessChain 71(ray) 65
+                              Store 88 87
+              91:          10 Load 89(rayQuery1)
+                              Store 90(param) 91
+              93:     14(Ray) Load 71(ray)
+                              Store 92(param) 93
+              94:           2 FunctionCall 19(doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;) 90(param) 92(param)
+              95:          48 Load 50(rtas)
+              97:     55(ptr) AccessChain 71(ray) 54
+              98:   13(fvec3) Load 97
+              99:     59(ptr) AccessChain 71(ray) 58
+             100:   12(float) Load 99
+             101:     55(ptr) AccessChain 71(ray) 62
+             102:   13(fvec3) Load 101
+             103:     59(ptr) AccessChain 71(ray) 65
+             104:   12(float) Load 103
+                              RayQueryInitializeKHR 89(rayQuery1) 95 33 96 98 100 102 104
+             107:          10 Load 105(rayQuery2)
                               Store 106(param) 107
-             108:           2 FunctionCall 19(doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;) 104(param) 106(param)
+             109:     14(Ray) Load 71(ray)
+                              Store 108(param) 109
+             110:           2 FunctionCall 19(doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;) 106(param) 108(param)
                               Return
                               FunctionEnd
  8(launchIndex():      6(int) Function None 7
@@ -166,14 +168,14 @@ rayQuery-no-cse.rgen
          18(ray):     15(ptr) FunctionParameter
               20:             Label
               51:          48 Load 50(rtas)
-              55:     54(ptr) AccessChain 18(ray) 53
-              56:   13(fvec3) Load 55
-              59:     58(ptr) AccessChain 18(ray) 57
-              60:   12(float) Load 59
-              62:     54(ptr) AccessChain 18(ray) 61
-              63:   13(fvec3) Load 62
-              65:     58(ptr) AccessChain 18(ray) 64
-              66:   12(float) Load 65
-                              RayQueryInitializeKHR 17(rayQuery) 51 29 33 56 60 63 66
+              56:     55(ptr) AccessChain 18(ray) 54
+              57:   13(fvec3) Load 56
+              60:     59(ptr) AccessChain 18(ray) 58
+              61:   12(float) Load 60
+              63:     55(ptr) AccessChain 18(ray) 62
+              64:   13(fvec3) Load 63
+              66:     59(ptr) AccessChain 18(ray) 65
+              67:   12(float) Load 66
+                              RayQueryInitializeKHR 17(rayQuery) 51 29 52 57 61 64 67
                               Return
                               FunctionEnd
index a33cece..2950500 100644 (file)
@@ -39,7 +39,7 @@ void main()
 {
     Ray ray = makeRayDesc();
     rayQueryEXT rayQuery;
-    rayQueryInitializeEXT(rayQuery, rtas, 0, 0xFF, ray.pos, ray.tmin, ray.dir, ray.tmax);
+    rayQueryInitializeEXT(rayQuery, rtas, gl_RayFlagsNoneEXT, 0xFF, ray.pos, ray.tmin, ray.dir, ray.tmax);
 
     mat4x3 _mat4x3;
     mat3x4 _mat3x4;
index 7c62a64..8aed42d 100644 (file)
@@ -37,9 +37,9 @@ Ray makeRayDesc()
 
 void main()
 {
-    Ray ray;// = makeRayDesc();
+    Ray ray = makeRayDesc();
     rayQueryEXT rayQuery;
-    rayQueryInitializeEXT(rayQuery, rtas, 0, 0xFF, ray.pos, ray.tmin, ray.dir, ray.tmax);
+    rayQueryInitializeEXT(rayQuery, rtas, gl_RayFlagsNoneEXT, 0xFF, ray.pos, ray.tmin, ray.dir, ray.tmax);
 
     mat4x3 _mat4x3;
     mat3x4 _mat3x4;
index 7c62a64..8aed42d 100644 (file)
@@ -37,9 +37,9 @@ Ray makeRayDesc()
 
 void main()
 {
-    Ray ray;// = makeRayDesc();
+    Ray ray = makeRayDesc();
     rayQueryEXT rayQuery;
-    rayQueryInitializeEXT(rayQuery, rtas, 0, 0xFF, ray.pos, ray.tmin, ray.dir, ray.tmax);
+    rayQueryInitializeEXT(rayQuery, rtas, gl_RayFlagsNoneEXT, 0xFF, ray.pos, ray.tmin, ray.dir, ray.tmax);
 
     mat4x3 _mat4x3;
     mat3x4 _mat3x4;
index 7c62a64..8aed42d 100644 (file)
@@ -37,9 +37,9 @@ Ray makeRayDesc()
 
 void main()
 {
-    Ray ray;// = makeRayDesc();
+    Ray ray = makeRayDesc();
     rayQueryEXT rayQuery;
-    rayQueryInitializeEXT(rayQuery, rtas, 0, 0xFF, ray.pos, ray.tmin, ray.dir, ray.tmax);
+    rayQueryInitializeEXT(rayQuery, rtas, gl_RayFlagsNoneEXT, 0xFF, ray.pos, ray.tmin, ray.dir, ray.tmax);
 
     mat4x3 _mat4x3;
     mat3x4 _mat3x4;
index 922e944..26c6f43 100644 (file)
@@ -20,7 +20,7 @@ uint launchIndex()
 
 void doInitialize(rayQueryEXT rayQuery, Ray ray)
 {
-    rayQueryInitializeEXT(rayQuery, rtas, 0, 1, ray.pos, ray.tmin, ray.dir, ray.tmax);
+    rayQueryInitializeEXT(rayQuery, rtas, gl_RayFlagsNoneEXT, gl_RayFlagsCullBackFacingTrianglesEXT, ray.pos, ray.tmin, ray.dir, ray.tmax);
 }
 
 int C;
@@ -31,6 +31,6 @@ void main()
     Ray ray = rays[index];
     rayQueryEXT rayQuery[2];
     doInitialize(rayQuery[0], rays[index]);
-    rayQueryInitializeEXT(rayQuery[1], rtas, 1, 2, ray.pos, ray.tmin, ray.dir, ray.tmax);
+    rayQueryInitializeEXT(rayQuery[1], rtas, gl_RayFlagsOpaqueEXT, gl_RayFlagsCullFrontFacingTrianglesEXT, ray.pos, ray.tmin, ray.dir, ray.tmax);
     doInitialize(rayQuery[C], ray);
 }
index 7d444dd..08a32b2 100644 (file)
@@ -39,7 +39,7 @@ void main()
     bool committed_true = true;
     bool committed_false = false;
 
-    rayQueryInitializeEXT(rayQuery, rtas, 1, 2, ray.pos, ray.tmin, ray.dir, ray.tmax);
+    rayQueryInitializeEXT(rayQuery, rtas, gl_RayFlagsOpaqueEXT, gl_RayFlagsCullBackFacingTrianglesEXT, ray.pos, ray.tmin, ray.dir, ray.tmax);
     while (rayQueryProceedEXT(rayQuery))
     {
         mat4x3 mat_o2w;
index f3e5f5f..22569b6 100644 (file)
@@ -41,13 +41,13 @@ void main()
     rayQueryEXT rayQuery0c = g_rayQueryArray[idx];
 
     // rayQuery0a is the one actually used here
-    rayQueryInitializeEXT(rayQuery0c, rtas, gl_RayFlagsOpaqueEXT, 2, ray.pos, ray.tmin, ray.dir, ray.tmax);
+    rayQueryInitializeEXT(rayQuery0c, rtas, gl_RayFlagsOpaqueEXT, gl_RayFlagsCullBackFacingTrianglesEXT, ray.pos, ray.tmin, ray.dir, ray.tmax);
 
     // AllocateRayQuery occurs here, rather than next to allocas
     // Should not be extray allocate, since above should allocate and copy
     rayQueryEXT rayQuery1c;
      // update the rayFlags as RAY_FLAG_FORCE_OPAQUE
-    rayQueryInitializeEXT(rayQuery1c, rtas, gl_RayFlagsOpaqueEXT, 1, ray.pos, ray.tmin, ray.dir, ray.tmax);
+    rayQueryInitializeEXT(rayQuery1c, rtas, gl_RayFlagsOpaqueEXT, gl_RayFlagsCullFrontFacingTrianglesEXT, ray.pos, ray.tmin, ray.dir, ray.tmax);
 
-    rayQueryInitializeEXT(rayQuery1c, rtas, 3, 4, ray.pos, ray.tmin, ray.dir, ray.tmax);
+    rayQueryInitializeEXT(rayQuery1c, rtas, gl_RayFlagsOpaqueEXT|gl_RayFlagsNoOpaqueEXT, gl_RayFlagsCullOpaqueEXT, ray.pos, ray.tmin, ray.dir, ray.tmax);
 }
index 75ec1ba..501faeb 100644 (file)
@@ -20,7 +20,7 @@ uint launchIndex()
 
 void doInitialize(rayQueryEXT rayQuery, Ray ray)
 {
-    rayQueryInitializeEXT(rayQuery, rtas, 0, 1, ray.pos, ray.tmin, ray.dir, ray.tmax);
+    rayQueryInitializeEXT(rayQuery, rtas, gl_RayFlagsNoneEXT, gl_RayFlagsCullBackFacingTrianglesEXT, ray.pos, ray.tmin, ray.dir, ray.tmax);
 }
 
 void main()
@@ -29,5 +29,5 @@ void main()
     Ray ray = rays[index];
     rayQueryEXT rayQuery;
     doInitialize(rayQuery, ray);
-    rayQueryInitializeEXT(rayQuery, rtas, 1, 2, ray.pos, ray.tmin, ray.dir, ray.tmax);
+    rayQueryInitializeEXT(rayQuery, rtas, gl_RayFlagsOpaqueEXT, gl_RayFlagsCullFrontFacingTrianglesEXT, ray.pos, ray.tmin, ray.dir, ray.tmax);
 }
index dd6e90d..26651d5 100644 (file)
@@ -20,7 +20,7 @@ uint launchIndex()
 
 void doInitialize(rayQueryEXT rayQuery, Ray ray)
 {
-    rayQueryInitializeEXT(rayQuery, rtas, 0, 1, ray.pos, ray.tmin, ray.dir, ray.tmax);
+    rayQueryInitializeEXT(rayQuery, rtas, gl_RayFlagsNoneEXT, gl_RayFlagsCullBackFacingTrianglesEXT, ray.pos, ray.tmin, ray.dir, ray.tmax);
 }
 
 void main()
@@ -30,6 +30,6 @@ void main()
     rayQueryEXT rayQuery1;
     rayQueryEXT rayQuery2;
     doInitialize(rayQuery1, ray);
-    rayQueryInitializeEXT(rayQuery1, rtas, 1, 2, ray.pos, ray.tmin, ray.dir, ray.tmax);
+    rayQueryInitializeEXT(rayQuery1, rtas, gl_RayFlagsOpaqueEXT, gl_RayFlagsCullFrontFacingTrianglesEXT, ray.pos, ray.tmin, ray.dir, ray.tmax);
     doInitialize(rayQuery2, ray);
 }
index 7c55108..cbcbe1a 100644 (file)
@@ -5573,24 +5573,14 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
 
 
         commonBuiltins.append(constRayQueryIntersection);
+        commonBuiltins.append(constRayFlags);
 
         stageBuiltins[EShLangRayGen].append(rayGenDecls);
-        stageBuiltins[EShLangRayGen].append(constRayFlags);
-
         stageBuiltins[EShLangIntersect].append(intersectDecls);
-        stageBuiltins[EShLangIntersect].append(constRayFlags);
-
         stageBuiltins[EShLangAnyHit].append(hitDecls);
-        stageBuiltins[EShLangAnyHit].append(constRayFlags);
-
         stageBuiltins[EShLangClosestHit].append(hitDecls);
-        stageBuiltins[EShLangClosestHit].append(constRayFlags);
-
         stageBuiltins[EShLangMiss].append(missDecls);
-        stageBuiltins[EShLangMiss].append(constRayFlags);
-
         stageBuiltins[EShLangCallable].append(callableDecls);
-        stageBuiltins[EShLangCallable].append(constRayFlags);
 
     }
     if ((profile != EEsProfile && version >= 140)) {