rayQuery-opacityMicromapRayQueryModeRead.comp
// Module Version 10400
// Generated by (magic number): 8000b
// Id's are bound by 36

                              Capability Shader
                              Capability RayQueryKHR
                              Capability RayTracingOpacityMicromapExecutionModeKHR
                              Extension  "SPV_KHR_opacity_micromap"
                              Extension  "SPV_KHR_ray_query"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint GLCompute 4  "main" 8 11 28
                              ExecutionMode 4 LocalSize 1 1 1
                              ExecutionModeId 4 OpacityMicromapIdKHR 31
                              Source GLSL 460
                              SourceExtension  "GL_EXT_opacity_micromap_ray_query_mode"
                              SourceExtension  "GL_EXT_ray_query"
                              Name 4  "main"
                              Name 8  "rq"
                              Name 11  "topLevelAS"
                              Name 26  "Out"
                              MemberName 26(Out) 0  "enabled"
                              Name 28  "outBuf"
                              Name 31  "gl_EnableOpacityMicromapEXT"
                              Decorate 11(topLevelAS) Binding 0
                              Decorate 11(topLevelAS) DescriptorSet 0
                              Decorate 26(Out) Block
                              MemberDecorate 26(Out) 0 Offset 0
                              Decorate 28(outBuf) Binding 1
                              Decorate 28(outBuf) DescriptorSet 0
                              Decorate 31(gl_EnableOpacityMicromapEXT) SpecId 2
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeRayQueryKHR
               7:             TypePointer Private 6
           8(rq):      7(ptr) Variable Private
               9:             TypeAccelerationStructureKHR
              10:             TypePointer UniformConstant 9
  11(topLevelAS):     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 1036831949
              21:   16(float) Constant 1065353216
              22:   17(fvec3) ConstantComposite 18 18 21
              23:   16(float) Constant 1120403456
              24:             TypeBool
         26(Out):             TypeStruct 13(int)
              27:             TypePointer StorageBuffer 26(Out)
      28(outBuf):     27(ptr) Variable StorageBuffer
              29:             TypeInt 32 1
              30:     29(int) Constant 0
31(gl_EnableOpacityMicromapEXT):    24(bool) SpecConstantFalse
              32:     13(int) Constant 1
              33:     13(int) SpecConstantOp 169 31(gl_EnableOpacityMicromapEXT) 32 14
              34:             TypePointer StorageBuffer 13(int)
         4(main):           2 Function None 3
               5:             Label
              12:           9 Load 11(topLevelAS)
                              RayQueryInitializeKHR 8(rq) 12 14 15 19 20 22 23
              25:    24(bool) RayQueryProceedKHR 8(rq)
              35:     34(ptr) AccessChain 28(outBuf) 30
                              Store 35 33
                              Return
                              FunctionEnd
