blob: 2f0e5a0b78da022de45d1694f1ecda1e72e71df0 [file] [log] [blame]
spv.shaderBallot.comp
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 298
Capability Shader
Capability Int64
Capability SubgroupBallotKHR
Extension "SPV_KHR_shader_ballot"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "main" 10 12 21 23 26 29 32
ExecutionMode 4 LocalSize 8 8 1
Source GLSL 450
SourceExtension "GL_ARB_gpu_shader_int64"
SourceExtension "GL_ARB_shader_ballot"
Name 4 "main"
Name 8 "invocation"
Name 10 "gl_SubGroupInvocationARB"
Name 12 "gl_SubGroupSizeARB"
Name 19 "relMask"
Name 21 "gl_SubGroupEqMaskARB"
Name 23 "gl_SubGroupGeMaskARB"
Name 26 "gl_SubGroupGtMaskARB"
Name 29 "gl_SubGroupLeMaskARB"
Name 32 "gl_SubGroupLtMaskARB"
Name 52 "Buffers"
MemberName 52(Buffers) 0 "f4"
MemberName 52(Buffers) 1 "i4"
MemberName 52(Buffers) 2 "u4"
Name 55 "data"
Decorate 10(gl_SubGroupInvocationARB) BuiltIn SubgroupLocalInvocationId
Decorate 12(gl_SubGroupSizeARB) BuiltIn SubgroupSize
Decorate 21(gl_SubGroupEqMaskARB) BuiltIn SubgroupEqMaskKHR
Decorate 23(gl_SubGroupGeMaskARB) BuiltIn SubgroupGeMaskKHR
Decorate 26(gl_SubGroupGtMaskARB) BuiltIn SubgroupGtMaskKHR
Decorate 29(gl_SubGroupLeMaskARB) BuiltIn SubgroupLeMaskKHR
Decorate 32(gl_SubGroupLtMaskARB) BuiltIn SubgroupLtMaskKHR
MemberDecorate 52(Buffers) 0 Offset 0
MemberDecorate 52(Buffers) 1 Offset 16
MemberDecorate 52(Buffers) 2 Offset 32
Decorate 52(Buffers) BufferBlock
Decorate 55(data) DescriptorSet 0
Decorate 55(data) Binding 0
Decorate 297 BuiltIn WorkgroupSize
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
7: TypePointer Function 6(int)
9: TypePointer Input 6(int)
10(gl_SubGroupInvocationARB): 9(ptr) Variable Input
12(gl_SubGroupSizeARB): 9(ptr) Variable Input
15: 6(int) Constant 4
17: TypeInt 64 0
18: TypePointer Function 17(int64_t)
20: TypePointer Input 17(int64_t)
21(gl_SubGroupEqMaskARB): 20(ptr) Variable Input
23(gl_SubGroupGeMaskARB): 20(ptr) Variable Input
26(gl_SubGroupGtMaskARB): 20(ptr) Variable Input
29(gl_SubGroupLeMaskARB): 20(ptr) Variable Input
32(gl_SubGroupLtMaskARB): 20(ptr) Variable Input
36: TypeBool
37: 36(bool) ConstantTrue
38: TypeVector 6(int) 4
42: TypeVector 6(int) 2
48: TypeFloat 32
49: TypeVector 48(float) 4
50: TypeInt 32 1
51: TypeVector 50(int) 4
52(Buffers): TypeStruct 49(fvec4) 51(ivec4) 38(ivec4)
53: TypeArray 52(Buffers) 15
54: TypePointer Uniform 53
55(data): 54(ptr) Variable Uniform
57: 50(int) Constant 0
58: 6(int) Constant 0
59: TypePointer Uniform 48(float)
66: 50(int) Constant 1
67: TypeVector 48(float) 2
68: TypePointer Uniform 49(fvec4)
82: 50(int) Constant 2
83: TypeVector 48(float) 3
99: 50(int) Constant 3
114: TypePointer Uniform 50(int)
121: TypeVector 50(int) 2
122: TypePointer Uniform 51(ivec4)
136: TypeVector 50(int) 3
166: TypePointer Uniform 6(int)
173: TypePointer Uniform 38(ivec4)
187: TypeVector 6(int) 3
295: 6(int) Constant 8
296: 6(int) Constant 1
297: 187(ivec3) ConstantComposite 295 295 296
4(main): 2 Function None 3
5: Label
8(invocation): 7(ptr) Variable Function
19(relMask): 18(ptr) Variable Function
11: 6(int) Load 10(gl_SubGroupInvocationARB)
13: 6(int) Load 12(gl_SubGroupSizeARB)
14: 6(int) IAdd 11 13
16: 6(int) UMod 14 15
Store 8(invocation) 16
22: 17(int64_t) Load 21(gl_SubGroupEqMaskARB)
24: 17(int64_t) Load 23(gl_SubGroupGeMaskARB)
25: 17(int64_t) IAdd 22 24
27: 17(int64_t) Load 26(gl_SubGroupGtMaskARB)
28: 17(int64_t) IAdd 25 27
30: 17(int64_t) Load 29(gl_SubGroupLeMaskARB)
31: 17(int64_t) IAdd 28 30
33: 17(int64_t) Load 32(gl_SubGroupLtMaskARB)
34: 17(int64_t) IAdd 31 33
Store 19(relMask) 34
35: 17(int64_t) Load 19(relMask)
39: 38(ivec4) SubgroupBallotKHR 37
40: 6(int) CompositeExtract 39 0
41: 6(int) CompositeExtract 39 1
43: 42(ivec2) CompositeConstruct 40 41
44: 17(int64_t) Bitcast 43
45: 36(bool) IEqual 35 44
SelectionMerge 47 None
BranchConditional 45 46 216
46: Label
56: 6(int) Load 8(invocation)
60: 59(ptr) AccessChain 55(data) 57 57 58
61: 48(float) Load 60
62: 6(int) Load 8(invocation)
63: 48(float) SubgroupReadInvocationKHR 61 62
64: 59(ptr) AccessChain 55(data) 56 57 58
Store 64 63
65: 6(int) Load 8(invocation)
69: 68(ptr) AccessChain 55(data) 66 57
70: 49(fvec4) Load 69
71: 67(fvec2) VectorShuffle 70 70 0 1
72: 6(int) Load 8(invocation)
73: 48(float) CompositeExtract 71 0
74: 48(float) SubgroupReadInvocationKHR 73 72
75: 48(float) CompositeExtract 71 1
76: 48(float) SubgroupReadInvocationKHR 75 72
77: 67(fvec2) CompositeConstruct 74 76
78: 68(ptr) AccessChain 55(data) 65 57
79: 49(fvec4) Load 78
80: 49(fvec4) VectorShuffle 79 77 4 5 2 3
Store 78 80
81: 6(int) Load 8(invocation)
84: 68(ptr) AccessChain 55(data) 82 57
85: 49(fvec4) Load 84
86: 83(fvec3) VectorShuffle 85 85 0 1 2
87: 6(int) Load 8(invocation)
88: 48(float) CompositeExtract 86 0
89: 48(float) SubgroupReadInvocationKHR 88 87
90: 48(float) CompositeExtract 86 1
91: 48(float) SubgroupReadInvocationKHR 90 87
92: 48(float) CompositeExtract 86 2
93: 48(float) SubgroupReadInvocationKHR 92 87
94: 83(fvec3) CompositeConstruct 89 91 93
95: 68(ptr) AccessChain 55(data) 81 57
96: 49(fvec4) Load 95
97: 49(fvec4) VectorShuffle 96 94 4 5 6 3
Store 95 97
98: 6(int) Load 8(invocation)
100: 68(ptr) AccessChain 55(data) 99 57
101: 49(fvec4) Load 100
102: 6(int) Load 8(invocation)
103: 48(float) CompositeExtract 101 0
104: 48(float) SubgroupReadInvocationKHR 103 102
105: 48(float) CompositeExtract 101 1
106: 48(float) SubgroupReadInvocationKHR 105 102
107: 48(float) CompositeExtract 101 2
108: 48(float) SubgroupReadInvocationKHR 107 102
109: 48(float) CompositeExtract 101 3
110: 48(float) SubgroupReadInvocationKHR 109 102
111: 49(fvec4) CompositeConstruct 104 106 108 110
112: 68(ptr) AccessChain 55(data) 98 57
Store 112 111
113: 6(int) Load 8(invocation)
115: 114(ptr) AccessChain 55(data) 57 66 58
116: 50(int) Load 115
117: 6(int) Load 8(invocation)
118: 50(int) SubgroupReadInvocationKHR 116 117
119: 114(ptr) AccessChain 55(data) 113 66 58
Store 119 118
120: 6(int) Load 8(invocation)
123: 122(ptr) AccessChain 55(data) 66 66
124: 51(ivec4) Load 123
125: 121(ivec2) VectorShuffle 124 124 0 1
126: 6(int) Load 8(invocation)
127: 50(int) CompositeExtract 125 0
128: 50(int) SubgroupReadInvocationKHR 127 126
129: 50(int) CompositeExtract 125 1
130: 50(int) SubgroupReadInvocationKHR 129 126
131: 121(ivec2) CompositeConstruct 128 130
132: 122(ptr) AccessChain 55(data) 120 66
133: 51(ivec4) Load 132
134: 51(ivec4) VectorShuffle 133 131 4 5 2 3
Store 132 134
135: 6(int) Load 8(invocation)
137: 122(ptr) AccessChain 55(data) 82 66
138: 51(ivec4) Load 137
139: 136(ivec3) VectorShuffle 138 138 0 1 2
140: 6(int) Load 8(invocation)
141: 50(int) CompositeExtract 139 0
142: 50(int) SubgroupReadInvocationKHR 141 140
143: 50(int) CompositeExtract 139 1
144: 50(int) SubgroupReadInvocationKHR 143 140
145: 50(int) CompositeExtract 139 2
146: 50(int) SubgroupReadInvocationKHR 145 140
147: 136(ivec3) CompositeConstruct 142 144 146
148: 122(ptr) AccessChain 55(data) 135 66
149: 51(ivec4) Load 148
150: 51(ivec4) VectorShuffle 149 147 4 5 6 3
Store 148 150
151: 6(int) Load 8(invocation)
152: 122(ptr) AccessChain 55(data) 99 66
153: 51(ivec4) Load 152
154: 6(int) Load 8(invocation)
155: 50(int) CompositeExtract 153 0
156: 50(int) SubgroupReadInvocationKHR 155 154
157: 50(int) CompositeExtract 153 1
158: 50(int) SubgroupReadInvocationKHR 157 154
159: 50(int) CompositeExtract 153 2
160: 50(int) SubgroupReadInvocationKHR 159 154
161: 50(int) CompositeExtract 153 3
162: 50(int) SubgroupReadInvocationKHR 161 154
163: 51(ivec4) CompositeConstruct 156 158 160 162
164: 122(ptr) AccessChain 55(data) 151 66
Store 164 163
165: 6(int) Load 8(invocation)
167: 166(ptr) AccessChain 55(data) 57 82 58
168: 6(int) Load 167
169: 6(int) Load 8(invocation)
170: 6(int) SubgroupReadInvocationKHR 168 169
171: 166(ptr) AccessChain 55(data) 165 82 58
Store 171 170
172: 6(int) Load 8(invocation)
174: 173(ptr) AccessChain 55(data) 66 82
175: 38(ivec4) Load 174
176: 42(ivec2) VectorShuffle 175 175 0 1
177: 6(int) Load 8(invocation)
178: 6(int) CompositeExtract 176 0
179: 6(int) SubgroupReadInvocationKHR 178 177
180: 6(int) CompositeExtract 176 1
181: 6(int) SubgroupReadInvocationKHR 180 177
182: 42(ivec2) CompositeConstruct 179 181
183: 173(ptr) AccessChain 55(data) 172 82
184: 38(ivec4) Load 183
185: 38(ivec4) VectorShuffle 184 182 4 5 2 3
Store 183 185
186: 6(int) Load 8(invocation)
188: 173(ptr) AccessChain 55(data) 82 82
189: 38(ivec4) Load 188
190: 187(ivec3) VectorShuffle 189 189 0 1 2
191: 6(int) Load 8(invocation)
192: 6(int) CompositeExtract 190 0
193: 6(int) SubgroupReadInvocationKHR 192 191
194: 6(int) CompositeExtract 190 1
195: 6(int) SubgroupReadInvocationKHR 194 191
196: 6(int) CompositeExtract 190 2
197: 6(int) SubgroupReadInvocationKHR 196 191
198: 187(ivec3) CompositeConstruct 193 195 197
199: 173(ptr) AccessChain 55(data) 186 82
200: 38(ivec4) Load 199
201: 38(ivec4) VectorShuffle 200 198 4 5 6 3
Store 199 201
202: 6(int) Load 8(invocation)
203: 173(ptr) AccessChain 55(data) 99 82
204: 38(ivec4) Load 203
205: 6(int) Load 8(invocation)
206: 6(int) CompositeExtract 204 0
207: 6(int) SubgroupReadInvocationKHR 206 205
208: 6(int) CompositeExtract 204 1
209: 6(int) SubgroupReadInvocationKHR 208 205
210: 6(int) CompositeExtract 204 2
211: 6(int) SubgroupReadInvocationKHR 210 205
212: 6(int) CompositeExtract 204 3
213: 6(int) SubgroupReadInvocationKHR 212 205
214: 38(ivec4) CompositeConstruct 207 209 211 213
215: 173(ptr) AccessChain 55(data) 202 82
Store 215 214
Branch 47
216: Label
217: 6(int) Load 8(invocation)
218: 59(ptr) AccessChain 55(data) 57 57 58
219: 48(float) Load 218
220: 48(float) SubgroupFirstInvocationKHR 219
221: 59(ptr) AccessChain 55(data) 217 57 58
Store 221 220
222: 6(int) Load 8(invocation)
223: 68(ptr) AccessChain 55(data) 66 57
224: 49(fvec4) Load 223
225: 67(fvec2) VectorShuffle 224 224 0 1
226: 67(fvec2) SubgroupFirstInvocationKHR 225
227: 68(ptr) AccessChain 55(data) 222 57
228: 49(fvec4) Load 227
229: 49(fvec4) VectorShuffle 228 226 4 5 2 3
Store 227 229
230: 6(int) Load 8(invocation)
231: 68(ptr) AccessChain 55(data) 82 57
232: 49(fvec4) Load 231
233: 83(fvec3) VectorShuffle 232 232 0 1 2
234: 83(fvec3) SubgroupFirstInvocationKHR 233
235: 68(ptr) AccessChain 55(data) 230 57
236: 49(fvec4) Load 235
237: 49(fvec4) VectorShuffle 236 234 4 5 6 3
Store 235 237
238: 6(int) Load 8(invocation)
239: 68(ptr) AccessChain 55(data) 99 57
240: 49(fvec4) Load 239
241: 49(fvec4) SubgroupFirstInvocationKHR 240
242: 68(ptr) AccessChain 55(data) 238 57
Store 242 241
243: 6(int) Load 8(invocation)
244: 114(ptr) AccessChain 55(data) 57 66 58
245: 50(int) Load 244
246: 50(int) SubgroupFirstInvocationKHR 245
247: 114(ptr) AccessChain 55(data) 243 66 58
Store 247 246
248: 6(int) Load 8(invocation)
249: 122(ptr) AccessChain 55(data) 66 66
250: 51(ivec4) Load 249
251: 121(ivec2) VectorShuffle 250 250 0 1
252: 121(ivec2) SubgroupFirstInvocationKHR 251
253: 122(ptr) AccessChain 55(data) 248 66
254: 51(ivec4) Load 253
255: 51(ivec4) VectorShuffle 254 252 4 5 2 3
Store 253 255
256: 6(int) Load 8(invocation)
257: 122(ptr) AccessChain 55(data) 82 66
258: 51(ivec4) Load 257
259: 136(ivec3) VectorShuffle 258 258 0 1 2
260: 136(ivec3) SubgroupFirstInvocationKHR 259
261: 122(ptr) AccessChain 55(data) 256 66
262: 51(ivec4) Load 261
263: 51(ivec4) VectorShuffle 262 260 4 5 6 3
Store 261 263
264: 6(int) Load 8(invocation)
265: 122(ptr) AccessChain 55(data) 99 66
266: 51(ivec4) Load 265
267: 51(ivec4) SubgroupFirstInvocationKHR 266
268: 122(ptr) AccessChain 55(data) 264 66
Store 268 267
269: 6(int) Load 8(invocation)
270: 166(ptr) AccessChain 55(data) 57 82 58
271: 6(int) Load 270
272: 6(int) SubgroupFirstInvocationKHR 271
273: 166(ptr) AccessChain 55(data) 269 82 58
Store 273 272
274: 6(int) Load 8(invocation)
275: 173(ptr) AccessChain 55(data) 66 82
276: 38(ivec4) Load 275
277: 42(ivec2) VectorShuffle 276 276 0 1
278: 42(ivec2) SubgroupFirstInvocationKHR 277
279: 173(ptr) AccessChain 55(data) 274 82
280: 38(ivec4) Load 279
281: 38(ivec4) VectorShuffle 280 278 4 5 2 3
Store 279 281
282: 6(int) Load 8(invocation)
283: 173(ptr) AccessChain 55(data) 82 82
284: 38(ivec4) Load 283
285: 187(ivec3) VectorShuffle 284 284 0 1 2
286: 187(ivec3) SubgroupFirstInvocationKHR 285
287: 173(ptr) AccessChain 55(data) 282 82
288: 38(ivec4) Load 287
289: 38(ivec4) VectorShuffle 288 286 4 5 6 3
Store 287 289
290: 6(int) Load 8(invocation)
291: 173(ptr) AccessChain 55(data) 99 82
292: 38(ivec4) Load 291
293: 38(ivec4) SubgroupFirstInvocationKHR 292
294: 173(ptr) AccessChain 55(data) 290 82
Store 294 293
Branch 47
47: Label
Return
FunctionEnd