spv.ext.ClosestHitShader.rchit
// Module Version 10400
// Generated by (magic number): 8000a
// Id's are bound by 101

                              Capability RayTracingProvisionalKHR
                              Extension  "SPV_KHR_ray_tracing"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint ClosestHitKHR 4  "main" 11 14 20 23 26 33 36 39 42 47 50 53 58 64 67 70 76 80 85 98 100
                              Source GLSL 460
                              SourceExtension  "GL_EXT_ray_tracing"
                              Name 4  "main"
                              Name 9  "v0"
                              Name 11  "gl_LaunchIDEXT"
                              Name 13  "v1"
                              Name 14  "gl_LaunchSizeEXT"
                              Name 18  "v2"
                              Name 20  "gl_PrimitiveID"
                              Name 22  "v3"
                              Name 23  "gl_InstanceID"
                              Name 25  "v4"
                              Name 26  "gl_InstanceCustomIndexEXT"
                              Name 31  "v5"
                              Name 33  "gl_WorldRayOriginEXT"
                              Name 35  "v6"
                              Name 36  "gl_WorldRayDirectionEXT"
                              Name 38  "v7"
                              Name 39  "gl_ObjectRayOriginEXT"
                              Name 41  "v8"
                              Name 42  "gl_ObjectRayDirectionEXT"
                              Name 45  "v9"
                              Name 47  "gl_RayTminEXT"
                              Name 49  "v10"
                              Name 50  "gl_RayTmaxEXT"
                              Name 52  "v11"
                              Name 53  "gl_HitTEXT"
                              Name 56  "v12"
                              Name 58  "gl_HitKindEXT"
                              Name 62  "v13"
                              Name 64  "gl_ObjectToWorldEXT"
                              Name 66  "v14"
                              Name 67  "gl_WorldToObjectEXT"
                              Name 69  "v15"
                              Name 70  "gl_GeometryIndexEXT"
                              Name 75  "v16"
                              Name 76  "gl_ObjectToWorld3x4EXT"
                              Name 79  "v17"
                              Name 80  "gl_WorldToObject3x4EXT"
                              Name 85  "accEXT"
                              Name 98  "localPayload"
                              Name 100  "incomingPayload"
                              Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR
                              Decorate 14(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR
                              Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId
                              Decorate 23(gl_InstanceID) BuiltIn InstanceId
                              Decorate 26(gl_InstanceCustomIndexEXT) BuiltIn InstanceCustomIndexKHR
                              Decorate 33(gl_WorldRayOriginEXT) BuiltIn WorldRayOriginKHR
                              Decorate 36(gl_WorldRayDirectionEXT) BuiltIn WorldRayDirectionKHR
                              Decorate 39(gl_ObjectRayOriginEXT) BuiltIn ObjectRayOriginKHR
                              Decorate 42(gl_ObjectRayDirectionEXT) BuiltIn ObjectRayDirectionKHR
                              Decorate 47(gl_RayTminEXT) BuiltIn RayTminKHR
                              Decorate 50(gl_RayTmaxEXT) BuiltIn RayTmaxKHR
                              Decorate 53(gl_HitTEXT) BuiltIn HitTKHR
                              Decorate 58(gl_HitKindEXT) BuiltIn HitKindKHR
                              Decorate 64(gl_ObjectToWorldEXT) BuiltIn ObjectToWorldKHR
                              Decorate 67(gl_WorldToObjectEXT) BuiltIn WorldToObjectKHR
                              Decorate 70(gl_GeometryIndexEXT) BuiltIn RayGeometryIndexKHR
                              Decorate 76(gl_ObjectToWorld3x4EXT) BuiltIn ObjectToWorldKHR
                              Decorate 80(gl_WorldToObject3x4EXT) BuiltIn WorldToObjectKHR
                              Decorate 85(accEXT) DescriptorSet 0
                              Decorate 85(accEXT) Binding 0
                              Decorate 98(localPayload) Location 0
                              Decorate 100(incomingPayload) Location 1
               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:             TypeInt 32 1
              17:             TypePointer Function 16(int)
              19:             TypePointer Input 16(int)
20(gl_PrimitiveID):     19(ptr) Variable Input
23(gl_InstanceID):     19(ptr) Variable Input
26(gl_InstanceCustomIndexEXT):     19(ptr) Variable Input
              28:             TypeFloat 32
              29:             TypeVector 28(float) 3
              30:             TypePointer Function 29(fvec3)
              32:             TypePointer Input 29(fvec3)
33(gl_WorldRayOriginEXT):     32(ptr) Variable Input
36(gl_WorldRayDirectionEXT):     32(ptr) Variable Input
39(gl_ObjectRayOriginEXT):     32(ptr) Variable Input
42(gl_ObjectRayDirectionEXT):     32(ptr) Variable Input
              44:             TypePointer Function 28(float)
              46:             TypePointer Input 28(float)
47(gl_RayTminEXT):     46(ptr) Variable Input
50(gl_RayTmaxEXT):     46(ptr) Variable Input
  53(gl_HitTEXT):     46(ptr) Variable Input
              55:             TypePointer Function 6(int)
              57:             TypePointer Input 6(int)
58(gl_HitKindEXT):     57(ptr) Variable Input
              60:             TypeMatrix 29(fvec3) 4
              61:             TypePointer Function 60
              63:             TypePointer Input 60
64(gl_ObjectToWorldEXT):     63(ptr) Variable Input
67(gl_WorldToObjectEXT):     63(ptr) Variable Input
70(gl_GeometryIndexEXT):     19(ptr) Variable Input
              72:             TypeVector 28(float) 4
              73:             TypeMatrix 72(fvec4) 3
              74:             TypePointer Function 73
76(gl_ObjectToWorld3x4EXT):     63(ptr) Variable Input
80(gl_WorldToObject3x4EXT):     63(ptr) Variable Input
              83:             TypeAccelerationStructureKHR
              84:             TypePointer UniformConstant 83
      85(accEXT):     84(ptr) Variable UniformConstant
              87:      6(int) Constant 0
              88:      6(int) Constant 1
              89:      6(int) Constant 2
              90:      6(int) Constant 3
              91:   28(float) Constant 1056964608
              92:   29(fvec3) ConstantComposite 91 91 91
              93:   28(float) Constant 1065353216
              94:   29(fvec3) ConstantComposite 93 93 93
              95:   28(float) Constant 1061158912
              96:     16(int) Constant 1
              97:             TypePointer RayPayloadKHR 72(fvec4)
98(localPayload):     97(ptr) Variable RayPayloadKHR
              99:             TypePointer IncomingRayPayloadKHR 72(fvec4)
100(incomingPayload):     99(ptr) Variable IncomingRayPayloadKHR
         4(main):           2 Function None 3
               5:             Label
           9(v0):      8(ptr) Variable Function
          13(v1):      8(ptr) Variable Function
          18(v2):     17(ptr) Variable Function
          22(v3):     17(ptr) Variable Function
          25(v4):     17(ptr) Variable Function
          31(v5):     30(ptr) Variable Function
          35(v6):     30(ptr) Variable Function
          38(v7):     30(ptr) Variable Function
          41(v8):     30(ptr) Variable Function
          45(v9):     44(ptr) Variable Function
         49(v10):     44(ptr) Variable Function
         52(v11):     44(ptr) Variable Function
         56(v12):     55(ptr) Variable Function
         62(v13):     61(ptr) Variable Function
         66(v14):     61(ptr) Variable Function
         69(v15):     17(ptr) Variable Function
         75(v16):     74(ptr) Variable Function
         79(v17):     74(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
              21:     16(int) Load 20(gl_PrimitiveID)
                              Store 18(v2) 21
              24:     16(int) Load 23(gl_InstanceID)
                              Store 22(v3) 24
              27:     16(int) Load 26(gl_InstanceCustomIndexEXT)
                              Store 25(v4) 27
              34:   29(fvec3) Load 33(gl_WorldRayOriginEXT)
                              Store 31(v5) 34
              37:   29(fvec3) Load 36(gl_WorldRayDirectionEXT)
                              Store 35(v6) 37
              40:   29(fvec3) Load 39(gl_ObjectRayOriginEXT)
                              Store 38(v7) 40
              43:   29(fvec3) Load 42(gl_ObjectRayDirectionEXT)
                              Store 41(v8) 43
              48:   28(float) Load 47(gl_RayTminEXT)
                              Store 45(v9) 48
              51:   28(float) Load 50(gl_RayTmaxEXT)
                              Store 49(v10) 51
              54:   28(float) Load 53(gl_HitTEXT)
                              Store 52(v11) 54
              59:      6(int) Load 58(gl_HitKindEXT)
                              Store 56(v12) 59
              65:          60 Load 64(gl_ObjectToWorldEXT)
                              Store 62(v13) 65
              68:          60 Load 67(gl_WorldToObjectEXT)
                              Store 66(v14) 68
              71:     16(int) Load 70(gl_GeometryIndexEXT)
                              Store 69(v15) 71
              77:          60 Load 76(gl_ObjectToWorld3x4EXT)
              78:          73 Transpose 77
                              Store 75(v16) 78
              81:          60 Load 80(gl_WorldToObject3x4EXT)
              82:          73 Transpose 81
                              Store 79(v17) 82
              86:          83 Load 85(accEXT)
                              TraceRayKHR 86 87 88 89 90 87 92 91 94 95 96
                              Return
                              FunctionEnd
