rayQuery-types.comp
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 86

                              Capability Shader
                              Capability RayQueryKHR
                              Extension  "SPV_KHR_ray_query"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint GLCompute 4  "main"
                              ExecutionMode 4 LocalSize 16 8 1
                              Source GLSL 460
                              SourceExtension  "GL_EXT_ray_query"
                              Name 4  "main"
                              Name 8  "rayQuery"
                              Name 11  "tlas"
                              Name 25  "rq_proceed"
                              Name 35  "intersectionType"
                              Name 41  "rayTMin"
                              Name 43  "rayFlags"
                              Name 46  "worldRayOrigin"
                              Name 48  "worldDirection"
                              Name 50  "intersectionT"
                              Name 53  "customIndex"
                              Name 55  "instanceId"
                              Name 57  "sbtOffset"
                              Name 59  "geometryIndex"
                              Name 61  "primitiveIndex"
                              Name 65  "barys"
                              Name 67  "frontface"
                              Name 69  "aabbOpaque"
                              Name 71  "objRayDirection"
                              Name 73  "objRayOrigin"
                              Name 77  "objToWorld"
                              Name 79  "worldToObj"
                              Decorate 11(tlas) DescriptorSet 0
                              Decorate 11(tlas) Binding 0
                              Decorate 85 BuiltIn WorkgroupSize
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeRayQueryKHR
               7:             TypePointer Private 6
     8(rayQuery):      7(ptr) Variable Private
               9:             TypeAccelerationStructureKHR
              10:             TypePointer UniformConstant 9
        11(tlas):     10(ptr) Variable UniformConstant
              13:             TypeInt 32 0
              14:     13(int) Constant 0
              15:     13(int) Constant 255
              16:             TypeFloat 32
              17:             TypeVector 16(float) 3
              18:   16(float) Constant 0
              19:   17(fvec3) ConstantComposite 18 18 18
              20:   16(float) Constant 1065353216
              21:   17(fvec3) ConstantComposite 20 18 18
              22:   16(float) Constant 1176256512
              23:             TypeBool
              24:             TypePointer Function 23(bool)
              34:             TypePointer Function 13(int)
              36:    23(bool) ConstantTrue
              37:             TypeInt 32 1
              38:     37(int) Constant 1
              40:             TypePointer Function 16(float)
              45:             TypePointer Function 17(fvec3)
              52:             TypePointer Function 37(int)
              63:             TypeVector 16(float) 2
              64:             TypePointer Function 63(fvec2)
              75:             TypeMatrix 17(fvec3) 4
              76:             TypePointer Function 75
              81:             TypeVector 13(int) 3
              82:     13(int) Constant 16
              83:     13(int) Constant 8
              84:     13(int) Constant 1
              85:   81(ivec3) ConstantComposite 82 83 84
         4(main):           2 Function None 3
               5:             Label
  25(rq_proceed):     24(ptr) Variable Function
35(intersectionType):     34(ptr) Variable Function
     41(rayTMin):     40(ptr) Variable Function
    43(rayFlags):     34(ptr) Variable Function
46(worldRayOrigin):     45(ptr) Variable Function
48(worldDirection):     45(ptr) Variable Function
50(intersectionT):     40(ptr) Variable Function
 53(customIndex):     52(ptr) Variable Function
  55(instanceId):     52(ptr) Variable Function
   57(sbtOffset):     34(ptr) Variable Function
59(geometryIndex):     52(ptr) Variable Function
61(primitiveIndex):     52(ptr) Variable Function
       65(barys):     64(ptr) Variable Function
   67(frontface):     24(ptr) Variable Function
  69(aabbOpaque):     24(ptr) Variable Function
71(objRayDirection):     45(ptr) Variable Function
73(objRayOrigin):     45(ptr) Variable Function
  77(objToWorld):     76(ptr) Variable Function
  79(worldToObj):     76(ptr) Variable Function
              12:           9 Load 11(tlas)
                              RayQueryInitializeKHR 8(rayQuery) 12 14 15 19 18 21 22
              26:    23(bool) RayQueryProceedKHR 8(rayQuery)
                              Store 25(rq_proceed) 26
                              Branch 27
              27:             Label
                              LoopMerge 29 30 None
                              Branch 31
              31:             Label
              32:    23(bool) Load 25(rq_proceed)
                              BranchConditional 32 28 29
              28:               Label
              33:    23(bool)   RayQueryProceedKHR 8(rayQuery)
                                Store 25(rq_proceed) 33
                                Branch 30
              30:               Label
                                Branch 27
              29:             Label
              39:     13(int) RayQueryGetIntersectionTypeKHR 8(rayQuery) 38
                              Store 35(intersectionType) 39
              42:   16(float) RayQueryGetRayTMinKHR 8(rayQuery)
                              Store 41(rayTMin) 42
              44:     13(int) RayQueryGetRayFlagsKHR 8(rayQuery)
                              Store 43(rayFlags) 44
              47:   17(fvec3) RayQueryGetWorldRayOriginKHR 8(rayQuery)
                              Store 46(worldRayOrigin) 47
              49:   17(fvec3) RayQueryGetWorldRayDirectionKHR 8(rayQuery)
                              Store 48(worldDirection) 49
              51:   16(float) RayQueryGetIntersectionTKHR 8(rayQuery) 38
                              Store 50(intersectionT) 51
              54:     37(int) RayQueryGetIntersectionInstanceCustomIndexKHR 8(rayQuery) 38
                              Store 53(customIndex) 54
              56:     37(int) RayQueryGetIntersectionInstanceIdKHR 8(rayQuery) 38
                              Store 55(instanceId) 56
              58:     13(int) RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR 8(rayQuery) 38
                              Store 57(sbtOffset) 58
              60:     37(int) RayQueryGetIntersectionGeometryIndexKHR 8(rayQuery) 38
                              Store 59(geometryIndex) 60
              62:     37(int) RayQueryGetIntersectionPrimitiveIndexKHR 8(rayQuery) 38
                              Store 61(primitiveIndex) 62
              66:   63(fvec2) RayQueryGetIntersectionBarycentricsKHR 8(rayQuery) 38
                              Store 65(barys) 66
              68:    23(bool) RayQueryGetIntersectionFrontFaceKHR 8(rayQuery) 38
                              Store 67(frontface) 68
              70:    23(bool) RayQueryGetIntersectionCandidateAABBOpaqueKHR 8(rayQuery)
                              Store 69(aabbOpaque) 70
              72:   17(fvec3) RayQueryGetIntersectionObjectRayDirectionKHR 8(rayQuery) 38
                              Store 71(objRayDirection) 72
              74:   17(fvec3) RayQueryGetIntersectionObjectRayOriginKHR 8(rayQuery) 38
                              Store 73(objRayOrigin) 74
              78:          75 RayQueryGetIntersectionObjectToWorldKHR 8(rayQuery) 38
                              Store 77(objToWorld) 78
              80:          75 RayQueryGetIntersectionWorldToObjectKHR 8(rayQuery) 38
                              Store 79(worldToObj) 80
                              Return
                              FunctionEnd
