| rayQuery-allOps.rgen |
| // Module Version 10000 |
| // Generated by (magic number): 80008 |
| // Id's are bound by 265 |
| |
| Capability RayQueryProvisionalKHR |
| Capability RayTracingNV |
| Extension "SPV_KHR_ray_query" |
| Extension "SPV_NV_ray_tracing" |
| 1: ExtInstImport "GLSL.std.450" |
| MemoryModel Logical GLSL450 |
| EntryPoint RayGenerationKHR 4 "main" |
| Source GLSL 460 |
| SourceExtension "GL_EXT_ray_query" |
| SourceExtension "GL_NV_ray_tracing" |
| Name 4 "main" |
| Name 6 "doSomething(" |
| Name 10 "Ray" |
| MemberName 10(Ray) 0 "pos" |
| MemberName 10(Ray) 1 "tmin" |
| MemberName 10(Ray) 2 "dir" |
| MemberName 10(Ray) 3 "tmax" |
| Name 12 "makeRayDesc(" |
| Name 15 "Log" |
| MemberName 15(Log) 0 "x" |
| 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 "" |
| 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 |
| 2: TypeVoid |
| 3: TypeFunction 2 |
| 8: TypeFloat 32 |
| 9: TypeVector 8(float) 3 |
| 10(Ray): TypeStruct 9(fvec3) 8(float) 9(fvec3) 8(float) |
| 11: TypeFunction 10(Ray) |
| 14: TypeInt 32 0 |
| 15(Log): TypeStruct 14(int) 14(int) |
| 16: TypePointer Uniform 15(Log) |
| 17: 16(ptr) Variable Uniform |
| 18: TypeInt 32 1 |
| 19: 18(int) Constant 0 |
| 20: 14(int) Constant 0 |
| 21: TypePointer Uniform 14(int) |
| 23: 18(int) Constant 1 |
| 25: TypePointer Function 10(Ray) |
| 27: 8(float) Constant 0 |
| 28: 9(fvec3) ConstantComposite 27 27 27 |
| 29: TypePointer Function 9(fvec3) |
| 31: 18(int) Constant 2 |
| 32: 8(float) Constant 1065353216 |
| 33: 9(fvec3) ConstantComposite 32 27 27 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| Return |
| FunctionEnd |
| 6(doSomething(): 2 Function None 3 |
| 7: Label |
| 22: 21(ptr) AccessChain 17 19 |
| Store 22 20 |
| 24: 21(ptr) AccessChain 17 23 |
| Store 24 20 |
| Return |
| FunctionEnd |
| 12(makeRayDesc(): 10(Ray) Function None 11 |
| 13: Label |
| 26(ray): 25(ptr) Variable Function |
| 30: 29(ptr) AccessChain 26(ray) 19 |
| Store 30 28 |
| 34: 29(ptr) AccessChain 26(ray) 31 |
| Store 34 33 |
| 36: 35(ptr) AccessChain 26(ray) 23 |
| Store 36 27 |
| 39: 35(ptr) AccessChain 26(ray) 37 |
| Store 39 38 |
| 40: 10(Ray) Load 26(ray) |
| ReturnValue 40 |
| FunctionEnd |