| rayQuery-allOps.rgen |
| // Module Version 10000 |
| // Generated by (magic number): 80009 |
| // Id's are bound by 257 |
| |
| 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 43 "ray" |
| Name 47 "rayQuery" |
| Name 50 "rtas" |
| Name 69 "candidateType" |
| Name 78 "_mat4x3" |
| Name 83 "_mat3x4" |
| Name 143 "t" |
| Name 156 "committedStatus" |
| Name 240 "o" |
| Name 242 "d" |
| Name 252 "Ray" |
| MemberName 252(Ray) 0 "pos" |
| MemberName 252(Ray) 1 "tmin" |
| MemberName 252(Ray) 2 "dir" |
| MemberName 252(Ray) 3 "tmax" |
| Name 254 "Rays" |
| MemberName 254(Rays) 0 "rays" |
| Name 256 "" |
| 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 50(rtas) DescriptorSet 0 |
| Decorate 50(rtas) Binding 1 |
| MemberDecorate 252(Ray) 0 Offset 0 |
| MemberDecorate 252(Ray) 1 Offset 12 |
| MemberDecorate 252(Ray) 2 Offset 16 |
| MemberDecorate 252(Ray) 3 Offset 28 |
| Decorate 253 ArrayStride 32 |
| MemberDecorate 254(Rays) 0 Offset 0 |
| Decorate 254(Rays) BufferBlock |
| Decorate 256 DescriptorSet 0 |
| Decorate 256 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 |
| 45: TypeRayQueryProvisionalKHR |
| 46: TypePointer Function 45 |
| 48: TypeAccelerationStructureKHR |
| 49: TypePointer UniformConstant 48 |
| 50(rtas): 49(ptr) Variable UniformConstant |
| 52: 14(int) Constant 255 |
| 66: TypeBool |
| 68: TypePointer Function 14(int) |
| 70: 66(bool) ConstantFalse |
| 76: TypeMatrix 9(fvec3) 4 |
| 77: TypePointer Function 76 |
| 80: TypeVector 8(float) 4 |
| 81: TypeMatrix 80(fvec4) 3 |
| 82: TypePointer Function 81 |
| 86: 66(bool) ConstantTrue |
| 91: TypeVector 8(float) 2 |
| 144: 8(float) Constant 1056964608 |
| 175: 14(int) Constant 1 |
| 198: 14(int) Constant 2 |
| 252(Ray): TypeStruct 9(fvec3) 8(float) 9(fvec3) 8(float) |
| 253: TypeRuntimeArray 252(Ray) |
| 254(Rays): TypeStruct 253 |
| 255: TypePointer Uniform 254(Rays) |
| 256: 255(ptr) Variable Uniform |
| 4(main): 2 Function None 3 |
| 5: Label |
| 43(ray): 25(ptr) Variable Function |
| 47(rayQuery): 46(ptr) Variable Function |
| 69(candidateType): 68(ptr) Variable Function |
| 78(_mat4x3): 77(ptr) Variable Function |
| 83(_mat3x4): 82(ptr) Variable Function |
| 143(t): 35(ptr) Variable Function |
| 156(committedStatus): 68(ptr) Variable Function |
| 240(o): 29(ptr) Variable Function |
| 242(d): 29(ptr) Variable Function |
| 44: 10(Ray) FunctionCall 12(makeRayDesc() |
| Store 43(ray) 44 |
| 51: 48 Load 50(rtas) |
| 53: 29(ptr) AccessChain 43(ray) 19 |
| 54: 9(fvec3) Load 53 |
| 55: 35(ptr) AccessChain 43(ray) 23 |
| 56: 8(float) Load 55 |
| 57: 29(ptr) AccessChain 43(ray) 31 |
| 58: 9(fvec3) Load 57 |
| 59: 35(ptr) AccessChain 43(ray) 37 |
| 60: 8(float) Load 59 |
| RayQueryInitializeKHR 47(rayQuery) 51 20 52 54 56 58 60 |
| Branch 61 |
| 61: Label |
| LoopMerge 63 64 None |
| Branch 65 |
| 65: Label |
| 67: 66(bool) RayQueryProceedKHR 47(rayQuery) |
| BranchConditional 67 62 63 |
| 62: Label |
| 71: 14(int) RayQueryGetIntersectionTypeKHR 47(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 |
| 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 |
| 136: 76 RayQueryGetIntersectionObjectToWorldKHR 47(rayQuery) 19 |
| Store 78(_mat4x3) 136 |
| 137: 76 Load 78(_mat4x3) |
| 138: 81 Transpose 137 |
| Store 83(_mat3x4) 138 |
| 139: 66(bool) RayQueryGetIntersectionCandidateAABBOpaqueKHR 47(rayQuery) |
| SelectionMerge 141 None |
| BranchConditional 139 140 141 |
| 140: Label |
| 142: 2 FunctionCall 6(doSomething() |
| Branch 141 |
| 141: Label |
| Store 143(t) 144 |
| 145: 8(float) Load 143(t) |
| RayQueryGenerateIntersectionKHR 47(rayQuery) 145 |
| RayQueryTerminateKHR 47(rayQuery) |
| Branch 75 |
| 75: Label |
| Branch 64 |
| 64: Label |
| Branch 61 |
| 63: Label |
| 148: 35(ptr) AccessChain 83(_mat3x4) 19 20 |
| 149: 8(float) Load 148 |
| 150: 35(ptr) AccessChain 78(_mat4x3) 19 20 |
| 151: 8(float) Load 150 |
| 152: 66(bool) FOrdEqual 149 151 |
| SelectionMerge 154 None |
| BranchConditional 152 153 154 |
| 153: Label |
| 155: 2 FunctionCall 6(doSomething() |
| Branch 154 |
| 154: Label |
| 157: 14(int) RayQueryGetIntersectionTypeKHR 47(rayQuery) 23 |
| Store 156(committedStatus) 157 |
| 158: 14(int) Load 156(committedStatus) |
| SelectionMerge 162 None |
| Switch 158 162 |
| case 0: 159 |
| case 1: 160 |
| case 2: 161 |
| 159: Label |
| 163: 76 RayQueryGetIntersectionWorldToObjectKHR 47(rayQuery) 19 |
| Store 78(_mat4x3) 163 |
| 164: 76 Load 78(_mat4x3) |
| 165: 81 Transpose 164 |
| Store 83(_mat3x4) 165 |
| Branch 162 |
| 160: Label |
| 167: 76 RayQueryGetIntersectionWorldToObjectKHR 47(rayQuery) 23 |
| Store 78(_mat4x3) 167 |
| 168: 76 Load 78(_mat4x3) |
| 169: 81 Transpose 168 |
| Store 83(_mat3x4) 169 |
| 170: 66(bool) RayQueryGetIntersectionFrontFaceKHR 47(rayQuery) 23 |
| SelectionMerge 172 None |
| BranchConditional 170 171 172 |
| 171: Label |
| 173: 2 FunctionCall 6(doSomething() |
| Branch 172 |
| 172: Label |
| 174: 91(fvec2) RayQueryGetIntersectionBarycentricsKHR 47(rayQuery) 23 |
| 176: 8(float) CompositeExtract 174 1 |
| 177: 66(bool) FOrdEqual 176 27 |
| SelectionMerge 179 None |
| BranchConditional 177 178 179 |
| 178: Label |
| 180: 2 FunctionCall 6(doSomething() |
| Branch 179 |
| 179: Label |
| Branch 162 |
| 161: Label |
| 182: 18(int) RayQueryGetIntersectionGeometryIndexKHR 47(rayQuery) 23 |
| 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 |
| BranchConditional 188 189 190 |
| 189: Label |
| 191: 2 FunctionCall 6(doSomething() |
| Branch 190 |
| 190: Label |
| 192: 18(int) RayQueryGetIntersectionInstanceCustomIndexKHR 47(rayQuery) 23 |
| 193: 66(bool) SGreaterThan 192 19 |
| SelectionMerge 195 None |
| BranchConditional 193 194 195 |
| 194: Label |
| 196: 2 FunctionCall 6(doSomething() |
| Branch 195 |
| 195: Label |
| 197: 9(fvec3) RayQueryGetIntersectionObjectRayDirectionKHR 47(rayQuery) 23 |
| 199: 8(float) CompositeExtract 197 2 |
| 200: 66(bool) FOrdGreaterThan 199 27 |
| SelectionMerge 202 None |
| BranchConditional 200 201 202 |
| 201: Label |
| 203: 2 FunctionCall 6(doSomething() |
| Branch 202 |
| 202: Label |
| 204: 9(fvec3) RayQueryGetIntersectionObjectRayOriginKHR 47(rayQuery) 23 |
| 205: 8(float) CompositeExtract 204 0 |
| 206: 66(bool) FOrdGreaterThan 205 27 |
| SelectionMerge 208 None |
| BranchConditional 206 207 208 |
| 207: Label |
| 209: 2 FunctionCall 6(doSomething() |
| Branch 208 |
| 208: Label |
| 210: 18(int) RayQueryGetIntersectionPrimitiveIndexKHR 47(rayQuery) 23 |
| 211: 66(bool) SGreaterThan 210 19 |
| SelectionMerge 213 None |
| BranchConditional 211 212 213 |
| 212: Label |
| 214: 2 FunctionCall 6(doSomething() |
| Branch 213 |
| 213: Label |
| 215: 8(float) RayQueryGetIntersectionTKHR 47(rayQuery) 23 |
| 216: 66(bool) FOrdGreaterThan 215 27 |
| SelectionMerge 218 None |
| BranchConditional 216 217 218 |
| 217: Label |
| 219: 2 FunctionCall 6(doSomething() |
| Branch 218 |
| 218: Label |
| Branch 162 |
| 162: Label |
| 222: 35(ptr) AccessChain 83(_mat3x4) 19 20 |
| 223: 8(float) Load 222 |
| 224: 35(ptr) AccessChain 78(_mat4x3) 19 20 |
| 225: 8(float) Load 224 |
| 226: 66(bool) FOrdEqual 223 225 |
| SelectionMerge 228 None |
| BranchConditional 226 227 228 |
| 227: Label |
| 229: 2 FunctionCall 6(doSomething() |
| Branch 228 |
| 228: Label |
| 230: 14(int) RayQueryGetRayFlagsKHR 47(rayQuery) |
| 231: 66(bool) UGreaterThan 230 20 |
| SelectionMerge 233 None |
| BranchConditional 231 232 233 |
| 232: Label |
| 234: 2 FunctionCall 6(doSomething() |
| Branch 233 |
| 233: Label |
| 235: 8(float) RayQueryGetRayTMinKHR 47(rayQuery) |
| 236: 66(bool) FOrdGreaterThan 235 27 |
| SelectionMerge 238 None |
| BranchConditional 236 237 238 |
| 237: Label |
| 239: 2 FunctionCall 6(doSomething() |
| Branch 238 |
| 238: Label |
| 241: 9(fvec3) RayQueryGetWorldRayOriginKHR 47(rayQuery) |
| Store 240(o) 241 |
| 243: 9(fvec3) RayQueryGetWorldRayDirectionKHR 47(rayQuery) |
| Store 242(d) 243 |
| 244: 35(ptr) AccessChain 240(o) 20 |
| 245: 8(float) Load 244 |
| 246: 35(ptr) AccessChain 242(d) 198 |
| 247: 8(float) Load 246 |
| 248: 66(bool) FOrdEqual 245 247 |
| SelectionMerge 250 None |
| BranchConditional 248 249 250 |
| 249: Label |
| 251: 2 FunctionCall 6(doSomething() |
| Branch 250 |
| 250: 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 |