| rayQuery-allOps.comp |
| // Module Version 10000 |
| // Generated by (magic number): 8000b |
| // Id's are bound by 275 |
| |
| Capability Shader |
| Capability RayQueryKHR |
| Capability RayTraversalPrimitiveCullingKHR |
| Capability RayQueryPositionFetchKHR |
| Extension "SPV_KHR_ray_query" |
| Extension "SPV_KHR_ray_tracing_position_fetch" |
| 1: ExtInstImport "GLSL.std.450" |
| MemoryModel Logical GLSL450 |
| EntryPoint GLCompute 4 "main" |
| ExecutionMode 4 LocalSize 1 1 1 |
| Source GLSL 460 |
| SourceExtension "GL_EXT_ray_flags_primitive_culling" |
| SourceExtension "GL_EXT_ray_query" |
| SourceExtension "GL_EXT_ray_tracing_position_fetch" |
| 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 184 "positions" |
| Name 258 "o" |
| Name 260 "d" |
| Name 270 "Ray" |
| MemberName 270(Ray) 0 "pos" |
| MemberName 270(Ray) 1 "tmin" |
| MemberName 270(Ray) 2 "dir" |
| MemberName 270(Ray) 3 "tmax" |
| Name 272 "Rays" |
| MemberName 272(Rays) 0 "rays" |
| Name 274 "" |
| 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 270(Ray) 0 Offset 0 |
| MemberDecorate 270(Ray) 1 Offset 12 |
| MemberDecorate 270(Ray) 2 Offset 16 |
| MemberDecorate 270(Ray) 3 Offset 28 |
| Decorate 271 ArrayStride 32 |
| MemberDecorate 272(Rays) 0 Offset 0 |
| Decorate 272(Rays) BufferBlock |
| Decorate 274 DescriptorSet 0 |
| Decorate 274 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: TypeRayQueryKHR |
| 46: TypePointer Private 45 |
| 47(rayQuery): 46(ptr) Variable Private |
| 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 |
| 181: 14(int) Constant 3 |
| 182: TypeArray 9(fvec3) 181 |
| 183: TypePointer Function 182 |
| 215: 14(int) Constant 2 |
| 248: 14(int) Constant 256 |
| 270(Ray): TypeStruct 9(fvec3) 8(float) 9(fvec3) 8(float) |
| 271: TypeRuntimeArray 270(Ray) |
| 272(Rays): TypeStruct 271 |
| 273: TypePointer Uniform 272(Rays) |
| 274: 273(ptr) Variable Uniform |
| 4(main): 2 Function None 3 |
| 5: Label |
| 43(ray): 25(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 |
| 184(positions): 183(ptr) Variable Function |
| 258(o): 29(ptr) Variable Function |
| 260(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: 14(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 |
| 185: 182 RayQueryGetIntersectionTriangleVertexPositionsKHR 47(rayQuery) 23 |
| Store 184(positions) 185 |
| 186: 35(ptr) AccessChain 184(positions) 19 20 |
| 187: 8(float) Load 186 |
| 188: 66(bool) FOrdLessThan 187 27 |
| SelectionMerge 190 None |
| BranchConditional 188 189 190 |
| 189: Label |
| 191: 35(ptr) AccessChain 184(positions) 31 175 |
| 192: 8(float) Load 191 |
| 193: 66(bool) FOrdGreaterThan 192 27 |
| Branch 190 |
| 190: Label |
| 194: 66(bool) Phi 188 179 193 189 |
| SelectionMerge 196 None |
| BranchConditional 194 195 196 |
| 195: Label |
| 197: 2 FunctionCall 6(doSomething() |
| Branch 196 |
| 196: Label |
| Branch 162 |
| 161: Label |
| 199: 18(int) RayQueryGetIntersectionGeometryIndexKHR 47(rayQuery) 23 |
| 200: 66(bool) SGreaterThan 199 19 |
| SelectionMerge 202 None |
| BranchConditional 200 201 202 |
| 201: Label |
| 203: 2 FunctionCall 6(doSomething() |
| Branch 202 |
| 202: Label |
| 204: 18(int) RayQueryGetIntersectionInstanceIdKHR 47(rayQuery) 23 |
| 205: 66(bool) SGreaterThan 204 19 |
| SelectionMerge 207 None |
| BranchConditional 205 206 207 |
| 206: Label |
| 208: 2 FunctionCall 6(doSomething() |
| Branch 207 |
| 207: Label |
| 209: 18(int) RayQueryGetIntersectionInstanceCustomIndexKHR 47(rayQuery) 23 |
| 210: 66(bool) SGreaterThan 209 19 |
| SelectionMerge 212 None |
| BranchConditional 210 211 212 |
| 211: Label |
| 213: 2 FunctionCall 6(doSomething() |
| Branch 212 |
| 212: Label |
| 214: 9(fvec3) RayQueryGetIntersectionObjectRayDirectionKHR 47(rayQuery) 23 |
| 216: 8(float) CompositeExtract 214 2 |
| 217: 66(bool) FOrdGreaterThan 216 27 |
| SelectionMerge 219 None |
| BranchConditional 217 218 219 |
| 218: Label |
| 220: 2 FunctionCall 6(doSomething() |
| Branch 219 |
| 219: Label |
| 221: 9(fvec3) RayQueryGetIntersectionObjectRayOriginKHR 47(rayQuery) 23 |
| 222: 8(float) CompositeExtract 221 0 |
| 223: 66(bool) FOrdGreaterThan 222 27 |
| SelectionMerge 225 None |
| BranchConditional 223 224 225 |
| 224: Label |
| 226: 2 FunctionCall 6(doSomething() |
| Branch 225 |
| 225: Label |
| 227: 18(int) RayQueryGetIntersectionPrimitiveIndexKHR 47(rayQuery) 23 |
| 228: 66(bool) SGreaterThan 227 19 |
| SelectionMerge 230 None |
| BranchConditional 228 229 230 |
| 229: Label |
| 231: 2 FunctionCall 6(doSomething() |
| Branch 230 |
| 230: Label |
| 232: 8(float) RayQueryGetIntersectionTKHR 47(rayQuery) 23 |
| 233: 66(bool) FOrdGreaterThan 232 27 |
| SelectionMerge 235 None |
| BranchConditional 233 234 235 |
| 234: Label |
| 236: 2 FunctionCall 6(doSomething() |
| Branch 235 |
| 235: Label |
| Branch 162 |
| 162: Label |
| 239: 35(ptr) AccessChain 83(_mat3x4) 19 20 |
| 240: 8(float) Load 239 |
| 241: 35(ptr) AccessChain 78(_mat4x3) 19 20 |
| 242: 8(float) Load 241 |
| 243: 66(bool) FOrdEqual 240 242 |
| SelectionMerge 245 None |
| BranchConditional 243 244 245 |
| 244: Label |
| 246: 2 FunctionCall 6(doSomething() |
| Branch 245 |
| 245: Label |
| 247: 14(int) RayQueryGetRayFlagsKHR 47(rayQuery) |
| 249: 66(bool) UGreaterThan 247 248 |
| SelectionMerge 251 None |
| BranchConditional 249 250 251 |
| 250: Label |
| 252: 2 FunctionCall 6(doSomething() |
| Branch 251 |
| 251: Label |
| 253: 8(float) RayQueryGetRayTMinKHR 47(rayQuery) |
| 254: 66(bool) FOrdGreaterThan 253 27 |
| SelectionMerge 256 None |
| BranchConditional 254 255 256 |
| 255: Label |
| 257: 2 FunctionCall 6(doSomething() |
| Branch 256 |
| 256: Label |
| 259: 9(fvec3) RayQueryGetWorldRayOriginKHR 47(rayQuery) |
| Store 258(o) 259 |
| 261: 9(fvec3) RayQueryGetWorldRayDirectionKHR 47(rayQuery) |
| Store 260(d) 261 |
| 262: 35(ptr) AccessChain 258(o) 20 |
| 263: 8(float) Load 262 |
| 264: 35(ptr) AccessChain 260(d) 215 |
| 265: 8(float) Load 264 |
| 266: 66(bool) FOrdEqual 263 265 |
| SelectionMerge 268 None |
| BranchConditional 266 267 268 |
| 267: Label |
| 269: 2 FunctionCall 6(doSomething() |
| Branch 268 |
| 268: 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 |