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

                              Capability Int64
                              Capability RayTracingKHR
                              Extension  "SPV_KHR_ray_tracing"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint RayGenerationKHR 4  "main" 11 21 38 60
                              Source GLSL 460
                              SourceExtension  "GL_ARB_gpu_shader_int64"
                              SourceExtension  "GL_EXT_ray_tracing"
                              SourceExtension  "GL_EXT_scalar_block_layout"
                              Name 4  "main"
                              Name 8  "lx"
                              Name 11  "gl_LaunchIDEXT"
                              Name 16  "ly"
                              Name 20  "sx"
                              Name 21  "gl_LaunchSizeEXT"
                              Name 24  "sy"
                              Name 36  "block"
                              MemberName 36(block) 0  "dir"
                              MemberName 36(block) 1  "origin"
                              MemberName 36(block) 2  "i"
                              MemberName 36(block) 3  "aHandle32"
                              MemberName 36(block) 4  "aHandle64"
                              MemberName 36(block) 5  "arr"
                              MemberName 36(block) 6  "a"
                              MemberName 36(block) 7  "arr3"
                              MemberName 36(block) 8  "packme"
                              MemberName 36(block) 9  "b"
                              MemberName 36(block) 10  "c"
                              Name 38  ""
                              Name 60  "payload"
                              Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR
                              Decorate 21(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR
                              Decorate 34 ArrayStride 8
                              Decorate 35 ArrayStride 12
                              MemberDecorate 36(block) 0 Offset 0
                              MemberDecorate 36(block) 1 Offset 12
                              MemberDecorate 36(block) 2 Offset 24
                              MemberDecorate 36(block) 3 Offset 28
                              MemberDecorate 36(block) 4 Offset 40
                              MemberDecorate 36(block) 5 Offset 48
                              MemberDecorate 36(block) 6 Offset 64
                              MemberDecorate 36(block) 7 Offset 68
                              MemberDecorate 36(block) 8 Offset 92
                              MemberDecorate 36(block) 9 Offset 96
                              MemberDecorate 36(block) 10 Offset 104
                              Decorate 36(block) Block
                              Decorate 38 DescriptorSet 0
                              Decorate 38 Binding 0
                              Decorate 60(payload) Location 1
               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:             TypeFloat 32
              28:             TypeVector 27(float) 3
              29:             TypeInt 32 1
              30:             TypeVector 6(int) 2
              31:             TypeInt 64 0
              32:             TypeVector 27(float) 2
              33:      6(int) Constant 2
              34:             TypeArray 32(fvec2) 33
              35:             TypeArray 28(fvec3) 33
       36(block):             TypeStruct 28(fvec3) 28(fvec3) 29(int) 30(ivec2) 31(int64_t) 34 27(float) 35 27(float) 32(fvec2) 27(float)
              37:             TypePointer ShaderRecordBufferKHR 36(block)
              38:     37(ptr) Variable ShaderRecordBufferKHR
              39:     29(int) Constant 3
              40:             TypePointer ShaderRecordBufferKHR 30(ivec2)
              43:             TypeAccelerationStructureKHR
              49:     29(int) Constant 1
              50:             TypePointer ShaderRecordBufferKHR 28(fvec3)
              53:   27(float) Constant 1056964608
              54:     29(int) Constant 0
              57:   27(float) Constant 1061158912
              58:             TypeVector 27(float) 4
              59:             TypePointer RayPayloadKHR 58(fvec4)
     60(payload):     59(ptr) Variable RayPayloadKHR
              61:     29(int) Constant 4
              62:             TypePointer ShaderRecordBufferKHR 31(int64_t)
         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
              41:     40(ptr) AccessChain 38 39
              42:   30(ivec2) Load 41
              44:          43 ConvertUToAccelerationStructureKHR 42
              45:      6(int) Load 8(lx)
              46:      6(int) Load 16(ly)
              47:      6(int) Load 20(sx)
              48:      6(int) Load 24(sy)
              51:     50(ptr) AccessChain 38 49
              52:   28(fvec3) Load 51
              55:     50(ptr) AccessChain 38 54
              56:   28(fvec3) Load 55
                              TraceRayKHR 44 45 46 47 48 12 52 53 56 57 60(payload)
              63:     62(ptr) AccessChain 38 61
              64: 31(int64_t) Load 63
              65:          43 ConvertUToAccelerationStructureKHR 64
              66:      6(int) Load 8(lx)
              67:      6(int) Load 16(ly)
              68:      6(int) Load 20(sx)
              69:      6(int) Load 24(sy)
              70:     50(ptr) AccessChain 38 49
              71:   28(fvec3) Load 70
              72:     50(ptr) AccessChain 38 54
              73:   28(fvec3) Load 72
                              TraceRayKHR 65 66 67 68 69 12 71 53 73 57 60(payload)
                              Return
                              FunctionEnd
