spv.ext.RayConstants.rgen
// Module Version 10400
// Generated by (magic number): 8000a
// Id's are bound by 27

                              Capability RayTracingKHR
                              Extension  "SPV_KHR_ray_tracing"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint RayGenerationKHR 4  "main" 8 26
                              Source GLSL 460
                              SourceExtension  "GL_EXT_ray_tracing"
                              Name 4  "main"
                              Name 8  "accEXT"
                              Name 26  "payload"
                              Decorate 8(accEXT) DescriptorSet 0
                              Decorate 8(accEXT) Binding 0
                              Decorate 26(payload) Location 1
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeAccelerationStructureKHR
               7:             TypePointer UniformConstant 6
       8(accEXT):      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 RayPayloadKHR 24(fvec4)
     26(payload):     25(ptr) Variable RayPayloadKHR
         4(main):           2 Function None 3
               5:             Label
               9:           6 Load 8(accEXT)
                              TraceRayKHR 9 11 12 13 13 12 17 18 20 21 26(payload)
                              Return
                              FunctionEnd
