• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1spv.shaderBallot.comp
2// Module Version 10000
3// Generated by (magic number): 8000a
4// Id's are bound by 318
5
6                              Capability Shader
7                              Capability Int64
8                              Capability SubgroupBallotKHR
9                              Extension  "SPV_KHR_shader_ballot"
10               1:             ExtInstImport  "GLSL.std.450"
11                              MemoryModel Logical GLSL450
12                              EntryPoint GLCompute 4  "main" 10 12 22 29 36 43 50
13                              ExecutionMode 4 LocalSize 8 8 1
14                              Source GLSL 450
15                              SourceExtension  "GL_ARB_gpu_shader_int64"
16                              SourceExtension  "GL_ARB_shader_ballot"
17                              Name 4  "main"
18                              Name 8  "invocation"
19                              Name 10  "gl_SubGroupInvocationARB"
20                              Name 12  "gl_SubGroupSizeARB"
21                              Name 19  "relMask"
22                              Name 22  "gl_SubGroupEqMaskARB"
23                              Name 29  "gl_SubGroupGeMaskARB"
24                              Name 36  "gl_SubGroupGtMaskARB"
25                              Name 43  "gl_SubGroupLeMaskARB"
26                              Name 50  "gl_SubGroupLtMaskARB"
27                              Name 72  "Buffers"
28                              MemberName 72(Buffers) 0  "f4"
29                              MemberName 72(Buffers) 1  "i4"
30                              MemberName 72(Buffers) 2  "u4"
31                              Name 75  "data"
32                              Decorate 10(gl_SubGroupInvocationARB) BuiltIn SubgroupLocalInvocationId
33                              Decorate 12(gl_SubGroupSizeARB) BuiltIn SubgroupSize
34                              Decorate 22(gl_SubGroupEqMaskARB) BuiltIn SubgroupEqMaskKHR
35                              Decorate 29(gl_SubGroupGeMaskARB) BuiltIn SubgroupGeMaskKHR
36                              Decorate 36(gl_SubGroupGtMaskARB) BuiltIn SubgroupGtMaskKHR
37                              Decorate 43(gl_SubGroupLeMaskARB) BuiltIn SubgroupLeMaskKHR
38                              Decorate 50(gl_SubGroupLtMaskARB) BuiltIn SubgroupLtMaskKHR
39                              MemberDecorate 72(Buffers) 0 Offset 0
40                              MemberDecorate 72(Buffers) 1 Offset 16
41                              MemberDecorate 72(Buffers) 2 Offset 32
42                              Decorate 72(Buffers) BufferBlock
43                              Decorate 75(data) DescriptorSet 0
44                              Decorate 75(data) Binding 0
45                              Decorate 317 BuiltIn WorkgroupSize
46               2:             TypeVoid
47               3:             TypeFunction 2
48               6:             TypeInt 32 0
49               7:             TypePointer Function 6(int)
50               9:             TypePointer Input 6(int)
5110(gl_SubGroupInvocationARB):      9(ptr) Variable Input
5212(gl_SubGroupSizeARB):      9(ptr) Variable Input
53              15:      6(int) Constant 4
54              17:             TypeInt 64 0
55              18:             TypePointer Function 17(int64_t)
56              20:             TypeVector 6(int) 4
57              21:             TypePointer Input 20(ivec4)
5822(gl_SubGroupEqMaskARB):     21(ptr) Variable Input
59              26:             TypeVector 6(int) 2
6029(gl_SubGroupGeMaskARB):     21(ptr) Variable Input
6136(gl_SubGroupGtMaskARB):     21(ptr) Variable Input
6243(gl_SubGroupLeMaskARB):     21(ptr) Variable Input
6350(gl_SubGroupLtMaskARB):     21(ptr) Variable Input
64              58:             TypeBool
65              59:    58(bool) ConstantTrue
66              68:             TypeFloat 32
67              69:             TypeVector 68(float) 4
68              70:             TypeInt 32 1
69              71:             TypeVector 70(int) 4
70     72(Buffers):             TypeStruct 69(fvec4) 71(ivec4) 20(ivec4)
71              73:             TypeArray 72(Buffers) 15
72              74:             TypePointer Uniform 73
73        75(data):     74(ptr) Variable Uniform
74              77:     70(int) Constant 0
75              78:      6(int) Constant 0
76              79:             TypePointer Uniform 68(float)
77              86:     70(int) Constant 1
78              87:             TypeVector 68(float) 2
79              88:             TypePointer Uniform 69(fvec4)
80             102:     70(int) Constant 2
81             103:             TypeVector 68(float) 3
82             119:     70(int) Constant 3
83             134:             TypePointer Uniform 70(int)
84             141:             TypeVector 70(int) 2
85             142:             TypePointer Uniform 71(ivec4)
86             156:             TypeVector 70(int) 3
87             186:             TypePointer Uniform 6(int)
88             193:             TypePointer Uniform 20(ivec4)
89             207:             TypeVector 6(int) 3
90             315:      6(int) Constant 8
91             316:      6(int) Constant 1
92             317:  207(ivec3) ConstantComposite 315 315 316
93         4(main):           2 Function None 3
94               5:             Label
95   8(invocation):      7(ptr) Variable Function
96     19(relMask):     18(ptr) Variable Function
97              11:      6(int) Load 10(gl_SubGroupInvocationARB)
98              13:      6(int) Load 12(gl_SubGroupSizeARB)
99              14:      6(int) IAdd 11 13
100              16:      6(int) UMod 14 15
101                              Store 8(invocation) 16
102              23:   20(ivec4) Load 22(gl_SubGroupEqMaskARB)
103              24:      6(int) CompositeExtract 23 0
104              25:      6(int) CompositeExtract 23 1
105              27:   26(ivec2) CompositeConstruct 24 25
106              28: 17(int64_t) Bitcast 27
107              30:   20(ivec4) Load 29(gl_SubGroupGeMaskARB)
108              31:      6(int) CompositeExtract 30 0
109              32:      6(int) CompositeExtract 30 1
110              33:   26(ivec2) CompositeConstruct 31 32
111              34: 17(int64_t) Bitcast 33
112              35: 17(int64_t) IAdd 28 34
113              37:   20(ivec4) Load 36(gl_SubGroupGtMaskARB)
114              38:      6(int) CompositeExtract 37 0
115              39:      6(int) CompositeExtract 37 1
116              40:   26(ivec2) CompositeConstruct 38 39
117              41: 17(int64_t) Bitcast 40
118              42: 17(int64_t) IAdd 35 41
119              44:   20(ivec4) Load 43(gl_SubGroupLeMaskARB)
120              45:      6(int) CompositeExtract 44 0
121              46:      6(int) CompositeExtract 44 1
122              47:   26(ivec2) CompositeConstruct 45 46
123              48: 17(int64_t) Bitcast 47
124              49: 17(int64_t) IAdd 42 48
125              51:   20(ivec4) Load 50(gl_SubGroupLtMaskARB)
126              52:      6(int) CompositeExtract 51 0
127              53:      6(int) CompositeExtract 51 1
128              54:   26(ivec2) CompositeConstruct 52 53
129              55: 17(int64_t) Bitcast 54
130              56: 17(int64_t) IAdd 49 55
131                              Store 19(relMask) 56
132              57: 17(int64_t) Load 19(relMask)
133              60:   20(ivec4) SubgroupBallotKHR 59
134              61:      6(int) CompositeExtract 60 0
135              62:      6(int) CompositeExtract 60 1
136              63:   26(ivec2) CompositeConstruct 61 62
137              64: 17(int64_t) Bitcast 63
138              65:    58(bool) IEqual 57 64
139                              SelectionMerge 67 None
140                              BranchConditional 65 66 236
141              66:               Label
142              76:      6(int)   Load 8(invocation)
143              80:     79(ptr)   AccessChain 75(data) 77 77 78
144              81:   68(float)   Load 80
145              82:      6(int)   Load 8(invocation)
146              83:   68(float)   SubgroupReadInvocationKHR 81 82
147              84:     79(ptr)   AccessChain 75(data) 76 77 78
148                                Store 84 83
149              85:      6(int)   Load 8(invocation)
150              89:     88(ptr)   AccessChain 75(data) 86 77
151              90:   69(fvec4)   Load 89
152              91:   87(fvec2)   VectorShuffle 90 90 0 1
153              92:      6(int)   Load 8(invocation)
154              93:   68(float)   CompositeExtract 91 0
155              94:   68(float)   SubgroupReadInvocationKHR 93 92
156              95:   68(float)   CompositeExtract 91 1
157              96:   68(float)   SubgroupReadInvocationKHR 95 92
158              97:   87(fvec2)   CompositeConstruct 94 96
159              98:     88(ptr)   AccessChain 75(data) 85 77
160              99:   69(fvec4)   Load 98
161             100:   69(fvec4)   VectorShuffle 99 97 4 5 2 3
162                                Store 98 100
163             101:      6(int)   Load 8(invocation)
164             104:     88(ptr)   AccessChain 75(data) 102 77
165             105:   69(fvec4)   Load 104
166             106:  103(fvec3)   VectorShuffle 105 105 0 1 2
167             107:      6(int)   Load 8(invocation)
168             108:   68(float)   CompositeExtract 106 0
169             109:   68(float)   SubgroupReadInvocationKHR 108 107
170             110:   68(float)   CompositeExtract 106 1
171             111:   68(float)   SubgroupReadInvocationKHR 110 107
172             112:   68(float)   CompositeExtract 106 2
173             113:   68(float)   SubgroupReadInvocationKHR 112 107
174             114:  103(fvec3)   CompositeConstruct 109 111 113
175             115:     88(ptr)   AccessChain 75(data) 101 77
176             116:   69(fvec4)   Load 115
177             117:   69(fvec4)   VectorShuffle 116 114 4 5 6 3
178                                Store 115 117
179             118:      6(int)   Load 8(invocation)
180             120:     88(ptr)   AccessChain 75(data) 119 77
181             121:   69(fvec4)   Load 120
182             122:      6(int)   Load 8(invocation)
183             123:   68(float)   CompositeExtract 121 0
184             124:   68(float)   SubgroupReadInvocationKHR 123 122
185             125:   68(float)   CompositeExtract 121 1
186             126:   68(float)   SubgroupReadInvocationKHR 125 122
187             127:   68(float)   CompositeExtract 121 2
188             128:   68(float)   SubgroupReadInvocationKHR 127 122
189             129:   68(float)   CompositeExtract 121 3
190             130:   68(float)   SubgroupReadInvocationKHR 129 122
191             131:   69(fvec4)   CompositeConstruct 124 126 128 130
192             132:     88(ptr)   AccessChain 75(data) 118 77
193                                Store 132 131
194             133:      6(int)   Load 8(invocation)
195             135:    134(ptr)   AccessChain 75(data) 77 86 78
196             136:     70(int)   Load 135
197             137:      6(int)   Load 8(invocation)
198             138:     70(int)   SubgroupReadInvocationKHR 136 137
199             139:    134(ptr)   AccessChain 75(data) 133 86 78
200                                Store 139 138
201             140:      6(int)   Load 8(invocation)
202             143:    142(ptr)   AccessChain 75(data) 86 86
203             144:   71(ivec4)   Load 143
204             145:  141(ivec2)   VectorShuffle 144 144 0 1
205             146:      6(int)   Load 8(invocation)
206             147:     70(int)   CompositeExtract 145 0
207             148:     70(int)   SubgroupReadInvocationKHR 147 146
208             149:     70(int)   CompositeExtract 145 1
209             150:     70(int)   SubgroupReadInvocationKHR 149 146
210             151:  141(ivec2)   CompositeConstruct 148 150
211             152:    142(ptr)   AccessChain 75(data) 140 86
212             153:   71(ivec4)   Load 152
213             154:   71(ivec4)   VectorShuffle 153 151 4 5 2 3
214                                Store 152 154
215             155:      6(int)   Load 8(invocation)
216             157:    142(ptr)   AccessChain 75(data) 102 86
217             158:   71(ivec4)   Load 157
218             159:  156(ivec3)   VectorShuffle 158 158 0 1 2
219             160:      6(int)   Load 8(invocation)
220             161:     70(int)   CompositeExtract 159 0
221             162:     70(int)   SubgroupReadInvocationKHR 161 160
222             163:     70(int)   CompositeExtract 159 1
223             164:     70(int)   SubgroupReadInvocationKHR 163 160
224             165:     70(int)   CompositeExtract 159 2
225             166:     70(int)   SubgroupReadInvocationKHR 165 160
226             167:  156(ivec3)   CompositeConstruct 162 164 166
227             168:    142(ptr)   AccessChain 75(data) 155 86
228             169:   71(ivec4)   Load 168
229             170:   71(ivec4)   VectorShuffle 169 167 4 5 6 3
230                                Store 168 170
231             171:      6(int)   Load 8(invocation)
232             172:    142(ptr)   AccessChain 75(data) 119 86
233             173:   71(ivec4)   Load 172
234             174:      6(int)   Load 8(invocation)
235             175:     70(int)   CompositeExtract 173 0
236             176:     70(int)   SubgroupReadInvocationKHR 175 174
237             177:     70(int)   CompositeExtract 173 1
238             178:     70(int)   SubgroupReadInvocationKHR 177 174
239             179:     70(int)   CompositeExtract 173 2
240             180:     70(int)   SubgroupReadInvocationKHR 179 174
241             181:     70(int)   CompositeExtract 173 3
242             182:     70(int)   SubgroupReadInvocationKHR 181 174
243             183:   71(ivec4)   CompositeConstruct 176 178 180 182
244             184:    142(ptr)   AccessChain 75(data) 171 86
245                                Store 184 183
246             185:      6(int)   Load 8(invocation)
247             187:    186(ptr)   AccessChain 75(data) 77 102 78
248             188:      6(int)   Load 187
249             189:      6(int)   Load 8(invocation)
250             190:      6(int)   SubgroupReadInvocationKHR 188 189
251             191:    186(ptr)   AccessChain 75(data) 185 102 78
252                                Store 191 190
253             192:      6(int)   Load 8(invocation)
254             194:    193(ptr)   AccessChain 75(data) 86 102
255             195:   20(ivec4)   Load 194
256             196:   26(ivec2)   VectorShuffle 195 195 0 1
257             197:      6(int)   Load 8(invocation)
258             198:      6(int)   CompositeExtract 196 0
259             199:      6(int)   SubgroupReadInvocationKHR 198 197
260             200:      6(int)   CompositeExtract 196 1
261             201:      6(int)   SubgroupReadInvocationKHR 200 197
262             202:   26(ivec2)   CompositeConstruct 199 201
263             203:    193(ptr)   AccessChain 75(data) 192 102
264             204:   20(ivec4)   Load 203
265             205:   20(ivec4)   VectorShuffle 204 202 4 5 2 3
266                                Store 203 205
267             206:      6(int)   Load 8(invocation)
268             208:    193(ptr)   AccessChain 75(data) 102 102
269             209:   20(ivec4)   Load 208
270             210:  207(ivec3)   VectorShuffle 209 209 0 1 2
271             211:      6(int)   Load 8(invocation)
272             212:      6(int)   CompositeExtract 210 0
273             213:      6(int)   SubgroupReadInvocationKHR 212 211
274             214:      6(int)   CompositeExtract 210 1
275             215:      6(int)   SubgroupReadInvocationKHR 214 211
276             216:      6(int)   CompositeExtract 210 2
277             217:      6(int)   SubgroupReadInvocationKHR 216 211
278             218:  207(ivec3)   CompositeConstruct 213 215 217
279             219:    193(ptr)   AccessChain 75(data) 206 102
280             220:   20(ivec4)   Load 219
281             221:   20(ivec4)   VectorShuffle 220 218 4 5 6 3
282                                Store 219 221
283             222:      6(int)   Load 8(invocation)
284             223:    193(ptr)   AccessChain 75(data) 119 102
285             224:   20(ivec4)   Load 223
286             225:      6(int)   Load 8(invocation)
287             226:      6(int)   CompositeExtract 224 0
288             227:      6(int)   SubgroupReadInvocationKHR 226 225
289             228:      6(int)   CompositeExtract 224 1
290             229:      6(int)   SubgroupReadInvocationKHR 228 225
291             230:      6(int)   CompositeExtract 224 2
292             231:      6(int)   SubgroupReadInvocationKHR 230 225
293             232:      6(int)   CompositeExtract 224 3
294             233:      6(int)   SubgroupReadInvocationKHR 232 225
295             234:   20(ivec4)   CompositeConstruct 227 229 231 233
296             235:    193(ptr)   AccessChain 75(data) 222 102
297                                Store 235 234
298                                Branch 67
299             236:               Label
300             237:      6(int)   Load 8(invocation)
301             238:     79(ptr)   AccessChain 75(data) 77 77 78
302             239:   68(float)   Load 238
303             240:   68(float)   SubgroupFirstInvocationKHR 239
304             241:     79(ptr)   AccessChain 75(data) 237 77 78
305                                Store 241 240
306             242:      6(int)   Load 8(invocation)
307             243:     88(ptr)   AccessChain 75(data) 86 77
308             244:   69(fvec4)   Load 243
309             245:   87(fvec2)   VectorShuffle 244 244 0 1
310             246:   87(fvec2)   SubgroupFirstInvocationKHR 245
311             247:     88(ptr)   AccessChain 75(data) 242 77
312             248:   69(fvec4)   Load 247
313             249:   69(fvec4)   VectorShuffle 248 246 4 5 2 3
314                                Store 247 249
315             250:      6(int)   Load 8(invocation)
316             251:     88(ptr)   AccessChain 75(data) 102 77
317             252:   69(fvec4)   Load 251
318             253:  103(fvec3)   VectorShuffle 252 252 0 1 2
319             254:  103(fvec3)   SubgroupFirstInvocationKHR 253
320             255:     88(ptr)   AccessChain 75(data) 250 77
321             256:   69(fvec4)   Load 255
322             257:   69(fvec4)   VectorShuffle 256 254 4 5 6 3
323                                Store 255 257
324             258:      6(int)   Load 8(invocation)
325             259:     88(ptr)   AccessChain 75(data) 119 77
326             260:   69(fvec4)   Load 259
327             261:   69(fvec4)   SubgroupFirstInvocationKHR 260
328             262:     88(ptr)   AccessChain 75(data) 258 77
329                                Store 262 261
330             263:      6(int)   Load 8(invocation)
331             264:    134(ptr)   AccessChain 75(data) 77 86 78
332             265:     70(int)   Load 264
333             266:     70(int)   SubgroupFirstInvocationKHR 265
334             267:    134(ptr)   AccessChain 75(data) 263 86 78
335                                Store 267 266
336             268:      6(int)   Load 8(invocation)
337             269:    142(ptr)   AccessChain 75(data) 86 86
338             270:   71(ivec4)   Load 269
339             271:  141(ivec2)   VectorShuffle 270 270 0 1
340             272:  141(ivec2)   SubgroupFirstInvocationKHR 271
341             273:    142(ptr)   AccessChain 75(data) 268 86
342             274:   71(ivec4)   Load 273
343             275:   71(ivec4)   VectorShuffle 274 272 4 5 2 3
344                                Store 273 275
345             276:      6(int)   Load 8(invocation)
346             277:    142(ptr)   AccessChain 75(data) 102 86
347             278:   71(ivec4)   Load 277
348             279:  156(ivec3)   VectorShuffle 278 278 0 1 2
349             280:  156(ivec3)   SubgroupFirstInvocationKHR 279
350             281:    142(ptr)   AccessChain 75(data) 276 86
351             282:   71(ivec4)   Load 281
352             283:   71(ivec4)   VectorShuffle 282 280 4 5 6 3
353                                Store 281 283
354             284:      6(int)   Load 8(invocation)
355             285:    142(ptr)   AccessChain 75(data) 119 86
356             286:   71(ivec4)   Load 285
357             287:   71(ivec4)   SubgroupFirstInvocationKHR 286
358             288:    142(ptr)   AccessChain 75(data) 284 86
359                                Store 288 287
360             289:      6(int)   Load 8(invocation)
361             290:    186(ptr)   AccessChain 75(data) 77 102 78
362             291:      6(int)   Load 290
363             292:      6(int)   SubgroupFirstInvocationKHR 291
364             293:    186(ptr)   AccessChain 75(data) 289 102 78
365                                Store 293 292
366             294:      6(int)   Load 8(invocation)
367             295:    193(ptr)   AccessChain 75(data) 86 102
368             296:   20(ivec4)   Load 295
369             297:   26(ivec2)   VectorShuffle 296 296 0 1
370             298:   26(ivec2)   SubgroupFirstInvocationKHR 297
371             299:    193(ptr)   AccessChain 75(data) 294 102
372             300:   20(ivec4)   Load 299
373             301:   20(ivec4)   VectorShuffle 300 298 4 5 2 3
374                                Store 299 301
375             302:      6(int)   Load 8(invocation)
376             303:    193(ptr)   AccessChain 75(data) 102 102
377             304:   20(ivec4)   Load 303
378             305:  207(ivec3)   VectorShuffle 304 304 0 1 2
379             306:  207(ivec3)   SubgroupFirstInvocationKHR 305
380             307:    193(ptr)   AccessChain 75(data) 302 102
381             308:   20(ivec4)   Load 307
382             309:   20(ivec4)   VectorShuffle 308 306 4 5 6 3
383                                Store 307 309
384             310:      6(int)   Load 8(invocation)
385             311:    193(ptr)   AccessChain 75(data) 119 102
386             312:   20(ivec4)   Load 311
387             313:   20(ivec4)   SubgroupFirstInvocationKHR 312
388             314:    193(ptr)   AccessChain 75(data) 310 102
389                                Store 314 313
390                                Branch 67
391              67:             Label
392                              Return
393                              FunctionEnd
394