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

                              Capability RayTracingNV
                              Extension  "SPV_NV_ray_tracing"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint RayGenerationNV 4  "main"
                              Source GLSL 460
                              SourceExtension  "GL_NV_ray_tracing"
                              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:             TypeAccelerationStructureNV
               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 RayPayloadNV 24(fvec4)
     26(payload):     25(ptr) Variable RayPayloadNV
         4(main):           2 Function None 3
               5:             Label
               9:           6 Load 8(accNV)
                              TraceNV 9 11 12 13 13 12 17 18 20 21 23
                              Return
                              FunctionEnd
