spv.ext.MissShader.rmiss
// Module Version 10400
// Generated by (magic number): 8000a
// Id's are bound by 90

                              Capability MinLod
                              Capability GroupNonUniform
                              Capability GroupNonUniformBallot
                              Capability SubgroupBallotKHR
                              Capability RayTracingKHR
                              Capability ShaderSMBuiltinsNV
                              Extension  "SPV_KHR_ray_tracing"
                              Extension  "SPV_KHR_shader_ballot"
                              Extension  "SPV_NV_shader_sm_builtins"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint MissKHR 4  "main" 11 14 21 24 29 32 36 51 53 58 63 74 78 85 89
                              Source GLSL 460
                              SourceExtension  "GL_ARB_shader_ballot"
                              SourceExtension  "GL_ARB_sparse_texture_clamp"
                              SourceExtension  "GL_EXT_ray_tracing"
                              SourceExtension  "GL_KHR_shader_subgroup_ballot"
                              SourceExtension  "GL_KHR_shader_subgroup_basic"
                              SourceExtension  "GL_NV_shader_sm_builtins"
                              Name 4  "main"
                              Name 9  "v0"
                              Name 11  "gl_LaunchIDEXT"
                              Name 13  "v1"
                              Name 14  "gl_LaunchSizeEXT"
                              Name 19  "v2"
                              Name 21  "gl_WorldRayOriginEXT"
                              Name 23  "v3"
                              Name 24  "gl_WorldRayDirectionEXT"
                              Name 27  "v4"
                              Name 29  "gl_RayTminEXT"
                              Name 31  "v5"
                              Name 32  "gl_RayTmaxEXT"
                              Name 36  "accEXT"
                              Name 51  "incomingPayload"
                              Name 53  "gl_SubGroupSizeARB"
                              Name 58  "gl_SubgroupEqMask"
                              Name 63  "gl_WarpIDNV"
                              Name 70  "texel"
                              Name 74  "s2D"
                              Name 78  "c2"
                              Name 85  "lodClamp"
                              Name 89  "localPayload"
                              Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR
                              Decorate 14(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR
                              Decorate 21(gl_WorldRayOriginEXT) BuiltIn WorldRayOriginKHR
                              Decorate 24(gl_WorldRayDirectionEXT) BuiltIn WorldRayDirectionKHR
                              Decorate 29(gl_RayTminEXT) BuiltIn RayTminKHR
                              Decorate 32(gl_RayTmaxEXT) BuiltIn RayTmaxKHR
                              Decorate 36(accEXT) DescriptorSet 0
                              Decorate 36(accEXT) Binding 0
                              Decorate 51(incomingPayload) Location 1
                              Decorate 53(gl_SubGroupSizeARB) BuiltIn SubgroupSize
                              Decorate 53(gl_SubGroupSizeARB) Volatile
                              Decorate 53(gl_SubGroupSizeARB) Coherent
                              Decorate 58(gl_SubgroupEqMask) BuiltIn SubgroupEqMaskKHR
                              Decorate 58(gl_SubgroupEqMask) Volatile
                              Decorate 58(gl_SubgroupEqMask) Coherent
                              Decorate 63(gl_WarpIDNV) BuiltIn WarpIDNV
                              Decorate 63(gl_WarpIDNV) Volatile
                              Decorate 63(gl_WarpIDNV) Coherent
                              Decorate 74(s2D) DescriptorSet 0
                              Decorate 74(s2D) Binding 1
                              Decorate 78(c2) Location 2
                              Decorate 85(lodClamp) Location 3
                              Decorate 89(localPayload) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
               7:             TypeVector 6(int) 3
               8:             TypePointer Function 7(ivec3)
              10:             TypePointer Input 7(ivec3)
11(gl_LaunchIDEXT):     10(ptr) Variable Input
14(gl_LaunchSizeEXT):     10(ptr) Variable Input
              16:             TypeFloat 32
              17:             TypeVector 16(float) 3
              18:             TypePointer Function 17(fvec3)
              20:             TypePointer Input 17(fvec3)
21(gl_WorldRayOriginEXT):     20(ptr) Variable Input
24(gl_WorldRayDirectionEXT):     20(ptr) Variable Input
              26:             TypePointer Function 16(float)
              28:             TypePointer Input 16(float)
29(gl_RayTminEXT):     28(ptr) Variable Input
32(gl_RayTmaxEXT):     28(ptr) Variable Input
              34:             TypeAccelerationStructureKHR
              35:             TypePointer UniformConstant 34
      36(accEXT):     35(ptr) Variable UniformConstant
              38:      6(int) Constant 0
              39:      6(int) Constant 1
              40:      6(int) Constant 2
              41:      6(int) Constant 3
              42:   16(float) Constant 1056964608
              43:   17(fvec3) ConstantComposite 42 42 42
              44:   16(float) Constant 1065353216
              45:   17(fvec3) ConstantComposite 44 44 44
              46:   16(float) Constant 1061158912
              47:             TypeInt 32 1
              48:     47(int) Constant 1
              49:             TypeVector 16(float) 4
              50:             TypePointer IncomingRayPayloadKHR 49(fvec4)
51(incomingPayload):     50(ptr) Variable IncomingRayPayloadKHR
              52:             TypePointer Input 6(int)
53(gl_SubGroupSizeARB):     52(ptr) Variable Input
              56:             TypeVector 6(int) 4
              57:             TypePointer Input 56(ivec4)
58(gl_SubgroupEqMask):     57(ptr) Variable Input
 63(gl_WarpIDNV):     52(ptr) Variable Input
              67:             TypePointer IncomingRayPayloadKHR 16(float)
              69:             TypePointer Function 49(fvec4)
              71:             TypeImage 16(float) 2D sampled format:Unknown
              72:             TypeSampledImage 71
              73:             TypePointer UniformConstant 72
         74(s2D):     73(ptr) Variable UniformConstant
              76:             TypeVector 16(float) 2
              77:             TypePointer Input 76(fvec2)
          78(c2):     77(ptr) Variable Input
              82:             TypeVector 47(int) 2
              83:     47(int) Constant 5
              84:   82(ivec2) ConstantComposite 83 83
    85(lodClamp):     28(ptr) Variable Input
              88:             TypePointer RayPayloadKHR 49(fvec4)
89(localPayload):     88(ptr) Variable RayPayloadKHR
         4(main):           2 Function None 3
               5:             Label
           9(v0):      8(ptr) Variable Function
          13(v1):      8(ptr) Variable Function
          19(v2):     18(ptr) Variable Function
          23(v3):     18(ptr) Variable Function
          27(v4):     26(ptr) Variable Function
          31(v5):     26(ptr) Variable Function
       70(texel):     69(ptr) Variable Function
              12:    7(ivec3) Load 11(gl_LaunchIDEXT)
                              Store 9(v0) 12
              15:    7(ivec3) Load 14(gl_LaunchSizeEXT)
                              Store 13(v1) 15
              22:   17(fvec3) Load 21(gl_WorldRayOriginEXT)
                              Store 19(v2) 22
              25:   17(fvec3) Load 24(gl_WorldRayDirectionEXT)
                              Store 23(v3) 25
              30:   16(float) Load 29(gl_RayTminEXT)
                              Store 27(v4) 30
              33:   16(float) Load 32(gl_RayTmaxEXT)
                              Store 31(v5) 33
              37:          34 Load 36(accEXT)
                              TraceRayKHR 37 38 39 40 41 38 43 42 45 46 51(incomingPayload)
              54:      6(int) Load 53(gl_SubGroupSizeARB)
              55:   16(float) ConvertUToF 54
              59:   56(ivec4) Load 58(gl_SubgroupEqMask)
              60:   49(fvec4) ConvertUToF 59
              61:   16(float) CompositeExtract 60 0
              62:   16(float) FAdd 55 61
              64:      6(int) Load 63(gl_WarpIDNV)
              65:   16(float) ConvertUToF 64
              66:   16(float) FAdd 62 65
              68:     67(ptr) AccessChain 51(incomingPayload) 38
                              Store 68 66
              75:          72 Load 74(s2D)
              79:   76(fvec2) Load 78(c2)
              80:   76(fvec2) Load 78(c2)
              81:   76(fvec2) Load 78(c2)
              86:   16(float) Load 85(lodClamp)
              87:   49(fvec4) ImageSampleExplicitLod 75 79 Grad ConstOffset MinLod 80 81 84 86
                              Store 70(texel) 87
                              Return
                              FunctionEnd
