rayQuery-OpConvertUToAccelerationStructureKHR.comp
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 28

                              Capability Shader
                              Capability RayQueryKHR
                              Extension  "SPV_KHR_ray_query"
               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_query"
                              Name 4  "main"
                              Name 8  "rayQuery"
                              Name 11  "params"
                              MemberName 11(params) 0  "tlas"
                              Name 13  ""
                              MemberDecorate 11(params) 0 Offset 0
                              Decorate 11(params) Block
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeRayQueryKHR
               7:             TypePointer Private 6
     8(rayQuery):      7(ptr) Variable Private
               9:             TypeInt 32 0
              10:             TypeVector 9(int) 2
      11(params):             TypeStruct 10(ivec2)
              12:             TypePointer PushConstant 11(params)
              13:     12(ptr) Variable PushConstant
              14:             TypeInt 32 1
              15:     14(int) Constant 0
              16:             TypePointer PushConstant 10(ivec2)
              19:             TypeAccelerationStructureKHR
              21:      9(int) Constant 0
              22:             TypeFloat 32
              23:             TypeVector 22(float) 3
              24:   22(float) Constant 0
              25:   23(fvec3) ConstantComposite 24 24 24
              26:   22(float) Constant 1065353216
              27:   23(fvec3) ConstantComposite 26 26 26
         4(main):           2 Function None 3
               5:             Label
              17:     16(ptr) AccessChain 13 15
              18:   10(ivec2) Load 17
              20:          19 ConvertUToAccelerationStructureKHR 18
                              RayQueryInitializeKHR 8(rayQuery) 20 21 21 25 24 27 26
                              RayQueryTerminateKHR 8(rayQuery)
                              Return
                              FunctionEnd
