spv.MissShaderMotion.rmiss
// Module Version 10400
// Generated by (magic number): 8000b
// Id's are bound by 33

                              Capability RayTracingKHR
                              Capability RayTracingMotionBlurNV
                              Extension  "SPV_KHR_ray_tracing"
                              Extension  "SPV_NV_ray_tracing_motion_blur"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint MissKHR 4  "main" 10 16 32
                              Source GLSL 460
                              SourceExtension  "GL_EXT_ray_tracing"
                              SourceExtension  "GL_NV_ray_tracing_motion_blur"
                              Name 4  "main"
                              Name 8  "time"
                              Name 10  "gl_CurrentRayTimeNV"
                              Name 16  "accEXT"
                              Name 32  "localPayloadEXT"
                              Decorate 10(gl_CurrentRayTimeNV) BuiltIn CurrentRayTimeNV
                              Decorate 16(accEXT) DescriptorSet 0
                              Decorate 16(accEXT) Binding 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypePointer Function 6(float)
               9:             TypePointer Input 6(float)
10(gl_CurrentRayTimeNV):      9(ptr) Variable Input
              12:    6(float) Constant 1056964608
              14:             TypeAccelerationStructureKHR
              15:             TypePointer UniformConstant 14
      16(accEXT):     15(ptr) Variable UniformConstant
              18:             TypeInt 32 0
              19:     18(int) Constant 0
              20:     18(int) Constant 1
              21:     18(int) Constant 2
              22:     18(int) Constant 3
              23:             TypeVector 6(float) 3
              24:   23(fvec3) ConstantComposite 12 12 12
              25:    6(float) Constant 1065353216
              26:   23(fvec3) ConstantComposite 25 25 25
              27:    6(float) Constant 1061158912
              28:             TypeInt 32 1
              29:     28(int) Constant 0
              30:             TypeVector 6(float) 4
              31:             TypePointer RayPayloadKHR 30(fvec4)
32(localPayloadEXT):     31(ptr) Variable RayPayloadKHR
         4(main):           2 Function None 3
               5:             Label
         8(time):      7(ptr) Variable Function
              11:    6(float) Load 10(gl_CurrentRayTimeNV)
              13:    6(float) FAdd 11 12
                              Store 8(time) 13
              17:          14 Load 16(accEXT)
                              TraceRayMotionNV 17 19 20 21 22 19 24 12 26 27 25 32(localPayloadEXT)
                              Return
                              FunctionEnd
