blob: a00c45a3f35bc531a922524d4f94c96ee5122700 (
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
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
|
spv.atomicAdd.bufferReference.comp
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 188
Capability Shader
Capability VulkanMemoryModelKHR
Capability VulkanMemoryModelDeviceScopeKHR
Capability PhysicalStorageBufferAddressesEXT
Extension "SPV_KHR_physical_storage_buffer"
Extension "SPV_KHR_storage_buffer_storage_class"
Extension "SPV_KHR_vulkan_memory_model"
1: ExtInstImport "GLSL.std.450"
MemoryModel PhysicalStorageBuffer64EXT VulkanKHR
EntryPoint GLCompute 4 "main" 37 81 133
ExecutionMode 4 LocalSize 1 1 1
Source GLSL 450
SourceExtension "GL_ARB_gpu_shader_int64"
SourceExtension "GL_EXT_buffer_reference"
SourceExtension "GL_KHR_memory_scope_semantics"
SourceExtension "GL_KHR_shader_subgroup_ballot"
SourceExtension "GL_KHR_shader_subgroup_basic"
SourceExtension "GL_KHR_shader_subgroup_shuffle"
Name 4 "main"
Name 8 "pass"
Name 10 "skip"
Name 13 "sharedSkip"
Name 18 "PayloadRef"
MemberName 18(PayloadRef) 0 "x"
Name 20 "payload"
Name 22 "PC"
MemberName 22(PC) 0 "payloadref"
MemberName 22(PC) 1 "guard"
Name 24 "GuardRef"
MemberName 24(GuardRef) 0 "x"
Name 26 ""
Name 34 "globalId"
Name 37 "gl_GlobalInvocationID"
Name 42 "partnerGlobalId"
Name 43 "DIM"
Name 44 "NUM_WORKGROUP_EACH_DIM"
Name 54 "bufferCoord"
Name 66 "partnerBufferCoord"
Name 75 "imageCoord"
Name 77 "partnerImageCoord"
Name 79 "globalId00"
Name 81 "gl_WorkGroupID"
Name 86 "partnerGlobalId00"
Name 95 "bufferCoord00"
Name 104 "partnerBufferCoord00"
Name 113 "imageCoord00"
Name 115 "partnerImageCoord00"
Name 133 "gl_LocalInvocationID"
Name 163 "r"
Name 179 "Fail"
MemberName 179(Fail) 0 "x"
Name 181 "fail"
Decorate 17 ArrayStride 4
MemberDecorate 18(PayloadRef) 0 Offset 0
Decorate 18(PayloadRef) Block
Decorate 20(payload) DecorationAliasedPointerEXT
MemberDecorate 22(PC) 0 Offset 0
MemberDecorate 22(PC) 1 Offset 8
Decorate 22(PC) Block
Decorate 23 ArrayStride 4
MemberDecorate 24(GuardRef) 0 Offset 0
Decorate 24(GuardRef) Block
Decorate 37(gl_GlobalInvocationID) BuiltIn GlobalInvocationId
Decorate 43(DIM) SpecId 0
Decorate 44(NUM_WORKGROUP_EACH_DIM) SpecId 1
Decorate 81(gl_WorkGroupID) BuiltIn WorkgroupId
Decorate 133(gl_LocalInvocationID) BuiltIn LocalInvocationId
Decorate 178 ArrayStride 4
MemberDecorate 179(Fail) 0 Offset 0
Decorate 179(Fail) Block
Decorate 181(fail) DescriptorSet 0
Decorate 181(fail) Binding 2
Decorate 185 SpecId 0
Decorate 186 SpecId 0
Decorate 187 BuiltIn WorkgroupSize
2: TypeVoid
3: TypeFunction 2
6: TypeBool
7: TypePointer Function 6(bool)
9: 6(bool) ConstantTrue
11: 6(bool) ConstantFalse
12: TypePointer Workgroup 6(bool)
13(sharedSkip): 12(ptr) Variable Workgroup
14: TypeInt 32 0
15: 14(int) Constant 2
TypeForwardPointer 16 PhysicalStorageBufferEXT
17: TypeRuntimeArray 14(int)
18(PayloadRef): TypeStruct 17
16: TypePointer PhysicalStorageBufferEXT 18(PayloadRef)
19: TypePointer Function 16(ptr)
TypeForwardPointer 21 PhysicalStorageBufferEXT
22(PC): TypeStruct 16(ptr) 21
23: TypeRuntimeArray 14(int)
24(GuardRef): TypeStruct 23
21: TypePointer PhysicalStorageBufferEXT 24(GuardRef)
25: TypePointer PushConstant 22(PC)
26: 25(ptr) Variable PushConstant
27: TypeInt 32 1
28: 27(int) Constant 0
29: TypePointer PushConstant 16(ptr)
32: TypeVector 27(int) 2
33: TypePointer Function 32(ivec2)
35: TypeVector 14(int) 3
36: TypePointer Input 35(ivec3)
37(gl_GlobalInvocationID): 36(ptr) Variable Input
38: TypeVector 14(int) 2
43(DIM): 27(int) SpecConstant 1
44(NUM_WORKGROUP_EACH_DIM): 27(int) SpecConstant 1
45: 27(int) SpecConstantOp 132 43(DIM) 44(NUM_WORKGROUP_EACH_DIM)
46: 27(int) Constant 1
47: 27(int) SpecConstantOp 130 45 46
48: 32(ivec2) SpecConstantComposite 47 47
53: TypePointer Function 14(int)
55: 14(int) Constant 1
56: TypePointer Function 27(int)
61: 14(int) Constant 0
80: 32(ivec2) SpecConstantComposite 43(DIM) 43(DIM)
81(gl_WorkGroupID): 36(ptr) Variable Input
87: 32(ivec2) SpecConstantComposite 43(DIM) 43(DIM)
88: 27(int) SpecConstantOp 130 44(NUM_WORKGROUP_EACH_DIM) 46
89: 32(ivec2) SpecConstantComposite 88 88
122: TypePointer PhysicalStorageBufferEXT 14(int)
125: 27(int) Constant 31
129: 27(int) Constant 2
130: 27(int) Constant 320
131: 27(int) Constant 8200
132: 14(int) Constant 8520
133(gl_LocalInvocationID): 36(ptr) Variable Input
136: 38(ivec2) ConstantComposite 61 61
137: TypeVector 6(bool) 2
142: TypePointer PushConstant 21(ptr)
147: 27(int) Constant 64
148: 27(int) Constant 8196
149: 14(int) Constant 5
150: 14(int) Constant 8260
155: 27(int) Constant 16386
156: 14(int) Constant 16450
160: 27(int) Constant 16392
161: 14(int) Constant 16712
178: TypeRuntimeArray 14(int)
179(Fail): TypeStruct 178
180: TypePointer StorageBuffer 179(Fail)
181(fail): 180(ptr) Variable StorageBuffer
183: TypePointer StorageBuffer 14(int)
185: 14(int) SpecConstant 1
186: 14(int) SpecConstant 1
187: 35(ivec3) SpecConstantComposite 185 186 55
4(main): 2 Function None 3
5: Label
8(pass): 7(ptr) Variable Function
10(skip): 7(ptr) Variable Function
20(payload): 19(ptr) Variable Function
34(globalId): 33(ptr) Variable Function
42(partnerGlobalId): 33(ptr) Variable Function
54(bufferCoord): 53(ptr) Variable Function
66(partnerBufferCoord): 53(ptr) Variable Function
75(imageCoord): 33(ptr) Variable Function
77(partnerImageCoord): 33(ptr) Variable Function
79(globalId00): 33(ptr) Variable Function
86(partnerGlobalId00): 33(ptr) Variable Function
95(bufferCoord00): 53(ptr) Variable Function
104(partnerBufferCoord00): 53(ptr) Variable Function
113(imageCoord00): 33(ptr) Variable Function
115(partnerImageCoord00): 33(ptr) Variable Function
163(r): 53(ptr) Variable Function
Store 8(pass) 9
Store 10(skip) 11
Store 13(sharedSkip) 11 MakePointerAvailableKHR NonPrivatePointerKHR 15
30: 29(ptr) AccessChain 26 28
31: 16(ptr) Load 30
Store 20(payload) 31
39: 35(ivec3) Load 37(gl_GlobalInvocationID)
40: 38(ivec2) VectorShuffle 39 39 0 1
41: 32(ivec2) Bitcast 40
Store 34(globalId) 41
49: 35(ivec3) Load 37(gl_GlobalInvocationID)
50: 38(ivec2) VectorShuffle 49 49 0 1
51: 32(ivec2) Bitcast 50
52: 32(ivec2) ISub 48 51
Store 42(partnerGlobalId) 52
57: 56(ptr) AccessChain 34(globalId) 55
58: 27(int) Load 57
59: 27(int) IMul 58 43(DIM)
60: 27(int) IMul 59 44(NUM_WORKGROUP_EACH_DIM)
62: 56(ptr) AccessChain 34(globalId) 61
63: 27(int) Load 62
64: 27(int) IAdd 60 63
65: 14(int) Bitcast 64
Store 54(bufferCoord) 65
67: 56(ptr) AccessChain 42(partnerGlobalId) 55
68: 27(int) Load 67
69: 27(int) IMul 68 43(DIM)
70: 27(int) IMul 69 44(NUM_WORKGROUP_EACH_DIM)
71: 56(ptr) AccessChain 42(partnerGlobalId) 61
72: 27(int) Load 71
73: 27(int) IAdd 70 72
74: 14(int) Bitcast 73
Store 66(partnerBufferCoord) 74
76: 32(ivec2) Load 34(globalId)
Store 75(imageCoord) 76
78: 32(ivec2) Load 42(partnerGlobalId)
Store 77(partnerImageCoord) 78
82: 35(ivec3) Load 81(gl_WorkGroupID)
83: 38(ivec2) VectorShuffle 82 82 0 1
84: 32(ivec2) Bitcast 83
85: 32(ivec2) IMul 80 84
Store 79(globalId00) 85
90: 35(ivec3) Load 81(gl_WorkGroupID)
91: 38(ivec2) VectorShuffle 90 90 0 1
92: 32(ivec2) Bitcast 91
93: 32(ivec2) ISub 89 92
94: 32(ivec2) IMul 87 93
Store 86(partnerGlobalId00) 94
96: 56(ptr) AccessChain 79(globalId00) 55
97: 27(int) Load 96
98: 27(int) IMul 97 43(DIM)
99: 27(int) IMul 98 44(NUM_WORKGROUP_EACH_DIM)
100: 56(ptr) AccessChain 79(globalId00) 61
101: 27(int) Load 100
102: 27(int) IAdd 99 101
103: 14(int) Bitcast 102
Store 95(bufferCoord00) 103
105: 56(ptr) AccessChain 86(partnerGlobalId00) 55
106: 27(int) Load 105
107: 27(int) IMul 106 43(DIM)
108: 27(int) IMul 107 44(NUM_WORKGROUP_EACH_DIM)
109: 56(ptr) AccessChain 86(partnerGlobalId00) 61
110: 27(int) Load 109
111: 27(int) IAdd 108 110
112: 14(int) Bitcast 111
Store 104(partnerBufferCoord00) 112
114: 32(ivec2) Load 79(globalId00)
Store 113(imageCoord00) 114
116: 32(ivec2) Load 86(partnerGlobalId00)
Store 115(partnerImageCoord00) 116
117: 16(ptr) Load 20(payload)
118: 14(int) Load 54(bufferCoord)
119: 14(int) Load 54(bufferCoord)
120: 16(ptr) Load 20(payload)
121: 14(int) Load 66(partnerBufferCoord)
123: 122(ptr) AccessChain 120 28 121
124: 14(int) Load 123 Aligned NonPrivatePointerKHR 4
126: 14(int) ShiftRightLogical 124 125
127: 14(int) IAdd 119 126
128: 122(ptr) AccessChain 117 28 118
Store 128 127 Aligned NonPrivatePointerKHR 4
ControlBarrier 15 15 132
134: 35(ivec3) Load 133(gl_LocalInvocationID)
135: 38(ivec2) VectorShuffle 134 134 0 1
138: 137(bvec2) IEqual 135 136
139: 6(bool) All 138
SelectionMerge 141 None
BranchConditional 139 140 141
140: Label
143: 142(ptr) AccessChain 26 46
144: 21(ptr) Load 143
145: 14(int) Load 54(bufferCoord)
146: 122(ptr) AccessChain 144 28 145
AtomicStore 146 46 150 55
151: 142(ptr) AccessChain 26 46
152: 21(ptr) Load 151
153: 14(int) Load 104(partnerBufferCoord00)
154: 122(ptr) AccessChain 152 28 153
157: 14(int) AtomicLoad 154 46 156
158: 6(bool) IEqual 157 61
Store 10(skip) 158
159: 6(bool) Load 10(skip)
Store 13(sharedSkip) 159 MakePointerAvailableKHR NonPrivatePointerKHR 15
Branch 141
141: Label
ControlBarrier 15 15 161
162: 6(bool) Load 13(sharedSkip) MakePointerVisibleKHR NonPrivatePointerKHR 15
Store 10(skip) 162
164: 16(ptr) Load 20(payload)
165: 14(int) Load 66(partnerBufferCoord)
166: 122(ptr) AccessChain 164 28 165
167: 14(int) Load 166 Aligned NonPrivatePointerKHR 4
Store 163(r) 167
168: 6(bool) Load 10(skip)
169: 6(bool) LogicalNot 168
SelectionMerge 171 None
BranchConditional 169 170 171
170: Label
172: 14(int) Load 163(r)
173: 14(int) Load 66(partnerBufferCoord)
174: 6(bool) INotEqual 172 173
Branch 171
171: Label
175: 6(bool) Phi 169 141 174 170
SelectionMerge 177 None
BranchConditional 175 176 177
176: Label
182: 14(int) Load 54(bufferCoord)
184: 183(ptr) AccessChain 181(fail) 28 182
Store 184 55
Branch 177
177: Label
Return
FunctionEnd
|