spv.RayConstants.rgen
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 27

                              Capability RaytracingNVX
                              Extension  "SPV_NVX_raytracing"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint RayGenerationNVX 4  "main"
                              Source GLSL 460
                              SourceExtension  "GL_NVX_raytracing"
                              Name 4  "main"
                              Name 8  "accNV"
                              Name 26  "payload"
                              Decorate 8(accNV) DescriptorSet 0
                              Decorate 8(accNV) Binding 0
                              Decorate 26(payload) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeAccelerationStructureNVX
               7:             TypePointer UniformConstant 6
        8(accNV):      7(ptr) Variable UniformConstant
              10:             TypeInt 32 0
              11:     10(int) Constant 255
              12:     10(int) Constant 0
              13:     10(int) Constant 1
              14:             TypeFloat 32
              15:             TypeVector 14(float) 3
              16:   14(float) Constant 0
              17:   15(fvec3) ConstantComposite 16 16 16
              18:   14(float) Constant 1056964608
              19:   14(float) Constant 1065353216
              20:   15(fvec3) ConstantComposite 19 19 19
              21:   14(float) Constant 1061158912
              22:             TypeInt 32 1
              23:     22(int) Constant 1
              24:             TypeVector 14(float) 4
              25:             TypePointer RayPayloadNVX 24(fvec4)
     26(payload):     25(ptr) Variable RayPayloadNVX
         4(main):           2 Function None 3
               5:             Label
               9:           6 Load 8(accNV)
                              TraceNVX 9 11 12 13 13 12 17 18 20 21 23
                              Return
                              FunctionEnd
