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

                              Capability ShaderNonUniformEXT
                              Capability RuntimeDescriptorArrayEXT
                              Capability RayTracingNV
                              Extension  "SPV_EXT_descriptor_indexing"
                              Extension  "SPV_NV_ray_tracing"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint RayGenerationKHR 4  "main" 11 21
                              Source GLSL 460
                              SourceExtension  "GL_EXT_nonuniform_qualifier"
                              SourceExtension  "GL_NV_ray_tracing"
                              Name 4  "main"
                              Name 8  "lx"
                              Name 11  "gl_LaunchIDNV"
                              Name 16  "ly"
                              Name 20  "sx"
                              Name 21  "gl_LaunchSizeNV"
                              Name 24  "sy"
                              Name 30  "accNV0"
                              Name 34  "block"
                              MemberName 34(block) 0  "dir"
                              MemberName 34(block) 1  "origin"
                              MemberName 34(block) 2  "i"
                              Name 36  ""
                              Name 60  "accNV1"
                              Name 88  "payload"
                              Decorate 11(gl_LaunchIDNV) BuiltIn LaunchIdKHR
                              Decorate 21(gl_LaunchSizeNV) BuiltIn LaunchSizeKHR
                              Decorate 30(accNV0) DescriptorSet 0
                              Decorate 30(accNV0) Binding 0
                              MemberDecorate 34(block) 0 Offset 0
                              MemberDecorate 34(block) 1 Offset 16
                              MemberDecorate 34(block) 2 Offset 28
                              Decorate 34(block) BufferBlock
                              Decorate 36 DescriptorSet 0
                              Decorate 36 Binding 2
                              Decorate 60(accNV1) DescriptorSet 0
                              Decorate 60(accNV1) Binding 1
                              Decorate 75 DecorationNonUniformEXT
                              Decorate 76 DecorationNonUniformEXT
                              Decorate 77 DecorationNonUniformEXT
                              Decorate 88(payload) Location 0
               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_LaunchIDNV):     10(ptr) Variable Input
              12:      6(int) Constant 0
              13:             TypePointer Input 6(int)
              17:      6(int) Constant 1
21(gl_LaunchSizeNV):     10(ptr) Variable Input
              27:             TypeAccelerationStructureKHR
              28:             TypeRuntimeArray 27
              29:             TypePointer UniformConstant 28
      30(accNV0):     29(ptr) Variable UniformConstant
              31:             TypeFloat 32
              32:             TypeVector 31(float) 3
              33:             TypeInt 32 1
       34(block):             TypeStruct 32(fvec3) 32(fvec3) 33(int)
              35:             TypePointer ShaderRecordBufferKHR 34(block)
              36:     35(ptr) Variable ShaderRecordBufferKHR
              37:     33(int) Constant 2
              38:             TypePointer ShaderRecordBufferKHR 33(int)
              41:             TypePointer UniformConstant 27
              48:     33(int) Constant 1
              49:             TypePointer ShaderRecordBufferKHR 32(fvec3)
              52:   31(float) Constant 1056964608
              53:     33(int) Constant 0
              56:   31(float) Constant 1061158912
              57:      6(int) Constant 2
              58:             TypeArray 27 57
              59:             TypePointer UniformConstant 58
      60(accNV1):     59(ptr) Variable UniformConstant
              86:             TypeVector 31(float) 4
              87:             TypePointer RayPayloadKHR 86(fvec4)
     88(payload):     87(ptr) Variable RayPayloadKHR
         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_LaunchIDNV) 12
              15:      6(int) Load 14
                              Store 8(lx) 15
              18:     13(ptr) AccessChain 11(gl_LaunchIDNV) 17
              19:      6(int) Load 18
                              Store 16(ly) 19
              22:     13(ptr) AccessChain 21(gl_LaunchSizeNV) 12
              23:      6(int) Load 22
                              Store 20(sx) 23
              25:     13(ptr) AccessChain 21(gl_LaunchSizeNV) 17
              26:      6(int) Load 25
                              Store 24(sy) 26
              39:     38(ptr) AccessChain 36 37
              40:     33(int) Load 39
              42:     41(ptr) AccessChain 30(accNV0) 40
              43:          27 Load 42
              44:      6(int) Load 8(lx)
              45:      6(int) Load 16(ly)
              46:      6(int) Load 20(sx)
              47:      6(int) Load 24(sy)
              50:     49(ptr) AccessChain 36 48
              51:   32(fvec3) Load 50
              54:     49(ptr) AccessChain 36 53
              55:   32(fvec3) Load 54
                              TraceRayKHR 43 44 45 46 47 12 51 52 55 56 48
              61:     38(ptr) AccessChain 36 37
              62:     33(int) Load 61
              63:     41(ptr) AccessChain 60(accNV1) 62
              64:          27 Load 63
              65:      6(int) Load 8(lx)
              66:      6(int) Load 16(ly)
              67:      6(int) Load 20(sx)
              68:      6(int) Load 24(sy)
              69:     49(ptr) AccessChain 36 48
              70:   32(fvec3) Load 69
              71:     49(ptr) AccessChain 36 53
              72:   32(fvec3) Load 71
                              TraceRayKHR 64 65 66 67 68 12 70 52 72 56 48
              73:     38(ptr) AccessChain 36 37
              74:     33(int) Load 73
              75:     33(int) CopyObject 74
              76:     41(ptr) AccessChain 30(accNV0) 75
              77:          27 Load 76
              78:      6(int) Load 8(lx)
              79:      6(int) Load 16(ly)
              80:      6(int) Load 20(sx)
              81:      6(int) Load 24(sy)
              82:     49(ptr) AccessChain 36 48
              83:   32(fvec3) Load 82
              84:     49(ptr) AccessChain 36 53
              85:   32(fvec3) Load 84
                              TraceRayKHR 77 78 79 80 81 12 83 52 85 56 48
                              Return
                              FunctionEnd
