blob: 3aad7605b07a030da5378549b4f86dcf47b1a3bf (
plain) (
blame)
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
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
|
spv.subgroupShuffleRelative.comp
// Module Version 10300
// Generated by (magic number): 80007
// Id's are bound by 379
Capability Shader
Capability Float64
Capability GroupNonUniform
Capability GroupNonUniformShuffleRelative
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "main" 10 12
ExecutionMode 4 LocalSize 8 8 1
Source GLSL 450
SourceExtension "GL_KHR_shader_subgroup_basic"
SourceExtension "GL_KHR_shader_subgroup_shuffle_relative"
Name 4 "main"
Name 8 "invocation"
Name 10 "gl_SubgroupInvocationID"
Name 12 "gl_SubgroupSize"
Name 24 "Buffers"
MemberName 24(Buffers) 0 "f4"
MemberName 24(Buffers) 1 "i4"
MemberName 24(Buffers) 2 "u4"
MemberName 24(Buffers) 3 "d4"
Name 27 "data"
Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision
Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
Decorate 11 RelaxedPrecision
Decorate 12(gl_SubgroupSize) RelaxedPrecision
Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize
Decorate 13 RelaxedPrecision
Decorate 14 RelaxedPrecision
Decorate 16 RelaxedPrecision
MemberDecorate 24(Buffers) 0 Offset 0
MemberDecorate 24(Buffers) 1 Offset 16
MemberDecorate 24(Buffers) 2 Offset 32
MemberDecorate 24(Buffers) 3 Offset 64
Decorate 24(Buffers) Block
Decorate 27(data) DescriptorSet 0
Decorate 27(data) Binding 0
Decorate 378 BuiltIn WorkgroupSize
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
7: TypePointer Function 6(int)
9: TypePointer Input 6(int)
10(gl_SubgroupInvocationID): 9(ptr) Variable Input
12(gl_SubgroupSize): 9(ptr) Variable Input
15: 6(int) Constant 4
17: TypeFloat 32
18: TypeVector 17(float) 4
19: TypeInt 32 1
20: TypeVector 19(int) 4
21: TypeVector 6(int) 4
22: TypeFloat 64
23: TypeVector 22(float64_t) 4
24(Buffers): TypeStruct 18(fvec4) 20(ivec4) 21(ivec4) 23(f64vec4)
25: TypeArray 24(Buffers) 15
26: TypePointer StorageBuffer 25
27(data): 26(ptr) Variable StorageBuffer
29: 19(int) Constant 0
30: 6(int) Constant 0
31: TypePointer StorageBuffer 17(float)
35: 6(int) Constant 3
39: 19(int) Constant 1
40: TypeVector 17(float) 2
41: TypePointer StorageBuffer 18(fvec4)
51: 19(int) Constant 2
52: TypeVector 17(float) 3
62: 19(int) Constant 3
69: TypePointer StorageBuffer 19(int)
76: TypeVector 19(int) 2
77: TypePointer StorageBuffer 20(ivec4)
87: TypeVector 19(int) 3
103: TypePointer StorageBuffer 6(int)
110: TypeVector 6(int) 2
111: TypePointer StorageBuffer 21(ivec4)
121: TypeVector 6(int) 3
137: TypePointer StorageBuffer 22(float64_t)
144: TypeVector 22(float64_t) 2
145: TypePointer StorageBuffer 23(f64vec4)
155: TypeVector 22(float64_t) 3
173: TypeBool
183: 76(ivec2) ConstantComposite 29 29
184: TypeVector 173(bool) 2
188: 76(ivec2) ConstantComposite 39 39
197: 87(ivec3) ConstantComposite 29 29 29
198: TypeVector 173(bool) 3
202: 87(ivec3) ConstantComposite 39 39 39
210: 20(ivec4) ConstantComposite 29 29 29 29
211: TypeVector 173(bool) 4
215: 20(ivec4) ConstantComposite 39 39 39 39
376: 6(int) Constant 8
377: 6(int) Constant 1
378: 121(ivec3) ConstantComposite 376 376 377
4(main): 2 Function None 3
5: Label
8(invocation): 7(ptr) Variable Function
11: 6(int) Load 10(gl_SubgroupInvocationID)
13: 6(int) Load 12(gl_SubgroupSize)
14: 6(int) IAdd 11 13
16: 6(int) UMod 14 15
Store 8(invocation) 16
28: 6(int) Load 8(invocation)
32: 31(ptr) AccessChain 27(data) 29 29 30
33: 17(float) Load 32
34: 6(int) Load 8(invocation)
36: 17(float) GroupNonUniformShuffleUp 35 33 34
37: 31(ptr) AccessChain 27(data) 28 29 30
Store 37 36
38: 6(int) Load 8(invocation)
42: 41(ptr) AccessChain 27(data) 39 29
43: 18(fvec4) Load 42
44: 40(fvec2) VectorShuffle 43 43 0 1
45: 6(int) Load 8(invocation)
46: 40(fvec2) GroupNonUniformShuffleUp 35 44 45
47: 41(ptr) AccessChain 27(data) 38 29
48: 18(fvec4) Load 47
49: 18(fvec4) VectorShuffle 48 46 4 5 2 3
Store 47 49
50: 6(int) Load 8(invocation)
53: 41(ptr) AccessChain 27(data) 51 29
54: 18(fvec4) Load 53
55: 52(fvec3) VectorShuffle 54 54 0 1 2
56: 6(int) Load 8(invocation)
57: 52(fvec3) GroupNonUniformShuffleUp 35 55 56
58: 41(ptr) AccessChain 27(data) 50 29
59: 18(fvec4) Load 58
60: 18(fvec4) VectorShuffle 59 57 4 5 6 3
Store 58 60
61: 6(int) Load 8(invocation)
63: 41(ptr) AccessChain 27(data) 62 29
64: 18(fvec4) Load 63
65: 6(int) Load 8(invocation)
66: 18(fvec4) GroupNonUniformShuffleUp 35 64 65
67: 41(ptr) AccessChain 27(data) 61 29
Store 67 66
68: 6(int) Load 8(invocation)
70: 69(ptr) AccessChain 27(data) 29 39 30
71: 19(int) Load 70
72: 6(int) Load 8(invocation)
73: 19(int) GroupNonUniformShuffleUp 35 71 72
74: 69(ptr) AccessChain 27(data) 68 39 30
Store 74 73
75: 6(int) Load 8(invocation)
78: 77(ptr) AccessChain 27(data) 39 39
79: 20(ivec4) Load 78
80: 76(ivec2) VectorShuffle 79 79 0 1
81: 6(int) Load 8(invocation)
82: 76(ivec2) GroupNonUniformShuffleUp 35 80 81
83: 77(ptr) AccessChain 27(data) 75 39
84: 20(ivec4) Load 83
85: 20(ivec4) VectorShuffle 84 82 4 5 2 3
Store 83 85
86: 6(int) Load 8(invocation)
88: 77(ptr) AccessChain 27(data) 51 39
89: 20(ivec4) Load 88
90: 87(ivec3) VectorShuffle 89 89 0 1 2
91: 6(int) Load 8(invocation)
92: 87(ivec3) GroupNonUniformShuffleUp 35 90 91
93: 77(ptr) AccessChain 27(data) 86 39
94: 20(ivec4) Load 93
95: 20(ivec4) VectorShuffle 94 92 4 5 6 3
Store 93 95
96: 6(int) Load 8(invocation)
97: 77(ptr) AccessChain 27(data) 62 39
98: 20(ivec4) Load 97
99: 6(int) Load 8(invocation)
100: 20(ivec4) GroupNonUniformShuffleUp 35 98 99
101: 77(ptr) AccessChain 27(data) 96 39
Store 101 100
102: 6(int) Load 8(invocation)
104: 103(ptr) AccessChain 27(data) 29 51 30
105: 6(int) Load 104
106: 6(int) Load 8(invocation)
107: 6(int) GroupNonUniformShuffleUp 35 105 106
108: 103(ptr) AccessChain 27(data) 102 51 30
Store 108 107
109: 6(int) Load 8(invocation)
112: 111(ptr) AccessChain 27(data) 39 51
113: 21(ivec4) Load 112
114: 110(ivec2) VectorShuffle 113 113 0 1
115: 6(int) Load 8(invocation)
116: 110(ivec2) GroupNonUniformShuffleUp 35 114 115
117: 111(ptr) AccessChain 27(data) 109 51
118: 21(ivec4) Load 117
119: 21(ivec4) VectorShuffle 118 116 4 5 2 3
Store 117 119
120: 6(int) Load 8(invocation)
122: 111(ptr) AccessChain 27(data) 51 51
123: 21(ivec4) Load 122
124: 121(ivec3) VectorShuffle 123 123 0 1 2
125: 6(int) Load 8(invocation)
126: 121(ivec3) GroupNonUniformShuffleUp 35 124 125
127: 111(ptr) AccessChain 27(data) 120 51
128: 21(ivec4) Load 127
129: 21(ivec4) VectorShuffle 128 126 4 5 6 3
Store 127 129
130: 6(int) Load 8(invocation)
131: 111(ptr) AccessChain 27(data) 62 51
132: 21(ivec4) Load 131
133: 6(int) Load 8(invocation)
134: 21(ivec4) GroupNonUniformShuffleUp 35 132 133
135: 111(ptr) AccessChain 27(data) 130 51
Store 135 134
136: 6(int) Load 8(invocation)
138: 137(ptr) AccessChain 27(data) 29 62 30
139:22(float64_t) Load 138
140: 6(int) Load 8(invocation)
141:22(float64_t) GroupNonUniformShuffleUp 35 139 140
142: 137(ptr) AccessChain 27(data) 136 62 30
Store 142 141
143: 6(int) Load 8(invocation)
146: 145(ptr) AccessChain 27(data) 39 62
147: 23(f64vec4) Load 146
148:144(f64vec2) VectorShuffle 147 147 0 1
149: 6(int) Load 8(invocation)
150:144(f64vec2) GroupNonUniformShuffleUp 35 148 149
151: 145(ptr) AccessChain 27(data) 143 62
152: 23(f64vec4) Load 151
153: 23(f64vec4) VectorShuffle 152 150 4 5 2 3
Store 151 153
154: 6(int) Load 8(invocation)
156: 145(ptr) AccessChain 27(data) 51 62
157: 23(f64vec4) Load 156
158:155(f64vec3) VectorShuffle 157 157 0 1 2
159: 6(int) Load 8(invocation)
160:155(f64vec3) GroupNonUniformShuffleUp 35 158 159
161: 145(ptr) AccessChain 27(data) 154 62
162: 23(f64vec4) Load 161
163: 23(f64vec4) VectorShuffle 162 160 4 5 6 3
Store 161 163
164: 6(int) Load 8(invocation)
165: 145(ptr) AccessChain 27(data) 62 62
166: 23(f64vec4) Load 165
167: 6(int) Load 8(invocation)
168: 23(f64vec4) GroupNonUniformShuffleUp 35 166 167
169: 145(ptr) AccessChain 27(data) 164 62
Store 169 168
170: 6(int) Load 8(invocation)
171: 69(ptr) AccessChain 27(data) 29 39 30
172: 19(int) Load 171
174: 173(bool) SLessThan 172 29
175: 6(int) Load 8(invocation)
176: 173(bool) GroupNonUniformShuffleUp 35 174 175
177: 19(int) Select 176 39 29
178: 69(ptr) AccessChain 27(data) 170 39 30
Store 178 177
179: 6(int) Load 8(invocation)
180: 77(ptr) AccessChain 27(data) 39 39
181: 20(ivec4) Load 180
182: 76(ivec2) VectorShuffle 181 181 0 1
185: 184(bvec2) SLessThan 182 183
186: 6(int) Load 8(invocation)
187: 184(bvec2) GroupNonUniformShuffleUp 35 185 186
189: 76(ivec2) Select 187 188 183
190: 77(ptr) AccessChain 27(data) 179 39
191: 20(ivec4) Load 190
192: 20(ivec4) VectorShuffle 191 189 4 5 2 3
Store 190 192
193: 6(int) Load 8(invocation)
194: 77(ptr) AccessChain 27(data) 39 39
195: 20(ivec4) Load 194
196: 87(ivec3) VectorShuffle 195 195 0 1 2
199: 198(bvec3) SLessThan 196 197
200: 6(int) Load 8(invocation)
201: 198(bvec3) GroupNonUniformShuffleUp 35 199 200
203: 87(ivec3) Select 201 202 197
204: 77(ptr) AccessChain 27(data) 193 39
205: 20(ivec4) Load 204
206: 20(ivec4) VectorShuffle 205 203 4 5 6 3
Store 204 206
207: 6(int) Load 8(invocation)
208: 77(ptr) AccessChain 27(data) 39 39
209: 20(ivec4) Load 208
212: 211(bvec4) SLessThan 209 210
213: 6(int) Load 8(invocation)
214: 211(bvec4) GroupNonUniformShuffleUp 35 212 213
216: 20(ivec4) Select 214 215 210
217: 77(ptr) AccessChain 27(data) 207 39
Store 217 216
218: 6(int) Load 8(invocation)
219: 31(ptr) AccessChain 27(data) 29 29 30
220: 17(float) Load 219
221: 6(int) Load 8(invocation)
222: 17(float) GroupNonUniformShuffleDown 35 220 221
223: 31(ptr) AccessChain 27(data) 218 29 30
Store 223 222
224: 6(int) Load 8(invocation)
225: 41(ptr) AccessChain 27(data) 39 29
226: 18(fvec4) Load 225
227: 40(fvec2) VectorShuffle 226 226 0 1
228: 6(int) Load 8(invocation)
229: 40(fvec2) GroupNonUniformShuffleDown 35 227 228
230: 41(ptr) AccessChain 27(data) 224 29
231: 18(fvec4) Load 230
232: 18(fvec4) VectorShuffle 231 229 4 5 2 3
Store 230 232
233: 6(int) Load 8(invocation)
234: 41(ptr) AccessChain 27(data) 51 29
235: 18(fvec4) Load 234
236: 52(fvec3) VectorShuffle 235 235 0 1 2
237: 6(int) Load 8(invocation)
238: 52(fvec3) GroupNonUniformShuffleDown 35 236 237
239: 41(ptr) AccessChain 27(data) 233 29
240: 18(fvec4) Load 239
241: 18(fvec4) VectorShuffle 240 238 4 5 6 3
Store 239 241
242: 6(int) Load 8(invocation)
243: 41(ptr) AccessChain 27(data) 62 29
244: 18(fvec4) Load 243
245: 6(int) Load 8(invocation)
246: 18(fvec4) GroupNonUniformShuffleDown 35 244 245
247: 41(ptr) AccessChain 27(data) 242 29
Store 247 246
248: 6(int) Load 8(invocation)
249: 69(ptr) AccessChain 27(data) 29 39 30
250: 19(int) Load 249
251: 6(int) Load 8(invocation)
252: 19(int) GroupNonUniformShuffleDown 35 250 251
253: 69(ptr) AccessChain 27(data) 248 39 30
Store 253 252
254: 6(int) Load 8(invocation)
255: 77(ptr) AccessChain 27(data) 39 39
256: 20(ivec4) Load 255
257: 76(ivec2) VectorShuffle 256 256 0 1
258: 6(int) Load 8(invocation)
259: 76(ivec2) GroupNonUniformShuffleDown 35 257 258
260: 77(ptr) AccessChain 27(data) 254 39
261: 20(ivec4) Load 260
262: 20(ivec4) VectorShuffle 261 259 4 5 2 3
Store 260 262
263: 6(int) Load 8(invocation)
264: 77(ptr) AccessChain 27(data) 51 39
265: 20(ivec4) Load 264
266: 87(ivec3) VectorShuffle 265 265 0 1 2
267: 6(int) Load 8(invocation)
268: 87(ivec3) GroupNonUniformShuffleDown 35 266 267
269: 77(ptr) AccessChain 27(data) 263 39
270: 20(ivec4) Load 269
271: 20(ivec4) VectorShuffle 270 268 4 5 6 3
Store 269 271
272: 6(int) Load 8(invocation)
273: 77(ptr) AccessChain 27(data) 62 39
274: 20(ivec4) Load 273
275: 6(int) Load 8(invocation)
276: 20(ivec4) GroupNonUniformShuffleDown 35 274 275
277: 77(ptr) AccessChain 27(data) 272 39
Store 277 276
278: 6(int) Load 8(invocation)
279: 103(ptr) AccessChain 27(data) 29 51 30
280: 6(int) Load 279
281: 6(int) Load 8(invocation)
282: 6(int) GroupNonUniformShuffleDown 35 280 281
283: 103(ptr) AccessChain 27(data) 278 51 30
Store 283 282
284: 6(int) Load 8(invocation)
285: 111(ptr) AccessChain 27(data) 39 51
286: 21(ivec4) Load 285
287: 110(ivec2) VectorShuffle 286 286 0 1
288: 6(int) Load 8(invocation)
289: 110(ivec2) GroupNonUniformShuffleDown 35 287 288
290: 111(ptr) AccessChain 27(data) 284 51
291: 21(ivec4) Load 290
292: 21(ivec4) VectorShuffle 291 289 4 5 2 3
Store 290 292
293: 6(int) Load 8(invocation)
294: 111(ptr) AccessChain 27(data) 51 51
295: 21(ivec4) Load 294
296: 121(ivec3) VectorShuffle 295 295 0 1 2
297: 6(int) Load 8(invocation)
298: 121(ivec3) GroupNonUniformShuffleDown 35 296 297
299: 111(ptr) AccessChain 27(data) 293 51
300: 21(ivec4) Load 299
301: 21(ivec4) VectorShuffle 300 298 4 5 6 3
Store 299 301
302: 6(int) Load 8(invocation)
303: 111(ptr) AccessChain 27(data) 62 51
304: 21(ivec4) Load 303
305: 6(int) Load 8(invocation)
306: 21(ivec4) GroupNonUniformShuffleDown 35 304 305
307: 111(ptr) AccessChain 27(data) 302 51
Store 307 306
308: 6(int) Load 8(invocation)
309: 137(ptr) AccessChain 27(data) 29 62 30
310:22(float64_t) Load 309
311: 6(int) Load 8(invocation)
312:22(float64_t) GroupNonUniformShuffleDown 35 310 311
313: 137(ptr) AccessChain 27(data) 308 62 30
Store 313 312
314: 6(int) Load 8(invocation)
315: 145(ptr) AccessChain 27(data) 39 62
316: 23(f64vec4) Load 315
317:144(f64vec2) VectorShuffle 316 316 0 1
318: 6(int) Load 8(invocation)
319:144(f64vec2) GroupNonUniformShuffleDown 35 317 318
320: 145(ptr) AccessChain 27(data) 314 62
321: 23(f64vec4) Load 320
322: 23(f64vec4) VectorShuffle 321 319 4 5 2 3
Store 320 322
323: 6(int) Load 8(invocation)
324: 145(ptr) AccessChain 27(data) 51 62
325: 23(f64vec4) Load 324
326:155(f64vec3) VectorShuffle 325 325 0 1 2
327: 6(int) Load 8(invocation)
328:155(f64vec3) GroupNonUniformShuffleDown 35 326 327
329: 145(ptr) AccessChain 27(data) 323 62
330: 23(f64vec4) Load 329
331: 23(f64vec4) VectorShuffle 330 328 4 5 6 3
Store 329 331
332: 6(int) Load 8(invocation)
333: 145(ptr) AccessChain 27(data) 62 62
334: 23(f64vec4) Load 333
335: 6(int) Load 8(invocation)
336: 23(f64vec4) GroupNonUniformShuffleDown 35 334 335
337: 145(ptr) AccessChain 27(data) 332 62
Store 337 336
338: 6(int) Load 8(invocation)
339: 69(ptr) AccessChain 27(data) 29 39 30
340: 19(int) Load 339
341: 173(bool) SLessThan 340 29
342: 6(int) Load 8(invocation)
343: 173(bool) GroupNonUniformShuffleDown 35 341 342
344: 19(int) Select 343 39 29
345: 69(ptr) AccessChain 27(data) 338 39 30
Store 345 344
346: 6(int) Load 8(invocation)
347: 77(ptr) AccessChain 27(data) 39 39
348: 20(ivec4) Load 347
349: 76(ivec2) VectorShuffle 348 348 0 1
350: 184(bvec2) SLessThan 349 183
351: 6(int) Load 8(invocation)
352: 184(bvec2) GroupNonUniformShuffleDown 35 350 351
353: 76(ivec2) Select 352 188 183
354: 77(ptr) AccessChain 27(data) 346 39
355: 20(ivec4) Load 354
356: 20(ivec4) VectorShuffle 355 353 4 5 2 3
Store 354 356
357: 6(int) Load 8(invocation)
358: 77(ptr) AccessChain 27(data) 39 39
359: 20(ivec4) Load 358
360: 87(ivec3) VectorShuffle 359 359 0 1 2
361: 198(bvec3) SLessThan 360 197
362: 6(int) Load 8(invocation)
363: 198(bvec3) GroupNonUniformShuffleDown 35 361 362
364: 87(ivec3) Select 363 202 197
365: 77(ptr) AccessChain 27(data) 357 39
366: 20(ivec4) Load 365
367: 20(ivec4) VectorShuffle 366 364 4 5 6 3
Store 365 367
368: 6(int) Load 8(invocation)
369: 77(ptr) AccessChain 27(data) 39 39
370: 20(ivec4) Load 369
371: 211(bvec4) SLessThan 370 210
372: 6(int) Load 8(invocation)
373: 211(bvec4) GroupNonUniformShuffleDown 35 371 372
374: 20(ivec4) Select 373 215 210
375: 77(ptr) AccessChain 27(data) 368 39
Store 375 374
Return
FunctionEnd
|