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
                              Decorate 28 DescriptorSet 0
                              Decorate 28 Binding 1
               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
