spv.ext.RayGenShader.rgen
// Module Version 10400
// Generated by (magic number): 8000a
// Id's are bound by 58

                              Capability RayTraversalPrimitiveCullingKHR
                              Capability RayTracingKHR
                              Extension  "SPV_KHR_ray_tracing"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint RayGenerationKHR 4  "main" 11 21 29 40 53 54 57
                              Source GLSL 460
                              SourceExtension  "GL_EXT_ray_flags_primitive_culling"
                              SourceExtension  "GL_EXT_ray_tracing"
                              Name 4  "main"
                              Name 8  "lx"
                              Name 11  "gl_LaunchIDEXT"
                              Name 16  "ly"
                              Name 20  "sx"
                              Name 21  "gl_LaunchSizeEXT"
                              Name 24  "sy"
                              Name 29  "accEXT0"
                              Name 38  "block"
                              MemberName 38(block) 0  "dir"
                              MemberName 38(block) 1  "origin"
                              Name 40  ""
                              Name 53  "payload"
                              Name 54  "accEXT1"
                              Name 57  "imageu"
                              Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR
                              Decorate 21(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR
                              Decorate 29(accEXT0) DescriptorSet 0
                              Decorate 29(accEXT0) Binding 0
                              MemberDecorate 38(block) 0 Offset 0
                              MemberDecorate 38(block) 1 Offset 16
                              Decorate 38(block) Block
                              Decorate 40 DescriptorSet 0
                              Decorate 40 Binding 3
                              Decorate 53(payload) Location 1
                              Decorate 54(accEXT1) DescriptorSet 0
                              Decorate 54(accEXT1) Binding 1
                              Decorate 57(imageu) DescriptorSet 0
                              Decorate 57(imageu) Binding 2
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
               7:             TypePointer Function 6(int)
               9:             TypeVector 6(int) 3
              10:             TypePointer Input 9(ivec3)
11(gl_LaunchIDEXT):     10(ptr) Variable Input
              12:      6(int) Constant 0
              13:             TypePointer Input 6(int)
              17:      6(int) Constant 1
21(gl_LaunchSizeEXT):     10(ptr) Variable Input
              27:             TypeAccelerationStructureKHR
              28:             TypePointer UniformConstant 27
     29(accEXT0):     28(ptr) Variable UniformConstant
              35:      6(int) Constant 768
              36:             TypeFloat 32
              37:             TypeVector 36(float) 3
       38(block):             TypeStruct 37(fvec3) 37(fvec3)
              39:             TypePointer ShaderRecordBufferKHR 38(block)
              40:     39(ptr) Variable ShaderRecordBufferKHR
              41:             TypeInt 32 1
              42:     41(int) Constant 1
              43:             TypePointer ShaderRecordBufferKHR 37(fvec3)
              46:   36(float) Constant 1056964608
              47:     41(int) Constant 0
              50:   36(float) Constant 1061158912
              51:             TypeVector 36(float) 4
              52:             TypePointer RayPayloadKHR 51(fvec4)
     53(payload):     52(ptr) Variable RayPayloadKHR
     54(accEXT1):     28(ptr) Variable UniformConstant
              55:             TypeImage 6(int) 2D nonsampled format:R32ui
              56:             TypePointer UniformConstant 55
      57(imageu):     56(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
           8(lx):      7(ptr) Variable Function
          16(ly):      7(ptr) Variable Function
          20(sx):      7(ptr) Variable Function
          24(sy):      7(ptr) Variable Function
              14:     13(ptr) AccessChain 11(gl_LaunchIDEXT) 12
              15:      6(int) Load 14
                              Store 8(lx) 15
              18:     13(ptr) AccessChain 11(gl_LaunchIDEXT) 17
              19:      6(int) Load 18
                              Store 16(ly) 19
              22:     13(ptr) AccessChain 21(gl_LaunchSizeEXT) 12
              23:      6(int) Load 22
                              Store 20(sx) 23
              25:     13(ptr) AccessChain 21(gl_LaunchSizeEXT) 17
              26:      6(int) Load 25
                              Store 24(sy) 26
              30:          27 Load 29(accEXT0)
              31:      6(int) Load 8(lx)
              32:      6(int) Load 16(ly)
              33:      6(int) Load 20(sx)
              34:      6(int) Load 24(sy)
              44:     43(ptr) AccessChain 40 42
              45:   37(fvec3) Load 44
              48:     43(ptr) AccessChain 40 47
              49:   37(fvec3) Load 48
                              TraceRayKHR 30 31 32 33 34 35 45 46 49 50 53(payload)
                              Return
                              FunctionEnd
