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

                              Capability RayTracingKHR
                              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  "incomingPayload"
                              Name 100  "localPayload"
                              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 RayTmaxKHR
                              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(incomingPayload) Location 1
                              Decorate 100(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:             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 IncomingRayPayloadKHR 72(fvec4)
98(incomingPayload):     97(ptr) Variable IncomingRayPayloadKHR
              99:             TypePointer RayPayloadKHR 72(fvec4)
100(localPayload):     99(ptr) Variable RayPayloadKHR
         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 98(incomingPayload)
                              Return
                              FunctionEnd
