spv.RayGenShaderArray.rgen
// Module Version 10000
// Generated by (magic number): 80008
// 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 RayGenerationNV 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 LaunchIdNV
                              Decorate 21(gl_LaunchSizeNV) BuiltIn LaunchSizeNV
                              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 60(accNV1) DescriptorSet 0
                              Decorate 60(accNV1) Binding 1
                              Decorate 75 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:             TypeAccelerationStructureNV
              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 ShaderRecordBufferNV 34(block)
              36:     35(ptr) Variable ShaderRecordBufferNV
              37:     33(int) Constant 2
              38:             TypePointer ShaderRecordBufferNV 33(int)
              41:             TypePointer UniformConstant 27
              48:     33(int) Constant 1
              49:             TypePointer ShaderRecordBufferNV 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 RayPayloadNV 86(fvec4)
     88(payload):     87(ptr) Variable RayPayloadNV
         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
                              TraceNV 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
                              TraceNV 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
                              TraceNV 77 78 79 80 81 12 83 52 85 56 48
                              Return
                              FunctionEnd
