spv.nv.hitobject-allops.rchit
// Module Version 10400
// Generated by (magic number): 8000b
// Id's are bound by 116

                              Capability RayTracingKHR
                              Capability ShaderInvocationReorderNV
                              Extension  "SPV_KHR_ray_tracing"
                              Extension  "SPV_NV_shader_invocation_reorder"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint ClosestHitKHR 4  "main" 9 14 22 25 36 42 48 52 53 64
                              Source GLSL 460
                              SourceExtension  "GL_EXT_ray_tracing"
                              SourceExtension  "GL_NV_ray_tracing_motion_blur"
                              SourceExtension  "GL_NV_shader_invocation_reorder"
                              Name 4  "main"
                              Name 9  "attr"
                              Name 12  "hBlock"
                              MemberName 12(hBlock) 0  "attrval"
                              Name 14  ""
                              Name 22  "hObj"
                              Name 25  "as"
                              Name 36  "payload"
                              Name 40  "pBlock"
                              MemberName 40(pBlock) 0  "val1"
                              MemberName 40(pBlock) 1  "val2"
                              Name 42  ""
                              Name 48  "hObjHit"
                              Name 52  "hObjNop"
                              Name 53  "hObjMiss"
                              Name 62  "block"
                              MemberName 62(block) 0  "op"
                              Name 64  ""
                              Name 79  "tmin"
                              Name 81  "tmax"
                              Name 84  "orig"
                              Name 86  "dir"
                              Name 88  "oorig"
                              Name 90  "odir"
                              Name 94  "otw"
                              Name 96  "wto"
                              Name 99  "cid"
                              Name 101  "iid"
                              Name 103  "pid"
                              Name 105  "gid"
                              Name 108  "hkind"
                              Name 112  "handle"
                              Name 114  "rid"
                              Decorate 12(hBlock) Block
                              Decorate 25(as) DescriptorSet 0
                              Decorate 25(as) Binding 0
                              Decorate 40(pBlock) Block
                              MemberDecorate 62(block) 0 Offset 0
                              Decorate 62(block) Block
                              Decorate 64 DescriptorSet 0
                              Decorate 64 Binding 1
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 2
               8:             TypePointer HitObjectAttributeNV 7(fvec2)
         9(attr):      8(ptr) Variable HitObjectAttributeNV
              10:    6(float) Constant 1065353216
              11:    7(fvec2) ConstantComposite 10 10
      12(hBlock):             TypeStruct 6(float)
              13:             TypePointer HitObjectAttributeNV 12(hBlock)
              14:     13(ptr) Variable HitObjectAttributeNV
              15:             TypeInt 32 1
              16:     15(int) Constant 0
              17:    6(float) Constant 1073741824
              18:             TypePointer HitObjectAttributeNV 6(float)
              20:             TypeHitObjectNV
              21:             TypePointer Private 20
        22(hObj):     21(ptr) Variable Private
              23:             TypeAccelerationStructureKHR
              24:             TypePointer UniformConstant 23
          25(as):     24(ptr) Variable UniformConstant
              27:             TypeInt 32 0
              28:     27(int) Constant 1
              29:             TypeVector 6(float) 3
              30:    6(float) Constant 1056964608
              31:   29(fvec3) ConstantComposite 30 30 30
              32:   29(fvec3) ConstantComposite 10 10 10
              33:     15(int) Constant 1
              34:             TypeVector 6(float) 4
              35:             TypePointer RayPayloadKHR 34(fvec4)
     36(payload):     35(ptr) Variable RayPayloadKHR
              38:    6(float) Constant 1092616192
              39:     15(int) Constant 2
      40(pBlock):             TypeStruct 7(fvec2) 7(fvec2)
              41:             TypePointer RayPayloadKHR 40(pBlock)
              42:     41(ptr) Variable RayPayloadKHR
              44:     27(int) Constant 2
              45:   29(fvec3) ConstantComposite 17 17 17
              47:    6(float) Constant 1082130432
     48(hObjHit):     21(ptr) Variable Private
              50:     15(int) Constant 3
     52(hObjNop):     21(ptr) Variable Private
    53(hObjMiss):     21(ptr) Variable Private
              54:    6(float) Constant 1069547520
              55:   29(fvec3) ConstantComposite 54 54 54
              56:    6(float) Constant 1084227584
              57:    6(float) Constant 1090519040
              58:             TypeBool
       62(block):             TypeStruct 6(float)
              63:             TypePointer StorageBuffer 62(block)
              64:     63(ptr) Variable StorageBuffer
              65:             TypePointer StorageBuffer 6(float)
              76:    6(float) Constant 1077936128
              78:             TypePointer Function 6(float)
              83:             TypePointer Function 29(fvec3)
              92:             TypeMatrix 29(fvec3) 4
              93:             TypePointer Function 92
              98:             TypePointer Function 15(int)
             107:             TypePointer Function 27(int)
             110:             TypeVector 27(int) 2
             111:             TypePointer Function 110(ivec2)
         4(main):           2 Function None 3
               5:             Label
        79(tmin):     78(ptr) Variable Function
        81(tmax):     78(ptr) Variable Function
        84(orig):     83(ptr) Variable Function
         86(dir):     83(ptr) Variable Function
       88(oorig):     83(ptr) Variable Function
        90(odir):     83(ptr) Variable Function
         94(otw):     93(ptr) Variable Function
         96(wto):     93(ptr) Variable Function
         99(cid):     98(ptr) Variable Function
        101(iid):     98(ptr) Variable Function
        103(pid):     98(ptr) Variable Function
        105(gid):     98(ptr) Variable Function
      108(hkind):    107(ptr) Variable Function
     112(handle):    111(ptr) Variable Function
        114(rid):    107(ptr) Variable Function
                              Store 9(attr) 11
              19:     18(ptr) AccessChain 14 16
                              Store 19 17
              26:          23 Load 25(as)
                              HitObjectTraceRayNV 22(hObj) 26 28 28 28 28 28 31 30 32 10 36(payload)
              37:          23 Load 25(as)
                              HitObjectTraceRayMotionNV 22(hObj) 37 28 28 28 28 28 31 30 32 10 38 42
              43:          23 Load 25(as)
                              HitObjectRecordHitNV 22(hObj) 43 33 33 33 44 44 44 32 10 45 17 9(attr)
              46:          23 Load 25(as)
                              HitObjectRecordHitMotionNV 22(hObj) 46 33 33 33 44 44 44 32 10 45 17 47 9(attr)
              49:          23 Load 25(as)
                              HitObjectRecordHitWithIndexNV 48(hObjHit) 49 33 33 33 44 44 32 10 45 17 14
              51:          23 Load 25(as)
                              HitObjectRecordHitWithIndexMotionNV 48(hObjHit) 51 33 33 33 44 44 32 10 45 17 47 14
                              HitObjectRecordEmptyNV 52(hObjNop)
                              HitObjectRecordMissNV 53(hObjMiss) 28 31 17 55 56
                              HitObjectRecordMissMotionNV 53(hObjMiss) 28 31 17 55 56 57
                              HitObjectExecuteShaderNV 48(hObjHit) 42
              59:    58(bool) HitObjectIsHitNV 22(hObj)
                              SelectionMerge 61 None
                              BranchConditional 59 60 67
              60:               Label
              66:     65(ptr)   AccessChain 64 16
                                Store 66 10
                                Branch 61
              67:               Label
              68:    58(bool)   HitObjectIsMissNV 22(hObj)
                                SelectionMerge 70 None
                                BranchConditional 68 69 72
              69:                 Label
              71:     65(ptr)     AccessChain 64 16
                                  Store 71 17
                                  Branch 70
              72:                 Label
              73:    58(bool)     HitObjectIsEmptyNV 22(hObj)
                                  SelectionMerge 75 None
                                  BranchConditional 73 74 75
              74:                   Label
              77:     65(ptr)       AccessChain 64 16
                                    Store 77 76
                                    Branch 75
              75:                 Label
                                  Branch 70
              70:               Label
                                Branch 61
              61:             Label
              80:    6(float) HitObjectGetRayTMinNV 48(hObjHit)
                              Store 79(tmin) 80
              82:    6(float) HitObjectGetRayTMaxNV 48(hObjHit)
                              Store 81(tmax) 82
              85:   29(fvec3) HitObjectGetWorldRayOriginNV 48(hObjHit)
                              Store 84(orig) 85
              87:   29(fvec3) HitObjectGetWorldRayDirectionNV 48(hObjHit)
                              Store 86(dir) 87
              89:   29(fvec3) HitObjectGetObjectRayOriginNV 48(hObjHit)
                              Store 88(oorig) 89
              91:   29(fvec3) HitObjectGetObjectRayDirectionNV 48(hObjHit)
                              Store 90(odir) 91
              95:          92 HitObjectGetObjectToWorldNV 48(hObjHit)
                              Store 94(otw) 95
              97:          92 HitObjectGetWorldToObjectNV 48(hObjHit)
                              Store 96(wto) 97
             100:     15(int) HitObjectGetInstanceCustomIndexNV 53(hObjMiss)
                              Store 99(cid) 100
             102:     15(int) HitObjectGetInstanceIdNV 52(hObjNop)
                              Store 101(iid) 102
             104:     15(int) HitObjectGetPrimitiveIndexNV 22(hObj)
                              Store 103(pid) 104
             106:     15(int) HitObjectGetGeometryIndexNV 22(hObj)
                              Store 105(gid) 106
             109:     27(int) HitObjectGetFrontFaceNV 22(hObj)
                              Store 108(hkind) 109
                              HitObjectGetAttributesNV 22(hObj) 9(attr)
             113:  110(ivec2) HitObjectGetShaderRecordBufferHandleNV 22(hObj)
                              Store 112(handle) 113
             115:     27(int) HitObjectGetShaderBindingTableRecordIndexNV 22(hObj)
                              Store 114(rid) 115
                              Return
                              FunctionEnd
