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