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

                              Capability RayQueryProvisionalKHR
                              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:             TypeRayQueryProvisionalKHR
              17:             TypePointer Function 16
              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
18(localRayQuery):     17(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
