rayQuery.rgen
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 44

                              Capability RayQueryKHR
                              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 8  "rayFlags"
                              Name 12  "tMin"
                              Name 14  "tMax"
                              Name 18  "localRayQuery"
                              Name 21  "acc0"
                              Name 26  "block"
                              MemberName 26(block) 0  "dir"
                              MemberName 26(block) 1  "origin"
                              Name 28  ""
                              Decorate 21(acc0) DescriptorSet 0
                              Decorate 21(acc0) Binding 0
                              MemberDecorate 26(block) 0 Offset 0
                              MemberDecorate 26(block) 1 Offset 16
                              Decorate 26(block) BufferBlock
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
               7:             TypePointer Function 6(int)
               9:      6(int) Constant 9
              10:             TypeFloat 32
              11:             TypePointer Function 10(float)
              13:   10(float) Constant 0
              15:   10(float) Constant 1148846080
              16:             TypeRayQueryKHR
              17:             TypePointer Private 16
18(localRayQuery):     17(ptr) Variable Private
              19:             TypeAccelerationStructureKHR
              20:             TypePointer UniformConstant 19
        21(acc0):     20(ptr) Variable UniformConstant
              24:      6(int) Constant 255
              25:             TypeVector 10(float) 3
       26(block):             TypeStruct 25(fvec3) 25(fvec3)
              27:             TypePointer ShaderRecordBufferKHR 26(block)
              28:     27(ptr) Variable ShaderRecordBufferKHR
              29:             TypeInt 32 1
              30:     29(int) Constant 1
              31:             TypePointer ShaderRecordBufferKHR 25(fvec3)
              35:     29(int) Constant 0
              39:             TypeBool
         4(main):           2 Function None 3
               5:             Label
     8(rayFlags):      7(ptr) Variable Function
        12(tMin):     11(ptr) Variable Function
        14(tMax):     11(ptr) Variable Function
                              Store 8(rayFlags) 9
                              Store 12(tMin) 13
                              Store 14(tMax) 15
              22:          19 Load 21(acc0)
              23:      6(int) Load 8(rayFlags)
              32:     31(ptr) AccessChain 28 30
              33:   25(fvec3) Load 32
              34:   10(float) Load 12(tMin)
              36:     31(ptr) AccessChain 28 35
              37:   25(fvec3) Load 36
              38:   10(float) Load 14(tMax)
                              RayQueryInitializeKHR 18(localRayQuery) 22 23 24 33 34 37 38
              40:    39(bool) RayQueryProceedKHR 18(localRayQuery)
              41:    39(bool) LogicalNot 40
                              SelectionMerge 43 None
                              BranchConditional 41 42 43
              42:               Label
                                RayQueryTerminateKHR 18(localRayQuery)
                                Branch 43
              43:             Label
                              Return
                              FunctionEnd
