blob: d395500a8c2f95f64f9974acf7985754460bed10 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
|
spv.nv.hitobject-allops.rgen
// Module Version 10400
// Generated by (magic number): 8000b
// Id's are bound by 117
Capability RayTracingKHR
Capability ShaderInvocationReorderNV
Extension "SPV_KHR_ray_tracing"
Extension "SPV_NV_shader_invocation_reorder"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint RayGenerationKHR 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)
116: 27(int) Constant 4
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) 36(payload)
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
ReorderThreadWithHintNV 116 116
ReorderThreadWithHitObjectNV 48(hObjHit)
ReorderThreadWithHitObjectNV 48(hObjHit) 116 44
Return
FunctionEnd
|