blob: 15e6d4168eabfb550a792717d7c4ff383aeb1815 [file] [log] [blame]
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