spv.RayGenShader11.rgen
// Module Version 10300
// Generated by (magic number): 80008
// Id's are bound by 53

                              Capability RayTracingNV
                              Extension  "SPV_NV_ray_tracing"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint RayGenerationNV 4  "main" 11 21
                              Source GLSL 460
                              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 29  "accNV"
                              Name 37  "block"
                              MemberName 37(block) 0  "dir"
                              MemberName 37(block) 1  "origin"
                              Name 39  ""
                              Name 52  "payload"
                              Decorate 11(gl_LaunchIDNV) BuiltIn LaunchIdNV
                              Decorate 21(gl_LaunchSizeNV) BuiltIn LaunchSizeNV
                              Decorate 29(accNV) DescriptorSet 0
                              Decorate 29(accNV) Binding 0
                              MemberDecorate 37(block) 0 Offset 0
                              MemberDecorate 37(block) 1 Offset 16
                              Decorate 37(block) Block
                              Decorate 52(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:             TypePointer UniformConstant 27
       29(accNV):     28(ptr) Variable UniformConstant
              35:             TypeFloat 32
              36:             TypeVector 35(float) 3
       37(block):             TypeStruct 36(fvec3) 36(fvec3)
              38:             TypePointer ShaderRecordBufferNV 37(block)
              39:     38(ptr) Variable ShaderRecordBufferNV
              40:             TypeInt 32 1
              41:     40(int) Constant 1
              42:             TypePointer ShaderRecordBufferNV 36(fvec3)
              45:   35(float) Constant 1056964608
              46:     40(int) Constant 0
              49:   35(float) Constant 1061158912
              50:             TypeVector 35(float) 4
              51:             TypePointer RayPayloadNV 50(fvec4)
     52(payload):     51(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
              30:          27 Load 29(accNV)
              31:      6(int) Load 8(lx)
              32:      6(int) Load 16(ly)
              33:      6(int) Load 20(sx)
              34:      6(int) Load 24(sy)
              43:     42(ptr) AccessChain 39 41
              44:   36(fvec3) Load 43
              47:     42(ptr) AccessChain 39 46
              48:   36(fvec3) Load 47
                              TraceNV 30 31 32 33 34 12 44 45 48 49 41
                              Return
                              FunctionEnd
