pass-by-reference updates

This commit is contained in:
Neslisah Torosdagli 2020-03-26 10:52:33 -04:00
parent 2df8c71258
commit 7d37a68ad7
10 changed files with 985 additions and 1007 deletions

View File

@ -1183,7 +1183,7 @@ spv::LoopControlMask TGlslangToSpvTraverser::TranslateLoopControl(const glslang:
spv::StorageClass TGlslangToSpvTraverser::TranslateStorageClass(const glslang::TType& type) spv::StorageClass TGlslangToSpvTraverser::TranslateStorageClass(const glslang::TType& type)
{ {
if (type.getBasicType() == glslang::EbtRayQuery) if (type.getBasicType() == glslang::EbtRayQuery)
return spv::StorageClassFunction; return spv::StorageClassWorkgroup;
if (type.getQualifier().isPipeInput()) if (type.getQualifier().isPipeInput())
return spv::StorageClassInput; return spv::StorageClassInput;
if (type.getQualifier().isPipeOutput()) if (type.getQualifier().isPipeOutput())
@ -2197,7 +2197,15 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI
if (node->getOp() == glslang::EOpAtomicCounterIncrement || if (node->getOp() == glslang::EOpAtomicCounterIncrement ||
node->getOp() == glslang::EOpAtomicCounterDecrement || node->getOp() == glslang::EOpAtomicCounterDecrement ||
node->getOp() == glslang::EOpAtomicCounter || node->getOp() == glslang::EOpAtomicCounter ||
node->getOp() == glslang::EOpInterpolateAtCentroid) { node->getOp() == glslang::EOpInterpolateAtCentroid ||
node->getOp() == glslang::EOpRayQueryProceed ||
node->getOp() == glslang::EOpRayQueryGetRayTMin ||
node->getOp() == glslang::EOpRayQueryGetRayFlags ||
node->getOp() == glslang::EOpRayQueryGetWorldRayOrigin ||
node->getOp() == glslang::EOpRayQueryGetWorldRayDirection ||
node->getOp() == glslang::EOpRayQueryGetIntersectionCandidateAABBOpaque ||
node->getOp() == glslang::EOpRayQueryTerminate ||
node->getOp() == glslang::EOpRayQueryConfirmIntersection) {
operand = builder.accessChainGetLValue(); // Special case l-value operands operand = builder.accessChainGetLValue(); // Special case l-value operands
lvalueCoherentFlags = builder.getAccessChain().coherentFlags; lvalueCoherentFlags = builder.getAccessChain().coherentFlags;
lvalueCoherentFlags |= TranslateCoherent(operandNode->getAsTyped()->getType()); lvalueCoherentFlags |= TranslateCoherent(operandNode->getAsTyped()->getType());
@ -2296,7 +2304,6 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI
case glslang::EOpRayQueryConfirmIntersection: case glslang::EOpRayQueryConfirmIntersection:
builder.createNoResultOp(spv::OpRayQueryConfirmIntersectionKHR, operand); builder.createNoResultOp(spv::OpRayQueryConfirmIntersectionKHR, operand);
return false; return false;
#endif #endif
default: default:
@ -2720,6 +2727,8 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
case glslang::EOpRayQueryConfirmIntersection: case glslang::EOpRayQueryConfirmIntersection:
builder.addExtension("SPV_KHR_ray_query"); builder.addExtension("SPV_KHR_ray_query");
builder.addCapability(spv::CapabilityRayQueryProvisionalKHR); builder.addCapability(spv::CapabilityRayQueryProvisionalKHR);
builder.addExtension("SPV_KHR_variable_pointers");
builder.addCapability(spv::CapabilityVariablePointers);
noReturnValue = true; noReturnValue = true;
break; break;
case glslang::EOpRayQueryProceed: case glslang::EOpRayQueryProceed:
@ -2743,6 +2752,8 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
case glslang::EOpRayQueryGetIntersectionWorldToObject: case glslang::EOpRayQueryGetIntersectionWorldToObject:
builder.addExtension("SPV_KHR_ray_query"); builder.addExtension("SPV_KHR_ray_query");
builder.addCapability(spv::CapabilityRayQueryProvisionalKHR); builder.addCapability(spv::CapabilityRayQueryProvisionalKHR);
builder.addExtension("SPV_KHR_variable_pointers");
builder.addCapability(spv::CapabilityVariablePointers);
break; break;
case glslang::EOpCooperativeMatrixLoad: case glslang::EOpCooperativeMatrixLoad:
case glslang::EOpCooperativeMatrixStore: case glslang::EOpCooperativeMatrixStore:

View File

@ -1,11 +1,13 @@
rayQuery-allOps.comp rayQuery-allOps.comp
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80008 // Generated by (magic number): 80008
// Id's are bound by 266 // Id's are bound by 257
Capability Shader Capability Shader
Capability VariablePointers
Capability RayQueryProvisionalKHR Capability RayQueryProvisionalKHR
Extension "SPV_KHR_ray_query" Extension "SPV_KHR_ray_query"
Extension "SPV_KHR_variable_pointers"
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "main" EntryPoint GLCompute 4 "main"
@ -29,21 +31,21 @@ rayQuery-allOps.comp
Name 43 "ray" Name 43 "ray"
Name 47 "rayQuery" Name 47 "rayQuery"
Name 50 "rtas" Name 50 "rtas"
Name 70 "candidateType" Name 69 "candidateType"
Name 80 "_mat4x3" Name 78 "_mat4x3"
Name 85 "_mat3x4" Name 83 "_mat3x4"
Name 147 "t" Name 143 "t"
Name 161 "committedStatus" Name 156 "committedStatus"
Name 247 "o" Name 240 "o"
Name 250 "d" Name 242 "d"
Name 261 "Ray" Name 252 "Ray"
MemberName 261(Ray) 0 "pos" MemberName 252(Ray) 0 "pos"
MemberName 261(Ray) 1 "tmin" MemberName 252(Ray) 1 "tmin"
MemberName 261(Ray) 2 "dir" MemberName 252(Ray) 2 "dir"
MemberName 261(Ray) 3 "tmax" MemberName 252(Ray) 3 "tmax"
Name 263 "Rays" Name 254 "Rays"
MemberName 263(Rays) 0 "rays" MemberName 254(Rays) 0 "rays"
Name 265 "" Name 256 ""
MemberDecorate 15(Log) 0 Offset 0 MemberDecorate 15(Log) 0 Offset 0
MemberDecorate 15(Log) 1 Offset 4 MemberDecorate 15(Log) 1 Offset 4
Decorate 15(Log) BufferBlock Decorate 15(Log) BufferBlock
@ -51,15 +53,15 @@ rayQuery-allOps.comp
Decorate 17 Binding 0 Decorate 17 Binding 0
Decorate 50(rtas) DescriptorSet 0 Decorate 50(rtas) DescriptorSet 0
Decorate 50(rtas) Binding 1 Decorate 50(rtas) Binding 1
MemberDecorate 261(Ray) 0 Offset 0 MemberDecorate 252(Ray) 0 Offset 0
MemberDecorate 261(Ray) 1 Offset 12 MemberDecorate 252(Ray) 1 Offset 12
MemberDecorate 261(Ray) 2 Offset 16 MemberDecorate 252(Ray) 2 Offset 16
MemberDecorate 261(Ray) 3 Offset 28 MemberDecorate 252(Ray) 3 Offset 28
Decorate 262 ArrayStride 32 Decorate 253 ArrayStride 32
MemberDecorate 263(Rays) 0 Offset 0 MemberDecorate 254(Rays) 0 Offset 0
Decorate 263(Rays) BufferBlock Decorate 254(Rays) BufferBlock
Decorate 265 DescriptorSet 0 Decorate 256 DescriptorSet 0
Decorate 265 Binding 2 Decorate 256 Binding 2
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
8: TypeFloat 32 8: TypeFloat 32
@ -86,40 +88,40 @@ rayQuery-allOps.comp
37: 18(int) Constant 3 37: 18(int) Constant 3
38: 8(float) Constant 1176255488 38: 8(float) Constant 1176255488
45: TypeRayQueryProvisionalKHR 45: TypeRayQueryProvisionalKHR
46: TypePointer Function 45 46: TypePointer Workgroup 45
47(rayQuery): 46(ptr) Variable Workgroup
48: TypeAccelerationStructureKHR 48: TypeAccelerationStructureKHR
49: TypePointer UniformConstant 48 49: TypePointer UniformConstant 48
50(rtas): 49(ptr) Variable UniformConstant 50(rtas): 49(ptr) Variable UniformConstant
52: 14(int) Constant 255 52: 14(int) Constant 255
67: TypeBool 66: TypeBool
69: TypePointer Function 14(int) 68: TypePointer Function 14(int)
71: 67(bool) ConstantFalse 70: 66(bool) ConstantFalse
78: TypeMatrix 9(fvec3) 4 76: TypeMatrix 9(fvec3) 4
79: TypePointer Function 78 77: TypePointer Function 76
82: TypeVector 8(float) 4 80: TypeVector 8(float) 4
83: TypeMatrix 82(fvec4) 3 81: TypeMatrix 80(fvec4) 3
84: TypePointer Function 83 82: TypePointer Function 81
89: 67(bool) ConstantTrue 86: 66(bool) ConstantTrue
94: TypeVector 8(float) 2 91: TypeVector 8(float) 2
148: 8(float) Constant 1056964608 144: 8(float) Constant 1056964608
180: 14(int) Constant 1 175: 14(int) Constant 1
203: 14(int) Constant 2 198: 14(int) Constant 2
261(Ray): TypeStruct 9(fvec3) 8(float) 9(fvec3) 8(float) 252(Ray): TypeStruct 9(fvec3) 8(float) 9(fvec3) 8(float)
262: TypeRuntimeArray 261(Ray) 253: TypeRuntimeArray 252(Ray)
263(Rays): TypeStruct 262 254(Rays): TypeStruct 253
264: TypePointer Uniform 263(Rays) 255: TypePointer Uniform 254(Rays)
265: 264(ptr) Variable Uniform 256: 255(ptr) Variable Uniform
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
43(ray): 25(ptr) Variable Function 43(ray): 25(ptr) Variable Function
47(rayQuery): 46(ptr) Variable Function 69(candidateType): 68(ptr) Variable Function
70(candidateType): 69(ptr) Variable Function 78(_mat4x3): 77(ptr) Variable Function
80(_mat4x3): 79(ptr) Variable Function 83(_mat3x4): 82(ptr) Variable Function
85(_mat3x4): 84(ptr) Variable Function 143(t): 35(ptr) Variable Function
147(t): 35(ptr) Variable Function 156(committedStatus): 68(ptr) Variable Function
161(committedStatus): 69(ptr) Variable Function 240(o): 29(ptr) Variable Function
247(o): 29(ptr) Variable Function 242(d): 29(ptr) Variable Function
250(d): 29(ptr) Variable Function
44: 10(Ray) FunctionCall 12(makeRayDesc() 44: 10(Ray) FunctionCall 12(makeRayDesc()
Store 43(ray) 44 Store 43(ray) 44
51: 48 Load 50(rtas) 51: 48 Load 50(rtas)
@ -137,283 +139,274 @@ rayQuery-allOps.comp
LoopMerge 63 64 None LoopMerge 63 64 None
Branch 65 Branch 65
65: Label 65: Label
66: 45 Load 47(rayQuery) 67: 66(bool) RayQueryProceedKHR 47(rayQuery)
68: 67(bool) RayQueryProceedKHR 66 BranchConditional 67 62 63
BranchConditional 68 62 63
62: Label 62: Label
72: 14(int) RayQueryGetIntersectionTypeKHR 47(rayQuery) 19 71: 14(int) RayQueryGetIntersectionTypeKHR 47(rayQuery) 19
Store 70(candidateType) 72 Store 69(candidateType) 71
73: 14(int) Load 70(candidateType) 72: 14(int) Load 69(candidateType)
SelectionMerge 76 None SelectionMerge 75 None
Switch 73 76 Switch 72 75
case 0: 74 case 0: 73
case 1: 75 case 1: 74
73: Label
RayQueryTerminateKHR 47(rayQuery)
79: 76 RayQueryGetIntersectionObjectToWorldKHR 47(rayQuery) 19
Store 78(_mat4x3) 79
84: 76 Load 78(_mat4x3)
85: 81 Transpose 84
Store 83(_mat3x4) 85
RayQueryConfirmIntersectionKHR 47(rayQuery)
87: 66(bool) RayQueryGetIntersectionFrontFaceKHR 47(rayQuery) 23
SelectionMerge 89 None
BranchConditional 87 88 89
88: Label
90: 2 FunctionCall 6(doSomething()
Branch 89
89: Label
92: 91(fvec2) RayQueryGetIntersectionBarycentricsKHR 47(rayQuery) 23
93: 8(float) CompositeExtract 92 0
94: 66(bool) FOrdEqual 93 27
SelectionMerge 96 None
BranchConditional 94 95 96
95: Label
97: 2 FunctionCall 6(doSomething()
Branch 96
96: Label
98: 18(int) RayQueryGetIntersectionInstanceCustomIndexKHR 47(rayQuery) 23
99: 66(bool) SGreaterThan 98 19
SelectionMerge 101 None
BranchConditional 99 100 101
100: Label
102: 2 FunctionCall 6(doSomething()
Branch 101
101: Label
103: 18(int) RayQueryGetIntersectionInstanceIdKHR 47(rayQuery) 23
104: 66(bool) SGreaterThan 103 19
SelectionMerge 106 None
BranchConditional 104 105 106
105: Label
107: 2 FunctionCall 6(doSomething()
Branch 106
106: Label
108: 9(fvec3) RayQueryGetIntersectionObjectRayDirectionKHR 47(rayQuery) 23
109: 8(float) CompositeExtract 108 0
110: 66(bool) FOrdGreaterThan 109 27
SelectionMerge 112 None
BranchConditional 110 111 112
111: Label
113: 2 FunctionCall 6(doSomething()
Branch 112
112: Label
114: 9(fvec3) RayQueryGetIntersectionObjectRayOriginKHR 47(rayQuery) 23
115: 8(float) CompositeExtract 114 0
116: 66(bool) FOrdGreaterThan 115 27
SelectionMerge 118 None
BranchConditional 116 117 118
117: Label
119: 2 FunctionCall 6(doSomething()
Branch 118
118: Label
120: 18(int) RayQueryGetIntersectionPrimitiveIndexKHR 47(rayQuery) 23
121: 66(bool) SGreaterThan 120 19
SelectionMerge 123 None
BranchConditional 121 122 123
122: Label
124: 2 FunctionCall 6(doSomething()
Branch 123
123: Label
125: 8(float) RayQueryGetIntersectionTKHR 47(rayQuery) 23
126: 66(bool) FOrdGreaterThan 125 27
SelectionMerge 128 None
BranchConditional 126 127 128
127: Label
129: 2 FunctionCall 6(doSomething()
Branch 128
128: Label
130: 18(int) RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR 47(rayQuery) 23
131: 66(bool) UGreaterThan 130 20
SelectionMerge 133 None
BranchConditional 131 132 133
132: Label
134: 2 FunctionCall 6(doSomething()
Branch 133
133: Label
Branch 75
74: Label 74: Label
77: 45 Load 47(rayQuery) 136: 76 RayQueryGetIntersectionObjectToWorldKHR 47(rayQuery) 19
RayQueryTerminateKHR 77 Store 78(_mat4x3) 136
81: 78 RayQueryGetIntersectionObjectToWorldKHR 47(rayQuery) 19 137: 76 Load 78(_mat4x3)
Store 80(_mat4x3) 81 138: 81 Transpose 137
86: 78 Load 80(_mat4x3) Store 83(_mat3x4) 138
87: 83 Transpose 86 139: 66(bool) RayQueryGetIntersectionCandidateAABBOpaqueKHR 47(rayQuery)
Store 85(_mat3x4) 87 SelectionMerge 141 None
88: 45 Load 47(rayQuery) BranchConditional 139 140 141
RayQueryConfirmIntersectionKHR 88 140: Label
90: 67(bool) RayQueryGetIntersectionFrontFaceKHR 47(rayQuery) 23 142: 2 FunctionCall 6(doSomething()
SelectionMerge 92 None Branch 141
BranchConditional 90 91 92 141: Label
91: Label Store 143(t) 144
93: 2 FunctionCall 6(doSomething() 145: 8(float) Load 143(t)
Branch 92 RayQueryGenerateIntersectionKHR 47(rayQuery) 145
92: Label RayQueryTerminateKHR 47(rayQuery)
95: 94(fvec2) RayQueryGetIntersectionBarycentricsKHR 47(rayQuery) 23 Branch 75
96: 8(float) CompositeExtract 95 0 75: Label
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 Branch 64
64: Label 64: Label
Branch 61 Branch 61
63: Label 63: Label
153: 35(ptr) AccessChain 85(_mat3x4) 19 20 148: 35(ptr) AccessChain 83(_mat3x4) 19 20
154: 8(float) Load 153 149: 8(float) Load 148
155: 35(ptr) AccessChain 80(_mat4x3) 19 20 150: 35(ptr) AccessChain 78(_mat4x3) 19 20
156: 8(float) Load 155 151: 8(float) Load 150
157: 67(bool) FOrdEqual 154 156 152: 66(bool) FOrdEqual 149 151
SelectionMerge 159 None SelectionMerge 154 None
BranchConditional 157 158 159 BranchConditional 152 153 154
158: Label 153: Label
160: 2 FunctionCall 6(doSomething() 155: 2 FunctionCall 6(doSomething()
Branch 159 Branch 154
159: Label 154: Label
162: 14(int) RayQueryGetIntersectionTypeKHR 47(rayQuery) 23 157: 14(int) RayQueryGetIntersectionTypeKHR 47(rayQuery) 23
Store 161(committedStatus) 162 Store 156(committedStatus) 157
163: 14(int) Load 161(committedStatus) 158: 14(int) Load 156(committedStatus)
SelectionMerge 167 None SelectionMerge 162 None
Switch 163 167 Switch 158 162
case 0: 164 case 0: 159
case 1: 165 case 1: 160
case 2: 166 case 2: 161
164: Label 159: Label
168: 78 RayQueryGetIntersectionWorldToObjectKHR 47(rayQuery) 19 163: 76 RayQueryGetIntersectionWorldToObjectKHR 47(rayQuery) 19
Store 80(_mat4x3) 168 Store 78(_mat4x3) 163
169: 78 Load 80(_mat4x3) 164: 76 Load 78(_mat4x3)
170: 83 Transpose 169 165: 81 Transpose 164
Store 85(_mat3x4) 170 Store 83(_mat3x4) 165
Branch 167 Branch 162
165: Label 160: Label
172: 78 RayQueryGetIntersectionWorldToObjectKHR 47(rayQuery) 23 167: 76 RayQueryGetIntersectionWorldToObjectKHR 47(rayQuery) 23
Store 80(_mat4x3) 172 Store 78(_mat4x3) 167
173: 78 Load 80(_mat4x3) 168: 76 Load 78(_mat4x3)
174: 83 Transpose 173 169: 81 Transpose 168
Store 85(_mat3x4) 174 Store 83(_mat3x4) 169
175: 67(bool) RayQueryGetIntersectionFrontFaceKHR 47(rayQuery) 23 170: 66(bool) RayQueryGetIntersectionFrontFaceKHR 47(rayQuery) 23
SelectionMerge 177 None SelectionMerge 172 None
BranchConditional 175 176 177 BranchConditional 170 171 172
176: Label 171: Label
178: 2 FunctionCall 6(doSomething() 173: 2 FunctionCall 6(doSomething()
Branch 177 Branch 172
177: Label 172: Label
179: 94(fvec2) RayQueryGetIntersectionBarycentricsKHR 47(rayQuery) 23 174: 91(fvec2) RayQueryGetIntersectionBarycentricsKHR 47(rayQuery) 23
181: 8(float) CompositeExtract 179 1 176: 8(float) CompositeExtract 174 1
182: 67(bool) FOrdEqual 181 27 177: 66(bool) FOrdEqual 176 27
SelectionMerge 184 None SelectionMerge 179 None
BranchConditional 182 183 184 BranchConditional 177 178 179
183: Label 178: Label
185: 2 FunctionCall 6(doSomething() 180: 2 FunctionCall 6(doSomething()
Branch 184 Branch 179
184: Label 179: Label
Branch 167 Branch 162
166: Label 161: Label
187: 18(int) RayQueryGetIntersectionGeometryIndexKHR 47(rayQuery) 23 182: 18(int) RayQueryGetIntersectionGeometryIndexKHR 47(rayQuery) 23
188: 67(bool) SGreaterThan 187 19 183: 66(bool) SGreaterThan 182 19
SelectionMerge 185 None
BranchConditional 183 184 185
184: Label
186: 2 FunctionCall 6(doSomething()
Branch 185
185: Label
187: 18(int) RayQueryGetIntersectionInstanceIdKHR 47(rayQuery) 23
188: 66(bool) SGreaterThan 187 19
SelectionMerge 190 None SelectionMerge 190 None
BranchConditional 188 189 190 BranchConditional 188 189 190
189: Label 189: Label
191: 2 FunctionCall 6(doSomething() 191: 2 FunctionCall 6(doSomething()
Branch 190 Branch 190
190: Label 190: Label
192: 18(int) RayQueryGetIntersectionInstanceIdKHR 47(rayQuery) 23 192: 18(int) RayQueryGetIntersectionInstanceCustomIndexKHR 47(rayQuery) 23
193: 67(bool) SGreaterThan 192 19 193: 66(bool) SGreaterThan 192 19
SelectionMerge 195 None SelectionMerge 195 None
BranchConditional 193 194 195 BranchConditional 193 194 195
194: Label 194: Label
196: 2 FunctionCall 6(doSomething() 196: 2 FunctionCall 6(doSomething()
Branch 195 Branch 195
195: Label 195: Label
197: 18(int) RayQueryGetIntersectionInstanceCustomIndexKHR 47(rayQuery) 23 197: 9(fvec3) RayQueryGetIntersectionObjectRayDirectionKHR 47(rayQuery) 23
198: 67(bool) SGreaterThan 197 19 199: 8(float) CompositeExtract 197 2
SelectionMerge 200 None 200: 66(bool) FOrdGreaterThan 199 27
BranchConditional 198 199 200 SelectionMerge 202 None
199: Label BranchConditional 200 201 202
201: 2 FunctionCall 6(doSomething() 201: Label
Branch 200 203: 2 FunctionCall 6(doSomething()
200: Label Branch 202
202: 9(fvec3) RayQueryGetIntersectionObjectRayDirectionKHR 47(rayQuery) 23 202: Label
204: 8(float) CompositeExtract 202 2 204: 9(fvec3) RayQueryGetIntersectionObjectRayOriginKHR 47(rayQuery) 23
205: 67(bool) FOrdGreaterThan 204 27 205: 8(float) CompositeExtract 204 0
SelectionMerge 207 None 206: 66(bool) FOrdGreaterThan 205 27
BranchConditional 205 206 207 SelectionMerge 208 None
206: Label BranchConditional 206 207 208
208: 2 FunctionCall 6(doSomething() 207: Label
Branch 207 209: 2 FunctionCall 6(doSomething()
207: Label Branch 208
209: 9(fvec3) RayQueryGetIntersectionObjectRayOriginKHR 47(rayQuery) 23 208: Label
210: 8(float) CompositeExtract 209 0 210: 18(int) RayQueryGetIntersectionPrimitiveIndexKHR 47(rayQuery) 23
211: 67(bool) FOrdGreaterThan 210 27 211: 66(bool) SGreaterThan 210 19
SelectionMerge 213 None SelectionMerge 213 None
BranchConditional 211 212 213 BranchConditional 211 212 213
212: Label 212: Label
214: 2 FunctionCall 6(doSomething() 214: 2 FunctionCall 6(doSomething()
Branch 213 Branch 213
213: Label 213: Label
215: 18(int) RayQueryGetIntersectionPrimitiveIndexKHR 47(rayQuery) 23 215: 8(float) RayQueryGetIntersectionTKHR 47(rayQuery) 23
216: 67(bool) SGreaterThan 215 19 216: 66(bool) FOrdGreaterThan 215 27
SelectionMerge 218 None SelectionMerge 218 None
BranchConditional 216 217 218 BranchConditional 216 217 218
217: Label 217: Label
219: 2 FunctionCall 6(doSomething() 219: 2 FunctionCall 6(doSomething()
Branch 218 Branch 218
218: Label 218: Label
220: 8(float) RayQueryGetIntersectionTKHR 47(rayQuery) 23 Branch 162
221: 67(bool) FOrdGreaterThan 220 27 162: Label
SelectionMerge 223 None 222: 35(ptr) AccessChain 83(_mat3x4) 19 20
BranchConditional 221 222 223 223: 8(float) Load 222
222: Label 224: 35(ptr) AccessChain 78(_mat4x3) 19 20
224: 2 FunctionCall 6(doSomething() 225: 8(float) Load 224
Branch 223 226: 66(bool) FOrdEqual 223 225
223: Label SelectionMerge 228 None
Branch 167 BranchConditional 226 227 228
167: Label 227: Label
227: 35(ptr) AccessChain 85(_mat3x4) 19 20 229: 2 FunctionCall 6(doSomething()
228: 8(float) Load 227 Branch 228
229: 35(ptr) AccessChain 80(_mat4x3) 19 20 228: Label
230: 8(float) Load 229 230: 14(int) RayQueryGetRayFlagsKHR 47(rayQuery)
231: 67(bool) FOrdEqual 228 230 231: 66(bool) UGreaterThan 230 20
SelectionMerge 233 None SelectionMerge 233 None
BranchConditional 231 232 233 BranchConditional 231 232 233
232: Label 232: Label
234: 2 FunctionCall 6(doSomething() 234: 2 FunctionCall 6(doSomething()
Branch 233 Branch 233
233: Label 233: Label
235: 45 Load 47(rayQuery) 235: 8(float) RayQueryGetRayTMinKHR 47(rayQuery)
236: 14(int) RayQueryGetRayFlagsKHR 235 236: 66(bool) FOrdGreaterThan 235 27
237: 67(bool) UGreaterThan 236 20 SelectionMerge 238 None
SelectionMerge 239 None BranchConditional 236 237 238
BranchConditional 237 238 239 237: Label
238: Label 239: 2 FunctionCall 6(doSomething()
240: 2 FunctionCall 6(doSomething() Branch 238
Branch 239 238: Label
239: Label 241: 9(fvec3) RayQueryGetWorldRayOriginKHR 47(rayQuery)
241: 45 Load 47(rayQuery) Store 240(o) 241
242: 8(float) RayQueryGetRayTMinKHR 241 243: 9(fvec3) RayQueryGetWorldRayDirectionKHR 47(rayQuery)
243: 67(bool) FOrdGreaterThan 242 27 Store 242(d) 243
SelectionMerge 245 None 244: 35(ptr) AccessChain 240(o) 20
BranchConditional 243 244 245 245: 8(float) Load 244
244: Label 246: 35(ptr) AccessChain 242(d) 198
246: 2 FunctionCall 6(doSomething() 247: 8(float) Load 246
Branch 245 248: 66(bool) FOrdEqual 245 247
245: Label SelectionMerge 250 None
248: 45 Load 47(rayQuery) BranchConditional 248 249 250
249: 9(fvec3) RayQueryGetWorldRayOriginKHR 248 249: Label
Store 247(o) 249 251: 2 FunctionCall 6(doSomething()
251: 45 Load 47(rayQuery) Branch 250
252: 9(fvec3) RayQueryGetWorldRayDirectionKHR 251 250: Label
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 Return
FunctionEnd FunctionEnd
6(doSomething(): 2 Function None 3 6(doSomething(): 2 Function None 3

View File

@ -1,11 +1,13 @@
rayQuery-allOps.frag rayQuery-allOps.frag
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80008 // Generated by (magic number): 80008
// Id's are bound by 266 // Id's are bound by 257
Capability Shader Capability Shader
Capability VariablePointers
Capability RayQueryProvisionalKHR Capability RayQueryProvisionalKHR
Extension "SPV_KHR_ray_query" Extension "SPV_KHR_ray_query"
Extension "SPV_KHR_variable_pointers"
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" EntryPoint Fragment 4 "main"
@ -29,21 +31,21 @@ rayQuery-allOps.frag
Name 43 "ray" Name 43 "ray"
Name 47 "rayQuery" Name 47 "rayQuery"
Name 50 "rtas" Name 50 "rtas"
Name 70 "candidateType" Name 69 "candidateType"
Name 80 "_mat4x3" Name 78 "_mat4x3"
Name 85 "_mat3x4" Name 83 "_mat3x4"
Name 147 "t" Name 143 "t"
Name 161 "committedStatus" Name 156 "committedStatus"
Name 247 "o" Name 240 "o"
Name 250 "d" Name 242 "d"
Name 261 "Ray" Name 252 "Ray"
MemberName 261(Ray) 0 "pos" MemberName 252(Ray) 0 "pos"
MemberName 261(Ray) 1 "tmin" MemberName 252(Ray) 1 "tmin"
MemberName 261(Ray) 2 "dir" MemberName 252(Ray) 2 "dir"
MemberName 261(Ray) 3 "tmax" MemberName 252(Ray) 3 "tmax"
Name 263 "Rays" Name 254 "Rays"
MemberName 263(Rays) 0 "rays" MemberName 254(Rays) 0 "rays"
Name 265 "" Name 256 ""
MemberDecorate 15(Log) 0 Offset 0 MemberDecorate 15(Log) 0 Offset 0
MemberDecorate 15(Log) 1 Offset 4 MemberDecorate 15(Log) 1 Offset 4
Decorate 15(Log) BufferBlock Decorate 15(Log) BufferBlock
@ -51,15 +53,15 @@ rayQuery-allOps.frag
Decorate 17 Binding 0 Decorate 17 Binding 0
Decorate 50(rtas) DescriptorSet 0 Decorate 50(rtas) DescriptorSet 0
Decorate 50(rtas) Binding 1 Decorate 50(rtas) Binding 1
MemberDecorate 261(Ray) 0 Offset 0 MemberDecorate 252(Ray) 0 Offset 0
MemberDecorate 261(Ray) 1 Offset 12 MemberDecorate 252(Ray) 1 Offset 12
MemberDecorate 261(Ray) 2 Offset 16 MemberDecorate 252(Ray) 2 Offset 16
MemberDecorate 261(Ray) 3 Offset 28 MemberDecorate 252(Ray) 3 Offset 28
Decorate 262 ArrayStride 32 Decorate 253 ArrayStride 32
MemberDecorate 263(Rays) 0 Offset 0 MemberDecorate 254(Rays) 0 Offset 0
Decorate 263(Rays) BufferBlock Decorate 254(Rays) BufferBlock
Decorate 265 DescriptorSet 0 Decorate 256 DescriptorSet 0
Decorate 265 Binding 2 Decorate 256 Binding 2
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
8: TypeFloat 32 8: TypeFloat 32
@ -86,40 +88,40 @@ rayQuery-allOps.frag
37: 18(int) Constant 3 37: 18(int) Constant 3
38: 8(float) Constant 1176255488 38: 8(float) Constant 1176255488
45: TypeRayQueryProvisionalKHR 45: TypeRayQueryProvisionalKHR
46: TypePointer Function 45 46: TypePointer Workgroup 45
47(rayQuery): 46(ptr) Variable Workgroup
48: TypeAccelerationStructureKHR 48: TypeAccelerationStructureKHR
49: TypePointer UniformConstant 48 49: TypePointer UniformConstant 48
50(rtas): 49(ptr) Variable UniformConstant 50(rtas): 49(ptr) Variable UniformConstant
52: 14(int) Constant 255 52: 14(int) Constant 255
67: TypeBool 66: TypeBool
69: TypePointer Function 14(int) 68: TypePointer Function 14(int)
71: 67(bool) ConstantFalse 70: 66(bool) ConstantFalse
78: TypeMatrix 9(fvec3) 4 76: TypeMatrix 9(fvec3) 4
79: TypePointer Function 78 77: TypePointer Function 76
82: TypeVector 8(float) 4 80: TypeVector 8(float) 4
83: TypeMatrix 82(fvec4) 3 81: TypeMatrix 80(fvec4) 3
84: TypePointer Function 83 82: TypePointer Function 81
89: 67(bool) ConstantTrue 86: 66(bool) ConstantTrue
94: TypeVector 8(float) 2 91: TypeVector 8(float) 2
148: 8(float) Constant 1056964608 144: 8(float) Constant 1056964608
180: 14(int) Constant 1 175: 14(int) Constant 1
203: 14(int) Constant 2 198: 14(int) Constant 2
261(Ray): TypeStruct 9(fvec3) 8(float) 9(fvec3) 8(float) 252(Ray): TypeStruct 9(fvec3) 8(float) 9(fvec3) 8(float)
262: TypeRuntimeArray 261(Ray) 253: TypeRuntimeArray 252(Ray)
263(Rays): TypeStruct 262 254(Rays): TypeStruct 253
264: TypePointer Uniform 263(Rays) 255: TypePointer Uniform 254(Rays)
265: 264(ptr) Variable Uniform 256: 255(ptr) Variable Uniform
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
43(ray): 25(ptr) Variable Function 43(ray): 25(ptr) Variable Function
47(rayQuery): 46(ptr) Variable Function 69(candidateType): 68(ptr) Variable Function
70(candidateType): 69(ptr) Variable Function 78(_mat4x3): 77(ptr) Variable Function
80(_mat4x3): 79(ptr) Variable Function 83(_mat3x4): 82(ptr) Variable Function
85(_mat3x4): 84(ptr) Variable Function 143(t): 35(ptr) Variable Function
147(t): 35(ptr) Variable Function 156(committedStatus): 68(ptr) Variable Function
161(committedStatus): 69(ptr) Variable Function 240(o): 29(ptr) Variable Function
247(o): 29(ptr) Variable Function 242(d): 29(ptr) Variable Function
250(d): 29(ptr) Variable Function
44: 10(Ray) FunctionCall 12(makeRayDesc() 44: 10(Ray) FunctionCall 12(makeRayDesc()
Store 43(ray) 44 Store 43(ray) 44
51: 48 Load 50(rtas) 51: 48 Load 50(rtas)
@ -137,283 +139,274 @@ rayQuery-allOps.frag
LoopMerge 63 64 None LoopMerge 63 64 None
Branch 65 Branch 65
65: Label 65: Label
66: 45 Load 47(rayQuery) 67: 66(bool) RayQueryProceedKHR 47(rayQuery)
68: 67(bool) RayQueryProceedKHR 66 BranchConditional 67 62 63
BranchConditional 68 62 63
62: Label 62: Label
72: 14(int) RayQueryGetIntersectionTypeKHR 47(rayQuery) 19 71: 14(int) RayQueryGetIntersectionTypeKHR 47(rayQuery) 19
Store 70(candidateType) 72 Store 69(candidateType) 71
73: 14(int) Load 70(candidateType) 72: 14(int) Load 69(candidateType)
SelectionMerge 76 None SelectionMerge 75 None
Switch 73 76 Switch 72 75
case 0: 74 case 0: 73
case 1: 75 case 1: 74
73: Label
RayQueryTerminateKHR 47(rayQuery)
79: 76 RayQueryGetIntersectionObjectToWorldKHR 47(rayQuery) 19
Store 78(_mat4x3) 79
84: 76 Load 78(_mat4x3)
85: 81 Transpose 84
Store 83(_mat3x4) 85
RayQueryConfirmIntersectionKHR 47(rayQuery)
87: 66(bool) RayQueryGetIntersectionFrontFaceKHR 47(rayQuery) 23
SelectionMerge 89 None
BranchConditional 87 88 89
88: Label
90: 2 FunctionCall 6(doSomething()
Branch 89
89: Label
92: 91(fvec2) RayQueryGetIntersectionBarycentricsKHR 47(rayQuery) 23
93: 8(float) CompositeExtract 92 0
94: 66(bool) FOrdEqual 93 27
SelectionMerge 96 None
BranchConditional 94 95 96
95: Label
97: 2 FunctionCall 6(doSomething()
Branch 96
96: Label
98: 18(int) RayQueryGetIntersectionInstanceCustomIndexKHR 47(rayQuery) 23
99: 66(bool) SGreaterThan 98 19
SelectionMerge 101 None
BranchConditional 99 100 101
100: Label
102: 2 FunctionCall 6(doSomething()
Branch 101
101: Label
103: 18(int) RayQueryGetIntersectionInstanceIdKHR 47(rayQuery) 23
104: 66(bool) SGreaterThan 103 19
SelectionMerge 106 None
BranchConditional 104 105 106
105: Label
107: 2 FunctionCall 6(doSomething()
Branch 106
106: Label
108: 9(fvec3) RayQueryGetIntersectionObjectRayDirectionKHR 47(rayQuery) 23
109: 8(float) CompositeExtract 108 0
110: 66(bool) FOrdGreaterThan 109 27
SelectionMerge 112 None
BranchConditional 110 111 112
111: Label
113: 2 FunctionCall 6(doSomething()
Branch 112
112: Label
114: 9(fvec3) RayQueryGetIntersectionObjectRayOriginKHR 47(rayQuery) 23
115: 8(float) CompositeExtract 114 0
116: 66(bool) FOrdGreaterThan 115 27
SelectionMerge 118 None
BranchConditional 116 117 118
117: Label
119: 2 FunctionCall 6(doSomething()
Branch 118
118: Label
120: 18(int) RayQueryGetIntersectionPrimitiveIndexKHR 47(rayQuery) 23
121: 66(bool) SGreaterThan 120 19
SelectionMerge 123 None
BranchConditional 121 122 123
122: Label
124: 2 FunctionCall 6(doSomething()
Branch 123
123: Label
125: 8(float) RayQueryGetIntersectionTKHR 47(rayQuery) 23
126: 66(bool) FOrdGreaterThan 125 27
SelectionMerge 128 None
BranchConditional 126 127 128
127: Label
129: 2 FunctionCall 6(doSomething()
Branch 128
128: Label
130: 18(int) RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR 47(rayQuery) 23
131: 66(bool) UGreaterThan 130 20
SelectionMerge 133 None
BranchConditional 131 132 133
132: Label
134: 2 FunctionCall 6(doSomething()
Branch 133
133: Label
Branch 75
74: Label 74: Label
77: 45 Load 47(rayQuery) 136: 76 RayQueryGetIntersectionObjectToWorldKHR 47(rayQuery) 19
RayQueryTerminateKHR 77 Store 78(_mat4x3) 136
81: 78 RayQueryGetIntersectionObjectToWorldKHR 47(rayQuery) 19 137: 76 Load 78(_mat4x3)
Store 80(_mat4x3) 81 138: 81 Transpose 137
86: 78 Load 80(_mat4x3) Store 83(_mat3x4) 138
87: 83 Transpose 86 139: 66(bool) RayQueryGetIntersectionCandidateAABBOpaqueKHR 47(rayQuery)
Store 85(_mat3x4) 87 SelectionMerge 141 None
88: 45 Load 47(rayQuery) BranchConditional 139 140 141
RayQueryConfirmIntersectionKHR 88 140: Label
90: 67(bool) RayQueryGetIntersectionFrontFaceKHR 47(rayQuery) 23 142: 2 FunctionCall 6(doSomething()
SelectionMerge 92 None Branch 141
BranchConditional 90 91 92 141: Label
91: Label Store 143(t) 144
93: 2 FunctionCall 6(doSomething() 145: 8(float) Load 143(t)
Branch 92 RayQueryGenerateIntersectionKHR 47(rayQuery) 145
92: Label RayQueryTerminateKHR 47(rayQuery)
95: 94(fvec2) RayQueryGetIntersectionBarycentricsKHR 47(rayQuery) 23 Branch 75
96: 8(float) CompositeExtract 95 0 75: Label
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 Branch 64
64: Label 64: Label
Branch 61 Branch 61
63: Label 63: Label
153: 35(ptr) AccessChain 85(_mat3x4) 19 20 148: 35(ptr) AccessChain 83(_mat3x4) 19 20
154: 8(float) Load 153 149: 8(float) Load 148
155: 35(ptr) AccessChain 80(_mat4x3) 19 20 150: 35(ptr) AccessChain 78(_mat4x3) 19 20
156: 8(float) Load 155 151: 8(float) Load 150
157: 67(bool) FOrdEqual 154 156 152: 66(bool) FOrdEqual 149 151
SelectionMerge 159 None SelectionMerge 154 None
BranchConditional 157 158 159 BranchConditional 152 153 154
158: Label 153: Label
160: 2 FunctionCall 6(doSomething() 155: 2 FunctionCall 6(doSomething()
Branch 159 Branch 154
159: Label 154: Label
162: 14(int) RayQueryGetIntersectionTypeKHR 47(rayQuery) 23 157: 14(int) RayQueryGetIntersectionTypeKHR 47(rayQuery) 23
Store 161(committedStatus) 162 Store 156(committedStatus) 157
163: 14(int) Load 161(committedStatus) 158: 14(int) Load 156(committedStatus)
SelectionMerge 167 None SelectionMerge 162 None
Switch 163 167 Switch 158 162
case 0: 164 case 0: 159
case 1: 165 case 1: 160
case 2: 166 case 2: 161
164: Label 159: Label
168: 78 RayQueryGetIntersectionWorldToObjectKHR 47(rayQuery) 19 163: 76 RayQueryGetIntersectionWorldToObjectKHR 47(rayQuery) 19
Store 80(_mat4x3) 168 Store 78(_mat4x3) 163
169: 78 Load 80(_mat4x3) 164: 76 Load 78(_mat4x3)
170: 83 Transpose 169 165: 81 Transpose 164
Store 85(_mat3x4) 170 Store 83(_mat3x4) 165
Branch 167 Branch 162
165: Label 160: Label
172: 78 RayQueryGetIntersectionWorldToObjectKHR 47(rayQuery) 23 167: 76 RayQueryGetIntersectionWorldToObjectKHR 47(rayQuery) 23
Store 80(_mat4x3) 172 Store 78(_mat4x3) 167
173: 78 Load 80(_mat4x3) 168: 76 Load 78(_mat4x3)
174: 83 Transpose 173 169: 81 Transpose 168
Store 85(_mat3x4) 174 Store 83(_mat3x4) 169
175: 67(bool) RayQueryGetIntersectionFrontFaceKHR 47(rayQuery) 23 170: 66(bool) RayQueryGetIntersectionFrontFaceKHR 47(rayQuery) 23
SelectionMerge 177 None SelectionMerge 172 None
BranchConditional 175 176 177 BranchConditional 170 171 172
176: Label 171: Label
178: 2 FunctionCall 6(doSomething() 173: 2 FunctionCall 6(doSomething()
Branch 177 Branch 172
177: Label 172: Label
179: 94(fvec2) RayQueryGetIntersectionBarycentricsKHR 47(rayQuery) 23 174: 91(fvec2) RayQueryGetIntersectionBarycentricsKHR 47(rayQuery) 23
181: 8(float) CompositeExtract 179 1 176: 8(float) CompositeExtract 174 1
182: 67(bool) FOrdEqual 181 27 177: 66(bool) FOrdEqual 176 27
SelectionMerge 184 None SelectionMerge 179 None
BranchConditional 182 183 184 BranchConditional 177 178 179
183: Label 178: Label
185: 2 FunctionCall 6(doSomething() 180: 2 FunctionCall 6(doSomething()
Branch 184 Branch 179
184: Label 179: Label
Branch 167 Branch 162
166: Label 161: Label
187: 18(int) RayQueryGetIntersectionGeometryIndexKHR 47(rayQuery) 23 182: 18(int) RayQueryGetIntersectionGeometryIndexKHR 47(rayQuery) 23
188: 67(bool) SGreaterThan 187 19 183: 66(bool) SGreaterThan 182 19
SelectionMerge 185 None
BranchConditional 183 184 185
184: Label
186: 2 FunctionCall 6(doSomething()
Branch 185
185: Label
187: 18(int) RayQueryGetIntersectionInstanceIdKHR 47(rayQuery) 23
188: 66(bool) SGreaterThan 187 19
SelectionMerge 190 None SelectionMerge 190 None
BranchConditional 188 189 190 BranchConditional 188 189 190
189: Label 189: Label
191: 2 FunctionCall 6(doSomething() 191: 2 FunctionCall 6(doSomething()
Branch 190 Branch 190
190: Label 190: Label
192: 18(int) RayQueryGetIntersectionInstanceIdKHR 47(rayQuery) 23 192: 18(int) RayQueryGetIntersectionInstanceCustomIndexKHR 47(rayQuery) 23
193: 67(bool) SGreaterThan 192 19 193: 66(bool) SGreaterThan 192 19
SelectionMerge 195 None SelectionMerge 195 None
BranchConditional 193 194 195 BranchConditional 193 194 195
194: Label 194: Label
196: 2 FunctionCall 6(doSomething() 196: 2 FunctionCall 6(doSomething()
Branch 195 Branch 195
195: Label 195: Label
197: 18(int) RayQueryGetIntersectionInstanceCustomIndexKHR 47(rayQuery) 23 197: 9(fvec3) RayQueryGetIntersectionObjectRayDirectionKHR 47(rayQuery) 23
198: 67(bool) SGreaterThan 197 19 199: 8(float) CompositeExtract 197 2
SelectionMerge 200 None 200: 66(bool) FOrdGreaterThan 199 27
BranchConditional 198 199 200 SelectionMerge 202 None
199: Label BranchConditional 200 201 202
201: 2 FunctionCall 6(doSomething() 201: Label
Branch 200 203: 2 FunctionCall 6(doSomething()
200: Label Branch 202
202: 9(fvec3) RayQueryGetIntersectionObjectRayDirectionKHR 47(rayQuery) 23 202: Label
204: 8(float) CompositeExtract 202 2 204: 9(fvec3) RayQueryGetIntersectionObjectRayOriginKHR 47(rayQuery) 23
205: 67(bool) FOrdGreaterThan 204 27 205: 8(float) CompositeExtract 204 0
SelectionMerge 207 None 206: 66(bool) FOrdGreaterThan 205 27
BranchConditional 205 206 207 SelectionMerge 208 None
206: Label BranchConditional 206 207 208
208: 2 FunctionCall 6(doSomething() 207: Label
Branch 207 209: 2 FunctionCall 6(doSomething()
207: Label Branch 208
209: 9(fvec3) RayQueryGetIntersectionObjectRayOriginKHR 47(rayQuery) 23 208: Label
210: 8(float) CompositeExtract 209 0 210: 18(int) RayQueryGetIntersectionPrimitiveIndexKHR 47(rayQuery) 23
211: 67(bool) FOrdGreaterThan 210 27 211: 66(bool) SGreaterThan 210 19
SelectionMerge 213 None SelectionMerge 213 None
BranchConditional 211 212 213 BranchConditional 211 212 213
212: Label 212: Label
214: 2 FunctionCall 6(doSomething() 214: 2 FunctionCall 6(doSomething()
Branch 213 Branch 213
213: Label 213: Label
215: 18(int) RayQueryGetIntersectionPrimitiveIndexKHR 47(rayQuery) 23 215: 8(float) RayQueryGetIntersectionTKHR 47(rayQuery) 23
216: 67(bool) SGreaterThan 215 19 216: 66(bool) FOrdGreaterThan 215 27
SelectionMerge 218 None SelectionMerge 218 None
BranchConditional 216 217 218 BranchConditional 216 217 218
217: Label 217: Label
219: 2 FunctionCall 6(doSomething() 219: 2 FunctionCall 6(doSomething()
Branch 218 Branch 218
218: Label 218: Label
220: 8(float) RayQueryGetIntersectionTKHR 47(rayQuery) 23 Branch 162
221: 67(bool) FOrdGreaterThan 220 27 162: Label
SelectionMerge 223 None 222: 35(ptr) AccessChain 83(_mat3x4) 19 20
BranchConditional 221 222 223 223: 8(float) Load 222
222: Label 224: 35(ptr) AccessChain 78(_mat4x3) 19 20
224: 2 FunctionCall 6(doSomething() 225: 8(float) Load 224
Branch 223 226: 66(bool) FOrdEqual 223 225
223: Label SelectionMerge 228 None
Branch 167 BranchConditional 226 227 228
167: Label 227: Label
227: 35(ptr) AccessChain 85(_mat3x4) 19 20 229: 2 FunctionCall 6(doSomething()
228: 8(float) Load 227 Branch 228
229: 35(ptr) AccessChain 80(_mat4x3) 19 20 228: Label
230: 8(float) Load 229 230: 14(int) RayQueryGetRayFlagsKHR 47(rayQuery)
231: 67(bool) FOrdEqual 228 230 231: 66(bool) UGreaterThan 230 20
SelectionMerge 233 None SelectionMerge 233 None
BranchConditional 231 232 233 BranchConditional 231 232 233
232: Label 232: Label
234: 2 FunctionCall 6(doSomething() 234: 2 FunctionCall 6(doSomething()
Branch 233 Branch 233
233: Label 233: Label
235: 45 Load 47(rayQuery) 235: 8(float) RayQueryGetRayTMinKHR 47(rayQuery)
236: 14(int) RayQueryGetRayFlagsKHR 235 236: 66(bool) FOrdGreaterThan 235 27
237: 67(bool) UGreaterThan 236 20 SelectionMerge 238 None
SelectionMerge 239 None BranchConditional 236 237 238
BranchConditional 237 238 239 237: Label
238: Label 239: 2 FunctionCall 6(doSomething()
240: 2 FunctionCall 6(doSomething() Branch 238
Branch 239 238: Label
239: Label 241: 9(fvec3) RayQueryGetWorldRayOriginKHR 47(rayQuery)
241: 45 Load 47(rayQuery) Store 240(o) 241
242: 8(float) RayQueryGetRayTMinKHR 241 243: 9(fvec3) RayQueryGetWorldRayDirectionKHR 47(rayQuery)
243: 67(bool) FOrdGreaterThan 242 27 Store 242(d) 243
SelectionMerge 245 None 244: 35(ptr) AccessChain 240(o) 20
BranchConditional 243 244 245 245: 8(float) Load 244
244: Label 246: 35(ptr) AccessChain 242(d) 198
246: 2 FunctionCall 6(doSomething() 247: 8(float) Load 246
Branch 245 248: 66(bool) FOrdEqual 245 247
245: Label SelectionMerge 250 None
248: 45 Load 47(rayQuery) BranchConditional 248 249 250
249: 9(fvec3) RayQueryGetWorldRayOriginKHR 248 249: Label
Store 247(o) 249 251: 2 FunctionCall 6(doSomething()
251: 45 Load 47(rayQuery) Branch 250
252: 9(fvec3) RayQueryGetWorldRayDirectionKHR 251 250: Label
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 Return
FunctionEnd FunctionEnd
6(doSomething(): 2 Function None 3 6(doSomething(): 2 Function None 3

View File

@ -1,11 +1,13 @@
rayQuery-allOps.rgen rayQuery-allOps.rgen
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80008 // Generated by (magic number): 80008
// Id's are bound by 266 // Id's are bound by 257
Capability VariablePointers
Capability RayQueryProvisionalKHR Capability RayQueryProvisionalKHR
Capability RayTracingNV Capability RayTracingNV
Extension "SPV_KHR_ray_query" Extension "SPV_KHR_ray_query"
Extension "SPV_KHR_variable_pointers"
Extension "SPV_NV_ray_tracing" Extension "SPV_NV_ray_tracing"
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
@ -29,21 +31,21 @@ rayQuery-allOps.rgen
Name 43 "ray" Name 43 "ray"
Name 47 "rayQuery" Name 47 "rayQuery"
Name 50 "rtas" Name 50 "rtas"
Name 70 "candidateType" Name 69 "candidateType"
Name 80 "_mat4x3" Name 78 "_mat4x3"
Name 85 "_mat3x4" Name 83 "_mat3x4"
Name 147 "t" Name 143 "t"
Name 161 "committedStatus" Name 156 "committedStatus"
Name 247 "o" Name 240 "o"
Name 250 "d" Name 242 "d"
Name 261 "Ray" Name 252 "Ray"
MemberName 261(Ray) 0 "pos" MemberName 252(Ray) 0 "pos"
MemberName 261(Ray) 1 "tmin" MemberName 252(Ray) 1 "tmin"
MemberName 261(Ray) 2 "dir" MemberName 252(Ray) 2 "dir"
MemberName 261(Ray) 3 "tmax" MemberName 252(Ray) 3 "tmax"
Name 263 "Rays" Name 254 "Rays"
MemberName 263(Rays) 0 "rays" MemberName 254(Rays) 0 "rays"
Name 265 "" Name 256 ""
MemberDecorate 15(Log) 0 Offset 0 MemberDecorate 15(Log) 0 Offset 0
MemberDecorate 15(Log) 1 Offset 4 MemberDecorate 15(Log) 1 Offset 4
Decorate 15(Log) BufferBlock Decorate 15(Log) BufferBlock
@ -51,15 +53,15 @@ rayQuery-allOps.rgen
Decorate 17 Binding 0 Decorate 17 Binding 0
Decorate 50(rtas) DescriptorSet 0 Decorate 50(rtas) DescriptorSet 0
Decorate 50(rtas) Binding 1 Decorate 50(rtas) Binding 1
MemberDecorate 261(Ray) 0 Offset 0 MemberDecorate 252(Ray) 0 Offset 0
MemberDecorate 261(Ray) 1 Offset 12 MemberDecorate 252(Ray) 1 Offset 12
MemberDecorate 261(Ray) 2 Offset 16 MemberDecorate 252(Ray) 2 Offset 16
MemberDecorate 261(Ray) 3 Offset 28 MemberDecorate 252(Ray) 3 Offset 28
Decorate 262 ArrayStride 32 Decorate 253 ArrayStride 32
MemberDecorate 263(Rays) 0 Offset 0 MemberDecorate 254(Rays) 0 Offset 0
Decorate 263(Rays) BufferBlock Decorate 254(Rays) BufferBlock
Decorate 265 DescriptorSet 0 Decorate 256 DescriptorSet 0
Decorate 265 Binding 2 Decorate 256 Binding 2
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
8: TypeFloat 32 8: TypeFloat 32
@ -86,40 +88,40 @@ rayQuery-allOps.rgen
37: 18(int) Constant 3 37: 18(int) Constant 3
38: 8(float) Constant 1176255488 38: 8(float) Constant 1176255488
45: TypeRayQueryProvisionalKHR 45: TypeRayQueryProvisionalKHR
46: TypePointer Function 45 46: TypePointer Workgroup 45
47(rayQuery): 46(ptr) Variable Workgroup
48: TypeAccelerationStructureKHR 48: TypeAccelerationStructureKHR
49: TypePointer UniformConstant 48 49: TypePointer UniformConstant 48
50(rtas): 49(ptr) Variable UniformConstant 50(rtas): 49(ptr) Variable UniformConstant
52: 14(int) Constant 255 52: 14(int) Constant 255
67: TypeBool 66: TypeBool
69: TypePointer Function 14(int) 68: TypePointer Function 14(int)
71: 67(bool) ConstantFalse 70: 66(bool) ConstantFalse
78: TypeMatrix 9(fvec3) 4 76: TypeMatrix 9(fvec3) 4
79: TypePointer Function 78 77: TypePointer Function 76
82: TypeVector 8(float) 4 80: TypeVector 8(float) 4
83: TypeMatrix 82(fvec4) 3 81: TypeMatrix 80(fvec4) 3
84: TypePointer Function 83 82: TypePointer Function 81
89: 67(bool) ConstantTrue 86: 66(bool) ConstantTrue
94: TypeVector 8(float) 2 91: TypeVector 8(float) 2
148: 8(float) Constant 1056964608 144: 8(float) Constant 1056964608
180: 14(int) Constant 1 175: 14(int) Constant 1
203: 14(int) Constant 2 198: 14(int) Constant 2
261(Ray): TypeStruct 9(fvec3) 8(float) 9(fvec3) 8(float) 252(Ray): TypeStruct 9(fvec3) 8(float) 9(fvec3) 8(float)
262: TypeRuntimeArray 261(Ray) 253: TypeRuntimeArray 252(Ray)
263(Rays): TypeStruct 262 254(Rays): TypeStruct 253
264: TypePointer Uniform 263(Rays) 255: TypePointer Uniform 254(Rays)
265: 264(ptr) Variable Uniform 256: 255(ptr) Variable Uniform
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
43(ray): 25(ptr) Variable Function 43(ray): 25(ptr) Variable Function
47(rayQuery): 46(ptr) Variable Function 69(candidateType): 68(ptr) Variable Function
70(candidateType): 69(ptr) Variable Function 78(_mat4x3): 77(ptr) Variable Function
80(_mat4x3): 79(ptr) Variable Function 83(_mat3x4): 82(ptr) Variable Function
85(_mat3x4): 84(ptr) Variable Function 143(t): 35(ptr) Variable Function
147(t): 35(ptr) Variable Function 156(committedStatus): 68(ptr) Variable Function
161(committedStatus): 69(ptr) Variable Function 240(o): 29(ptr) Variable Function
247(o): 29(ptr) Variable Function 242(d): 29(ptr) Variable Function
250(d): 29(ptr) Variable Function
44: 10(Ray) FunctionCall 12(makeRayDesc() 44: 10(Ray) FunctionCall 12(makeRayDesc()
Store 43(ray) 44 Store 43(ray) 44
51: 48 Load 50(rtas) 51: 48 Load 50(rtas)
@ -137,283 +139,274 @@ rayQuery-allOps.rgen
LoopMerge 63 64 None LoopMerge 63 64 None
Branch 65 Branch 65
65: Label 65: Label
66: 45 Load 47(rayQuery) 67: 66(bool) RayQueryProceedKHR 47(rayQuery)
68: 67(bool) RayQueryProceedKHR 66 BranchConditional 67 62 63
BranchConditional 68 62 63
62: Label 62: Label
72: 14(int) RayQueryGetIntersectionTypeKHR 47(rayQuery) 19 71: 14(int) RayQueryGetIntersectionTypeKHR 47(rayQuery) 19
Store 70(candidateType) 72 Store 69(candidateType) 71
73: 14(int) Load 70(candidateType) 72: 14(int) Load 69(candidateType)
SelectionMerge 76 None SelectionMerge 75 None
Switch 73 76 Switch 72 75
case 0: 74 case 0: 73
case 1: 75 case 1: 74
73: Label
RayQueryTerminateKHR 47(rayQuery)
79: 76 RayQueryGetIntersectionObjectToWorldKHR 47(rayQuery) 19
Store 78(_mat4x3) 79
84: 76 Load 78(_mat4x3)
85: 81 Transpose 84
Store 83(_mat3x4) 85
RayQueryConfirmIntersectionKHR 47(rayQuery)
87: 66(bool) RayQueryGetIntersectionFrontFaceKHR 47(rayQuery) 23
SelectionMerge 89 None
BranchConditional 87 88 89
88: Label
90: 2 FunctionCall 6(doSomething()
Branch 89
89: Label
92: 91(fvec2) RayQueryGetIntersectionBarycentricsKHR 47(rayQuery) 23
93: 8(float) CompositeExtract 92 0
94: 66(bool) FOrdEqual 93 27
SelectionMerge 96 None
BranchConditional 94 95 96
95: Label
97: 2 FunctionCall 6(doSomething()
Branch 96
96: Label
98: 18(int) RayQueryGetIntersectionInstanceCustomIndexKHR 47(rayQuery) 23
99: 66(bool) SGreaterThan 98 19
SelectionMerge 101 None
BranchConditional 99 100 101
100: Label
102: 2 FunctionCall 6(doSomething()
Branch 101
101: Label
103: 18(int) RayQueryGetIntersectionInstanceIdKHR 47(rayQuery) 23
104: 66(bool) SGreaterThan 103 19
SelectionMerge 106 None
BranchConditional 104 105 106
105: Label
107: 2 FunctionCall 6(doSomething()
Branch 106
106: Label
108: 9(fvec3) RayQueryGetIntersectionObjectRayDirectionKHR 47(rayQuery) 23
109: 8(float) CompositeExtract 108 0
110: 66(bool) FOrdGreaterThan 109 27
SelectionMerge 112 None
BranchConditional 110 111 112
111: Label
113: 2 FunctionCall 6(doSomething()
Branch 112
112: Label
114: 9(fvec3) RayQueryGetIntersectionObjectRayOriginKHR 47(rayQuery) 23
115: 8(float) CompositeExtract 114 0
116: 66(bool) FOrdGreaterThan 115 27
SelectionMerge 118 None
BranchConditional 116 117 118
117: Label
119: 2 FunctionCall 6(doSomething()
Branch 118
118: Label
120: 18(int) RayQueryGetIntersectionPrimitiveIndexKHR 47(rayQuery) 23
121: 66(bool) SGreaterThan 120 19
SelectionMerge 123 None
BranchConditional 121 122 123
122: Label
124: 2 FunctionCall 6(doSomething()
Branch 123
123: Label
125: 8(float) RayQueryGetIntersectionTKHR 47(rayQuery) 23
126: 66(bool) FOrdGreaterThan 125 27
SelectionMerge 128 None
BranchConditional 126 127 128
127: Label
129: 2 FunctionCall 6(doSomething()
Branch 128
128: Label
130: 18(int) RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR 47(rayQuery) 23
131: 66(bool) UGreaterThan 130 20
SelectionMerge 133 None
BranchConditional 131 132 133
132: Label
134: 2 FunctionCall 6(doSomething()
Branch 133
133: Label
Branch 75
74: Label 74: Label
77: 45 Load 47(rayQuery) 136: 76 RayQueryGetIntersectionObjectToWorldKHR 47(rayQuery) 19
RayQueryTerminateKHR 77 Store 78(_mat4x3) 136
81: 78 RayQueryGetIntersectionObjectToWorldKHR 47(rayQuery) 19 137: 76 Load 78(_mat4x3)
Store 80(_mat4x3) 81 138: 81 Transpose 137
86: 78 Load 80(_mat4x3) Store 83(_mat3x4) 138
87: 83 Transpose 86 139: 66(bool) RayQueryGetIntersectionCandidateAABBOpaqueKHR 47(rayQuery)
Store 85(_mat3x4) 87 SelectionMerge 141 None
88: 45 Load 47(rayQuery) BranchConditional 139 140 141
RayQueryConfirmIntersectionKHR 88 140: Label
90: 67(bool) RayQueryGetIntersectionFrontFaceKHR 47(rayQuery) 23 142: 2 FunctionCall 6(doSomething()
SelectionMerge 92 None Branch 141
BranchConditional 90 91 92 141: Label
91: Label Store 143(t) 144
93: 2 FunctionCall 6(doSomething() 145: 8(float) Load 143(t)
Branch 92 RayQueryGenerateIntersectionKHR 47(rayQuery) 145
92: Label RayQueryTerminateKHR 47(rayQuery)
95: 94(fvec2) RayQueryGetIntersectionBarycentricsKHR 47(rayQuery) 23 Branch 75
96: 8(float) CompositeExtract 95 0 75: Label
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 Branch 64
64: Label 64: Label
Branch 61 Branch 61
63: Label 63: Label
153: 35(ptr) AccessChain 85(_mat3x4) 19 20 148: 35(ptr) AccessChain 83(_mat3x4) 19 20
154: 8(float) Load 153 149: 8(float) Load 148
155: 35(ptr) AccessChain 80(_mat4x3) 19 20 150: 35(ptr) AccessChain 78(_mat4x3) 19 20
156: 8(float) Load 155 151: 8(float) Load 150
157: 67(bool) FOrdEqual 154 156 152: 66(bool) FOrdEqual 149 151
SelectionMerge 159 None SelectionMerge 154 None
BranchConditional 157 158 159 BranchConditional 152 153 154
158: Label 153: Label
160: 2 FunctionCall 6(doSomething() 155: 2 FunctionCall 6(doSomething()
Branch 159 Branch 154
159: Label 154: Label
162: 14(int) RayQueryGetIntersectionTypeKHR 47(rayQuery) 23 157: 14(int) RayQueryGetIntersectionTypeKHR 47(rayQuery) 23
Store 161(committedStatus) 162 Store 156(committedStatus) 157
163: 14(int) Load 161(committedStatus) 158: 14(int) Load 156(committedStatus)
SelectionMerge 167 None SelectionMerge 162 None
Switch 163 167 Switch 158 162
case 0: 164 case 0: 159
case 1: 165 case 1: 160
case 2: 166 case 2: 161
164: Label 159: Label
168: 78 RayQueryGetIntersectionWorldToObjectKHR 47(rayQuery) 19 163: 76 RayQueryGetIntersectionWorldToObjectKHR 47(rayQuery) 19
Store 80(_mat4x3) 168 Store 78(_mat4x3) 163
169: 78 Load 80(_mat4x3) 164: 76 Load 78(_mat4x3)
170: 83 Transpose 169 165: 81 Transpose 164
Store 85(_mat3x4) 170 Store 83(_mat3x4) 165
Branch 167 Branch 162
165: Label 160: Label
172: 78 RayQueryGetIntersectionWorldToObjectKHR 47(rayQuery) 23 167: 76 RayQueryGetIntersectionWorldToObjectKHR 47(rayQuery) 23
Store 80(_mat4x3) 172 Store 78(_mat4x3) 167
173: 78 Load 80(_mat4x3) 168: 76 Load 78(_mat4x3)
174: 83 Transpose 173 169: 81 Transpose 168
Store 85(_mat3x4) 174 Store 83(_mat3x4) 169
175: 67(bool) RayQueryGetIntersectionFrontFaceKHR 47(rayQuery) 23 170: 66(bool) RayQueryGetIntersectionFrontFaceKHR 47(rayQuery) 23
SelectionMerge 177 None SelectionMerge 172 None
BranchConditional 175 176 177 BranchConditional 170 171 172
176: Label 171: Label
178: 2 FunctionCall 6(doSomething() 173: 2 FunctionCall 6(doSomething()
Branch 177 Branch 172
177: Label 172: Label
179: 94(fvec2) RayQueryGetIntersectionBarycentricsKHR 47(rayQuery) 23 174: 91(fvec2) RayQueryGetIntersectionBarycentricsKHR 47(rayQuery) 23
181: 8(float) CompositeExtract 179 1 176: 8(float) CompositeExtract 174 1
182: 67(bool) FOrdEqual 181 27 177: 66(bool) FOrdEqual 176 27
SelectionMerge 184 None SelectionMerge 179 None
BranchConditional 182 183 184 BranchConditional 177 178 179
183: Label 178: Label
185: 2 FunctionCall 6(doSomething() 180: 2 FunctionCall 6(doSomething()
Branch 184 Branch 179
184: Label 179: Label
Branch 167 Branch 162
166: Label 161: Label
187: 18(int) RayQueryGetIntersectionGeometryIndexKHR 47(rayQuery) 23 182: 18(int) RayQueryGetIntersectionGeometryIndexKHR 47(rayQuery) 23
188: 67(bool) SGreaterThan 187 19 183: 66(bool) SGreaterThan 182 19
SelectionMerge 185 None
BranchConditional 183 184 185
184: Label
186: 2 FunctionCall 6(doSomething()
Branch 185
185: Label
187: 18(int) RayQueryGetIntersectionInstanceIdKHR 47(rayQuery) 23
188: 66(bool) SGreaterThan 187 19
SelectionMerge 190 None SelectionMerge 190 None
BranchConditional 188 189 190 BranchConditional 188 189 190
189: Label 189: Label
191: 2 FunctionCall 6(doSomething() 191: 2 FunctionCall 6(doSomething()
Branch 190 Branch 190
190: Label 190: Label
192: 18(int) RayQueryGetIntersectionInstanceIdKHR 47(rayQuery) 23 192: 18(int) RayQueryGetIntersectionInstanceCustomIndexKHR 47(rayQuery) 23
193: 67(bool) SGreaterThan 192 19 193: 66(bool) SGreaterThan 192 19
SelectionMerge 195 None SelectionMerge 195 None
BranchConditional 193 194 195 BranchConditional 193 194 195
194: Label 194: Label
196: 2 FunctionCall 6(doSomething() 196: 2 FunctionCall 6(doSomething()
Branch 195 Branch 195
195: Label 195: Label
197: 18(int) RayQueryGetIntersectionInstanceCustomIndexKHR 47(rayQuery) 23 197: 9(fvec3) RayQueryGetIntersectionObjectRayDirectionKHR 47(rayQuery) 23
198: 67(bool) SGreaterThan 197 19 199: 8(float) CompositeExtract 197 2
SelectionMerge 200 None 200: 66(bool) FOrdGreaterThan 199 27
BranchConditional 198 199 200 SelectionMerge 202 None
199: Label BranchConditional 200 201 202
201: 2 FunctionCall 6(doSomething() 201: Label
Branch 200 203: 2 FunctionCall 6(doSomething()
200: Label Branch 202
202: 9(fvec3) RayQueryGetIntersectionObjectRayDirectionKHR 47(rayQuery) 23 202: Label
204: 8(float) CompositeExtract 202 2 204: 9(fvec3) RayQueryGetIntersectionObjectRayOriginKHR 47(rayQuery) 23
205: 67(bool) FOrdGreaterThan 204 27 205: 8(float) CompositeExtract 204 0
SelectionMerge 207 None 206: 66(bool) FOrdGreaterThan 205 27
BranchConditional 205 206 207 SelectionMerge 208 None
206: Label BranchConditional 206 207 208
208: 2 FunctionCall 6(doSomething() 207: Label
Branch 207 209: 2 FunctionCall 6(doSomething()
207: Label Branch 208
209: 9(fvec3) RayQueryGetIntersectionObjectRayOriginKHR 47(rayQuery) 23 208: Label
210: 8(float) CompositeExtract 209 0 210: 18(int) RayQueryGetIntersectionPrimitiveIndexKHR 47(rayQuery) 23
211: 67(bool) FOrdGreaterThan 210 27 211: 66(bool) SGreaterThan 210 19
SelectionMerge 213 None SelectionMerge 213 None
BranchConditional 211 212 213 BranchConditional 211 212 213
212: Label 212: Label
214: 2 FunctionCall 6(doSomething() 214: 2 FunctionCall 6(doSomething()
Branch 213 Branch 213
213: Label 213: Label
215: 18(int) RayQueryGetIntersectionPrimitiveIndexKHR 47(rayQuery) 23 215: 8(float) RayQueryGetIntersectionTKHR 47(rayQuery) 23
216: 67(bool) SGreaterThan 215 19 216: 66(bool) FOrdGreaterThan 215 27
SelectionMerge 218 None SelectionMerge 218 None
BranchConditional 216 217 218 BranchConditional 216 217 218
217: Label 217: Label
219: 2 FunctionCall 6(doSomething() 219: 2 FunctionCall 6(doSomething()
Branch 218 Branch 218
218: Label 218: Label
220: 8(float) RayQueryGetIntersectionTKHR 47(rayQuery) 23 Branch 162
221: 67(bool) FOrdGreaterThan 220 27 162: Label
SelectionMerge 223 None 222: 35(ptr) AccessChain 83(_mat3x4) 19 20
BranchConditional 221 222 223 223: 8(float) Load 222
222: Label 224: 35(ptr) AccessChain 78(_mat4x3) 19 20
224: 2 FunctionCall 6(doSomething() 225: 8(float) Load 224
Branch 223 226: 66(bool) FOrdEqual 223 225
223: Label SelectionMerge 228 None
Branch 167 BranchConditional 226 227 228
167: Label 227: Label
227: 35(ptr) AccessChain 85(_mat3x4) 19 20 229: 2 FunctionCall 6(doSomething()
228: 8(float) Load 227 Branch 228
229: 35(ptr) AccessChain 80(_mat4x3) 19 20 228: Label
230: 8(float) Load 229 230: 14(int) RayQueryGetRayFlagsKHR 47(rayQuery)
231: 67(bool) FOrdEqual 228 230 231: 66(bool) UGreaterThan 230 20
SelectionMerge 233 None SelectionMerge 233 None
BranchConditional 231 232 233 BranchConditional 231 232 233
232: Label 232: Label
234: 2 FunctionCall 6(doSomething() 234: 2 FunctionCall 6(doSomething()
Branch 233 Branch 233
233: Label 233: Label
235: 45 Load 47(rayQuery) 235: 8(float) RayQueryGetRayTMinKHR 47(rayQuery)
236: 14(int) RayQueryGetRayFlagsKHR 235 236: 66(bool) FOrdGreaterThan 235 27
237: 67(bool) UGreaterThan 236 20 SelectionMerge 238 None
SelectionMerge 239 None BranchConditional 236 237 238
BranchConditional 237 238 239 237: Label
238: Label 239: 2 FunctionCall 6(doSomething()
240: 2 FunctionCall 6(doSomething() Branch 238
Branch 239 238: Label
239: Label 241: 9(fvec3) RayQueryGetWorldRayOriginKHR 47(rayQuery)
241: 45 Load 47(rayQuery) Store 240(o) 241
242: 8(float) RayQueryGetRayTMinKHR 241 243: 9(fvec3) RayQueryGetWorldRayDirectionKHR 47(rayQuery)
243: 67(bool) FOrdGreaterThan 242 27 Store 242(d) 243
SelectionMerge 245 None 244: 35(ptr) AccessChain 240(o) 20
BranchConditional 243 244 245 245: 8(float) Load 244
244: Label 246: 35(ptr) AccessChain 242(d) 198
246: 2 FunctionCall 6(doSomething() 247: 8(float) Load 246
Branch 245 248: 66(bool) FOrdEqual 245 247
245: Label SelectionMerge 250 None
248: 45 Load 47(rayQuery) BranchConditional 248 249 250
249: 9(fvec3) RayQueryGetWorldRayOriginKHR 248 249: Label
Store 247(o) 249 251: 2 FunctionCall 6(doSomething()
251: 45 Load 47(rayQuery) Branch 250
252: 9(fvec3) RayQueryGetWorldRayDirectionKHR 251 250: Label
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 Return
FunctionEnd FunctionEnd
6(doSomething(): 2 Function None 3 6(doSomething(): 2 Function None 3

View File

@ -1,11 +1,13 @@
rayQuery-array-2d-dynamic.rgen rayQuery-array-2d-dynamic.rgen
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80008 // Generated by (magic number): 80008
// Id's are bound by 128 // Id's are bound by 124
Capability VariablePointers
Capability RayQueryProvisionalKHR Capability RayQueryProvisionalKHR
Capability RayTracingNV Capability RayTracingNV
Extension "SPV_KHR_ray_query" Extension "SPV_KHR_ray_query"
Extension "SPV_KHR_variable_pointers"
Extension "SPV_NV_ray_tracing" Extension "SPV_NV_ray_tracing"
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
@ -37,11 +39,9 @@ rayQuery-array-2d-dynamic.rgen
MemberName 74(Rays) 0 "rays" MemberName 74(Rays) 0 "rays"
Name 76 "" Name 76 ""
Name 91 "rayQuery" Name 91 "rayQuery"
Name 93 "param" Name 94 "param"
Name 96 "param" Name 118 "C"
Name 120 "C" Name 121 "param"
Name 122 "param"
Name 125 "param"
Decorate 23(gl_LaunchIDNV) BuiltIn LaunchIdKHR Decorate 23(gl_LaunchIDNV) BuiltIn LaunchIdKHR
Decorate 28(gl_LaunchSizeNV) BuiltIn LaunchSizeKHR Decorate 28(gl_LaunchSizeNV) BuiltIn LaunchSizeKHR
Decorate 50(rtas) DescriptorSet 0 Decorate 50(rtas) DescriptorSet 0
@ -60,7 +60,7 @@ rayQuery-array-2d-dynamic.rgen
6: TypeInt 32 0 6: TypeInt 32 0
7: TypeFunction 6(int) 7: TypeFunction 6(int)
10: TypeRayQueryProvisionalKHR 10: TypeRayQueryProvisionalKHR
11: TypePointer Function 10 11: TypePointer Workgroup 10
12: TypeFloat 32 12: TypeFloat 32
13: TypeVector 12(float) 3 13: TypeVector 12(float) 3
14(Ray): TypeStruct 13(fvec3) 12(float) 13(fvec3) 12(float) 14(Ray): TypeStruct 13(fvec3) 12(float) 13(fvec3) 12(float)
@ -93,19 +93,17 @@ rayQuery-array-2d-dynamic.rgen
76: 75(ptr) Variable Uniform 76: 75(ptr) Variable Uniform
78: TypePointer Uniform 72(Ray) 78: TypePointer Uniform 72(Ray)
89: TypeArray 10 24 89: TypeArray 10 24
90: TypePointer Function 89 90: TypePointer Workgroup 89
110: 6(int) Constant 32 91(rayQuery): 90(ptr) Variable Workgroup
119: TypePointer Private 53(int) 108: 6(int) Constant 32
120(C): 119(ptr) Variable Private 117: TypePointer Private 53(int)
118(C): 117(ptr) Variable Private
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
69(index): 68(ptr) Variable Function 69(index): 68(ptr) Variable Function
71(ray): 15(ptr) Variable Function 71(ray): 15(ptr) Variable Function
91(rayQuery): 90(ptr) Variable Function 94(param): 15(ptr) Variable Function
93(param): 11(ptr) Variable Function 121(param): 15(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() 70: 6(int) FunctionCall 8(launchIndex()
Store 69(index) 70 Store 69(index) 70
77: 6(int) Load 69(index) 77: 6(int) Load 69(index)
@ -124,42 +122,38 @@ rayQuery-array-2d-dynamic.rgen
88: 59(ptr) AccessChain 71(ray) 65 88: 59(ptr) AccessChain 71(ray) 65
Store 88 87 Store 88 87
92: 6(int) Load 69(index) 92: 6(int) Load 69(index)
94: 11(ptr) AccessChain 91(rayQuery) 54 93: 11(ptr) AccessChain 91(rayQuery) 54
95: 10 Load 94 95: 78(ptr) AccessChain 76 54 92
Store 93(param) 95 96: 72(Ray) Load 95
97: 78(ptr) AccessChain 76 54 92 97: 13(fvec3) CompositeExtract 96 0
98: 72(Ray) Load 97 98: 55(ptr) AccessChain 94(param) 54
99: 13(fvec3) CompositeExtract 98 0 Store 98 97
100: 55(ptr) AccessChain 96(param) 54 99: 12(float) CompositeExtract 96 1
100: 59(ptr) AccessChain 94(param) 58
Store 100 99 Store 100 99
101: 12(float) CompositeExtract 98 1 101: 13(fvec3) CompositeExtract 96 2
102: 59(ptr) AccessChain 96(param) 58 102: 55(ptr) AccessChain 94(param) 62
Store 102 101 Store 102 101
103: 13(fvec3) CompositeExtract 98 2 103: 12(float) CompositeExtract 96 3
104: 55(ptr) AccessChain 96(param) 62 104: 59(ptr) AccessChain 94(param) 65
Store 104 103 Store 104 103
105: 12(float) CompositeExtract 98 3 105: 2 FunctionCall 19(doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;) 93 94(param)
106: 59(ptr) AccessChain 96(param) 65 106: 11(ptr) AccessChain 91(rayQuery) 58
Store 106 105 107: 48 Load 50(rtas)
107: 2 FunctionCall 19(doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;) 93(param) 96(param) 109: 55(ptr) AccessChain 71(ray) 54
108: 11(ptr) AccessChain 91(rayQuery) 58 110: 13(fvec3) Load 109
109: 48 Load 50(rtas) 111: 59(ptr) AccessChain 71(ray) 58
111: 55(ptr) AccessChain 71(ray) 54 112: 12(float) Load 111
112: 13(fvec3) Load 111 113: 55(ptr) AccessChain 71(ray) 62
113: 59(ptr) AccessChain 71(ray) 58 114: 13(fvec3) Load 113
114: 12(float) Load 113 115: 59(ptr) AccessChain 71(ray) 65
115: 55(ptr) AccessChain 71(ray) 62 116: 12(float) Load 115
116: 13(fvec3) Load 115 RayQueryInitializeKHR 106 107 33 108 110 112 114 116
117: 59(ptr) AccessChain 71(ray) 65 119: 53(int) Load 118(C)
118: 12(float) Load 117 120: 11(ptr) AccessChain 91(rayQuery) 119
RayQueryInitializeKHR 108 109 33 110 112 114 116 118 122: 14(Ray) Load 71(ray)
121: 53(int) Load 120(C) Store 121(param) 122
123: 11(ptr) AccessChain 91(rayQuery) 121 123: 2 FunctionCall 19(doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;) 120 121(param)
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 Return
FunctionEnd FunctionEnd
8(launchIndex(): 6(int) Function None 7 8(launchIndex(): 6(int) Function None 7

View File

@ -3,9 +3,11 @@ rayQuery-decls.rgen
// Generated by (magic number): 80008 // Generated by (magic number): 80008
// Id's are bound by 130 // Id's are bound by 130
Capability VariablePointers
Capability RayQueryProvisionalKHR Capability RayQueryProvisionalKHR
Capability RayTracingNV Capability RayTracingNV
Extension "SPV_KHR_ray_query" Extension "SPV_KHR_ray_query"
Extension "SPV_KHR_variable_pointers"
Extension "SPV_NV_ray_tracing" Extension "SPV_NV_ray_tracing"
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
@ -90,29 +92,29 @@ rayQuery-decls.rgen
69: TypeRayQueryProvisionalKHR 69: TypeRayQueryProvisionalKHR
70: 6(int) Constant 4 70: 6(int) Constant 4
71: TypeArray 69 70 71: TypeArray 69 70
72: TypePointer Function 71 72: TypePointer Workgroup 71
73(g_rayQueryArray): 72(ptr) Variable Workgroup
74(block): TypeStruct 6(int) 74(block): TypeStruct 6(int)
75: TypePointer ShaderRecordBufferKHR 74(block) 75: TypePointer ShaderRecordBufferKHR 74(block)
76: 75(ptr) Variable ShaderRecordBufferKHR 76: 75(ptr) Variable ShaderRecordBufferKHR
77: TypePointer ShaderRecordBufferKHR 6(int) 77: TypePointer ShaderRecordBufferKHR 6(int)
80: TypePointer Function 69 80: TypePointer Workgroup 69
81(rayQuery0b): 80(ptr) Variable Workgroup
86(rayQuery0a): 80(ptr) Variable Workgroup
89(rayQuery0c): 80(ptr) Variable Workgroup
94: TypeAccelerationStructureKHR 94: TypeAccelerationStructureKHR
95: TypePointer UniformConstant 94 95: TypePointer UniformConstant 94
96(rtas): 95(ptr) Variable UniformConstant 96(rtas): 95(ptr) Variable UniformConstant
98: 6(int) Constant 16 98: 6(int) Constant 16
107(rayQuery1c): 80(ptr) Variable Workgroup
109: 6(int) Constant 32 109: 6(int) Constant 32
119: 6(int) Constant 3 119: 6(int) Constant 3
120: 6(int) Constant 64 120: 6(int) Constant 64
129(g_rayQueryUnused): 80(ptr) Variable Workgroup
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
38(index): 37(ptr) Variable Function 38(index): 37(ptr) Variable Function
44(ray): 43(ptr) Variable Function 44(ray): 43(ptr) Variable Function
73(g_rayQueryArray): 72(ptr) Variable Function
81(rayQuery0b): 80(ptr) Variable Function
86(rayQuery0a): 80(ptr) Variable Function
89(rayQuery0c): 80(ptr) Variable Function
107(rayQuery1c): 80(ptr) Variable Function
129(g_rayQueryUnused): 80(ptr) Variable Function
39: 6(int) FunctionCall 8(launchIndex() 39: 6(int) FunctionCall 8(launchIndex()
Store 38(index) 39 Store 38(index) 39
52: 6(int) Load 38(index) 52: 6(int) Load 38(index)

View File

@ -1,11 +1,13 @@
rayQuery-initialize.rgen rayQuery-initialize.rgen
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80008 // Generated by (magic number): 80008
// Id's are bound by 105 // Id's are bound by 103
Capability VariablePointers
Capability RayQueryProvisionalKHR Capability RayQueryProvisionalKHR
Capability RayTracingNV Capability RayTracingNV
Extension "SPV_KHR_ray_query" Extension "SPV_KHR_ray_query"
Extension "SPV_KHR_variable_pointers"
Extension "SPV_NV_ray_tracing" Extension "SPV_NV_ray_tracing"
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
@ -38,7 +40,6 @@ rayQuery-initialize.rgen
Name 76 "" Name 76 ""
Name 89 "rayQuery" Name 89 "rayQuery"
Name 90 "param" Name 90 "param"
Name 92 "param"
Decorate 23(gl_LaunchIDNV) BuiltIn LaunchIdKHR Decorate 23(gl_LaunchIDNV) BuiltIn LaunchIdKHR
Decorate 28(gl_LaunchSizeNV) BuiltIn LaunchSizeKHR Decorate 28(gl_LaunchSizeNV) BuiltIn LaunchSizeKHR
Decorate 50(rtas) DescriptorSet 0 Decorate 50(rtas) DescriptorSet 0
@ -57,7 +58,7 @@ rayQuery-initialize.rgen
6: TypeInt 32 0 6: TypeInt 32 0
7: TypeFunction 6(int) 7: TypeFunction 6(int)
10: TypeRayQueryProvisionalKHR 10: TypeRayQueryProvisionalKHR
11: TypePointer Function 10 11: TypePointer Workgroup 10
12: TypeFloat 32 12: TypeFloat 32
13: TypeVector 12(float) 3 13: TypeVector 12(float) 3
14(Ray): TypeStruct 13(fvec3) 12(float) 13(fvec3) 12(float) 14(Ray): TypeStruct 13(fvec3) 12(float) 13(fvec3) 12(float)
@ -89,14 +90,13 @@ rayQuery-initialize.rgen
75: TypePointer Uniform 74(Rays) 75: TypePointer Uniform 74(Rays)
76: 75(ptr) Variable Uniform 76: 75(ptr) Variable Uniform
78: TypePointer Uniform 72(Ray) 78: TypePointer Uniform 72(Ray)
96: 6(int) Constant 32 89(rayQuery): 11(ptr) Variable Workgroup
94: 6(int) Constant 32
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
69(index): 68(ptr) Variable Function 69(index): 68(ptr) Variable Function
71(ray): 15(ptr) Variable Function 71(ray): 15(ptr) Variable Function
89(rayQuery): 11(ptr) Variable Function 90(param): 15(ptr) Variable Function
90(param): 11(ptr) Variable Function
92(param): 15(ptr) Variable Function
70: 6(int) FunctionCall 8(launchIndex() 70: 6(int) FunctionCall 8(launchIndex()
Store 69(index) 70 Store 69(index) 70
77: 6(int) Load 69(index) 77: 6(int) Load 69(index)
@ -114,21 +114,19 @@ rayQuery-initialize.rgen
87: 12(float) CompositeExtract 80 3 87: 12(float) CompositeExtract 80 3
88: 59(ptr) AccessChain 71(ray) 65 88: 59(ptr) AccessChain 71(ray) 65
Store 88 87 Store 88 87
91: 10 Load 89(rayQuery) 91: 14(Ray) Load 71(ray)
Store 90(param) 91 Store 90(param) 91
93: 14(Ray) Load 71(ray) 92: 2 FunctionCall 19(doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;) 89(rayQuery) 90(param)
Store 92(param) 93 93: 48 Load 50(rtas)
94: 2 FunctionCall 19(doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;) 90(param) 92(param) 95: 55(ptr) AccessChain 71(ray) 54
95: 48 Load 50(rtas) 96: 13(fvec3) Load 95
97: 55(ptr) AccessChain 71(ray) 54 97: 59(ptr) AccessChain 71(ray) 58
98: 13(fvec3) Load 97 98: 12(float) Load 97
99: 59(ptr) AccessChain 71(ray) 58 99: 55(ptr) AccessChain 71(ray) 62
100: 12(float) Load 99 100: 13(fvec3) Load 99
101: 55(ptr) AccessChain 71(ray) 62 101: 59(ptr) AccessChain 71(ray) 65
102: 13(fvec3) Load 101 102: 12(float) Load 101
103: 59(ptr) AccessChain 71(ray) 65 RayQueryInitializeKHR 89(rayQuery) 93 33 94 96 98 100 102
104: 12(float) Load 103
RayQueryInitializeKHR 89(rayQuery) 95 33 96 98 100 102 104
Return Return
FunctionEnd FunctionEnd
8(launchIndex(): 6(int) Function None 7 8(launchIndex(): 6(int) Function None 7

View File

@ -1,11 +1,13 @@
rayQuery-no-cse.rgen rayQuery-no-cse.rgen
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80008 // Generated by (magic number): 80008
// Id's are bound by 111 // Id's are bound by 107
Capability VariablePointers
Capability RayQueryProvisionalKHR Capability RayQueryProvisionalKHR
Capability RayTracingNV Capability RayTracingNV
Extension "SPV_KHR_ray_query" Extension "SPV_KHR_ray_query"
Extension "SPV_KHR_variable_pointers"
Extension "SPV_NV_ray_tracing" Extension "SPV_NV_ray_tracing"
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
@ -38,10 +40,8 @@ rayQuery-no-cse.rgen
Name 76 "" Name 76 ""
Name 89 "rayQuery1" Name 89 "rayQuery1"
Name 90 "param" Name 90 "param"
Name 92 "param" Name 103 "rayQuery2"
Name 105 "rayQuery2" Name 104 "param"
Name 106 "param"
Name 108 "param"
Decorate 23(gl_LaunchIDNV) BuiltIn LaunchIdKHR Decorate 23(gl_LaunchIDNV) BuiltIn LaunchIdKHR
Decorate 28(gl_LaunchSizeNV) BuiltIn LaunchSizeKHR Decorate 28(gl_LaunchSizeNV) BuiltIn LaunchSizeKHR
Decorate 50(rtas) DescriptorSet 0 Decorate 50(rtas) DescriptorSet 0
@ -60,7 +60,7 @@ rayQuery-no-cse.rgen
6: TypeInt 32 0 6: TypeInt 32 0
7: TypeFunction 6(int) 7: TypeFunction 6(int)
10: TypeRayQueryProvisionalKHR 10: TypeRayQueryProvisionalKHR
11: TypePointer Function 10 11: TypePointer Workgroup 10
12: TypeFloat 32 12: TypeFloat 32
13: TypeVector 12(float) 3 13: TypeVector 12(float) 3
14(Ray): TypeStruct 13(fvec3) 12(float) 13(fvec3) 12(float) 14(Ray): TypeStruct 13(fvec3) 12(float) 13(fvec3) 12(float)
@ -92,17 +92,15 @@ rayQuery-no-cse.rgen
75: TypePointer Uniform 74(Rays) 75: TypePointer Uniform 74(Rays)
76: 75(ptr) Variable Uniform 76: 75(ptr) Variable Uniform
78: TypePointer Uniform 72(Ray) 78: TypePointer Uniform 72(Ray)
96: 6(int) Constant 32 89(rayQuery1): 11(ptr) Variable Workgroup
94: 6(int) Constant 32
103(rayQuery2): 11(ptr) Variable Workgroup
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
69(index): 68(ptr) Variable Function 69(index): 68(ptr) Variable Function
71(ray): 15(ptr) Variable Function 71(ray): 15(ptr) Variable Function
89(rayQuery1): 11(ptr) Variable Function 90(param): 15(ptr) Variable Function
90(param): 11(ptr) Variable Function 104(param): 15(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() 70: 6(int) FunctionCall 8(launchIndex()
Store 69(index) 70 Store 69(index) 70
77: 6(int) Load 69(index) 77: 6(int) Load 69(index)
@ -120,26 +118,22 @@ rayQuery-no-cse.rgen
87: 12(float) CompositeExtract 80 3 87: 12(float) CompositeExtract 80 3
88: 59(ptr) AccessChain 71(ray) 65 88: 59(ptr) AccessChain 71(ray) 65
Store 88 87 Store 88 87
91: 10 Load 89(rayQuery1) 91: 14(Ray) Load 71(ray)
Store 90(param) 91 Store 90(param) 91
93: 14(Ray) Load 71(ray) 92: 2 FunctionCall 19(doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;) 89(rayQuery1) 90(param)
Store 92(param) 93 93: 48 Load 50(rtas)
94: 2 FunctionCall 19(doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;) 90(param) 92(param) 95: 55(ptr) AccessChain 71(ray) 54
95: 48 Load 50(rtas) 96: 13(fvec3) Load 95
97: 55(ptr) AccessChain 71(ray) 54 97: 59(ptr) AccessChain 71(ray) 58
98: 13(fvec3) Load 97 98: 12(float) Load 97
99: 59(ptr) AccessChain 71(ray) 58 99: 55(ptr) AccessChain 71(ray) 62
100: 12(float) Load 99 100: 13(fvec3) Load 99
101: 55(ptr) AccessChain 71(ray) 62 101: 59(ptr) AccessChain 71(ray) 65
102: 13(fvec3) Load 101 102: 12(float) Load 101
103: 59(ptr) AccessChain 71(ray) 65 RayQueryInitializeKHR 89(rayQuery1) 93 33 94 96 98 100 102
104: 12(float) Load 103 105: 14(Ray) Load 71(ray)
RayQueryInitializeKHR 89(rayQuery1) 95 33 96 98 100 102 104 Store 104(param) 105
107: 10 Load 105(rayQuery2) 106: 2 FunctionCall 19(doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;) 103(rayQuery2) 104(param)
Store 106(param) 107
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 Return
FunctionEnd FunctionEnd
8(launchIndex(): 6(int) Function None 7 8(launchIndex(): 6(int) Function None 7

View File

@ -1,11 +1,13 @@
rayQuery.rgen rayQuery.rgen
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80008 // Generated by (magic number): 80008
// Id's are bound by 46 // Id's are bound by 44
Capability VariablePointers
Capability RayQueryProvisionalKHR Capability RayQueryProvisionalKHR
Capability RayTracingNV Capability RayTracingNV
Extension "SPV_KHR_ray_query" Extension "SPV_KHR_ray_query"
Extension "SPV_KHR_variable_pointers"
Extension "SPV_NV_ray_tracing" Extension "SPV_NV_ray_tracing"
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
@ -38,7 +40,8 @@ rayQuery.rgen
13: 10(float) Constant 0 13: 10(float) Constant 0
15: 10(float) Constant 1148846080 15: 10(float) Constant 1148846080
16: TypeRayQueryProvisionalKHR 16: TypeRayQueryProvisionalKHR
17: TypePointer Function 16 17: TypePointer Workgroup 16
18(localRayQuery): 17(ptr) Variable Workgroup
19: TypeAccelerationStructureKHR 19: TypeAccelerationStructureKHR
20: TypePointer UniformConstant 19 20: TypePointer UniformConstant 19
21(accNV0): 20(ptr) Variable UniformConstant 21(accNV0): 20(ptr) Variable UniformConstant
@ -51,13 +54,12 @@ rayQuery.rgen
30: 29(int) Constant 1 30: 29(int) Constant 1
31: TypePointer ShaderRecordBufferKHR 25(fvec3) 31: TypePointer ShaderRecordBufferKHR 25(fvec3)
35: 29(int) Constant 0 35: 29(int) Constant 0
40: TypeBool 39: TypeBool
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
8(rayFlags): 7(ptr) Variable Function 8(rayFlags): 7(ptr) Variable Function
12(tMin): 11(ptr) Variable Function 12(tMin): 11(ptr) Variable Function
14(tMax): 11(ptr) Variable Function 14(tMax): 11(ptr) Variable Function
18(localRayQuery): 17(ptr) Variable Function
Store 8(rayFlags) 9 Store 8(rayFlags) 9
Store 12(tMin) 13 Store 12(tMin) 13
Store 14(tMax) 15 Store 14(tMax) 15
@ -70,15 +72,13 @@ rayQuery.rgen
37: 25(fvec3) Load 36 37: 25(fvec3) Load 36
38: 10(float) Load 14(tMax) 38: 10(float) Load 14(tMax)
RayQueryInitializeKHR 18(localRayQuery) 22 23 24 33 34 37 38 RayQueryInitializeKHR 18(localRayQuery) 22 23 24 33 34 37 38
39: 16 Load 18(localRayQuery) 40: 39(bool) RayQueryProceedKHR 18(localRayQuery)
41: 40(bool) RayQueryProceedKHR 39 41: 39(bool) LogicalNot 40
42: 40(bool) LogicalNot 41 SelectionMerge 43 None
SelectionMerge 44 None BranchConditional 41 42 43
BranchConditional 42 43 44 42: Label
43: Label RayQueryTerminateKHR 18(localRayQuery)
45: 16 Load 18(localRayQuery) Branch 43
RayQueryTerminateKHR 45 43: Label
Branch 44
44: Label
Return Return
FunctionEnd FunctionEnd

View File

@ -1674,7 +1674,7 @@ public:
} }
virtual bool isOpaque() const { return basicType == EbtSampler virtual bool isOpaque() const { return basicType == EbtSampler
#ifndef GLSLANG_WEB #ifndef GLSLANG_WEB
|| basicType == EbtAtomicUint || basicType == EbtAccStruct || basicType == EbtAtomicUint || basicType == EbtAccStruct || basicType == EbtRayQuery
#endif #endif
; } ; }
virtual bool isBuiltIn() const { return getQualifier().builtIn != EbvNone; } virtual bool isBuiltIn() const { return getQualifier().builtIn != EbvNone; }