382 lines
20 KiB
Plaintext
382 lines
20 KiB
Plaintext
spv.shaderBallot.comp
|
|
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
|
|
|
|
|
Linked compute stage:
|
|
|
|
|
|
// Module Version 10000
|
|
// Generated by (magic number): 80001
|
|
// Id's are bound by 299
|
|
|
|
Capability Shader
|
|
Capability Int64
|
|
Capability Groups
|
|
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 298 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(int)
|
|
20: TypePointer Input 17(int)
|
|
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)
|
|
63: 6(int) Constant 3
|
|
67: 50(int) Constant 1
|
|
68: TypeVector 48(float) 2
|
|
69: TypePointer Uniform 49(fvec4)
|
|
83: 50(int) Constant 2
|
|
84: TypeVector 48(float) 3
|
|
100: 50(int) Constant 3
|
|
115: TypePointer Uniform 50(int)
|
|
122: TypeVector 50(int) 2
|
|
123: TypePointer Uniform 51(ivec4)
|
|
137: TypeVector 50(int) 3
|
|
167: TypePointer Uniform 6(int)
|
|
174: TypePointer Uniform 38(ivec4)
|
|
188: TypeVector 6(int) 3
|
|
296: 6(int) Constant 8
|
|
297: 6(int) Constant 1
|
|
298: 188(ivec3) ConstantComposite 296 296 297
|
|
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(int) Load 21(gl_SubGroupEqMaskARB)
|
|
24: 17(int) Load 23(gl_SubGroupGeMaskARB)
|
|
25: 17(int) IAdd 22 24
|
|
27: 17(int) Load 26(gl_SubGroupGtMaskARB)
|
|
28: 17(int) IAdd 25 27
|
|
30: 17(int) Load 29(gl_SubGroupLeMaskARB)
|
|
31: 17(int) IAdd 28 30
|
|
33: 17(int) Load 32(gl_SubGroupLtMaskARB)
|
|
34: 17(int) IAdd 31 33
|
|
Store 19(relMask) 34
|
|
35: 17(int) 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(int) Bitcast 43
|
|
45: 36(bool) IEqual 35 44
|
|
SelectionMerge 47 None
|
|
BranchConditional 45 46 217
|
|
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)
|
|
64: 48(float) GroupBroadcast 63 61 62
|
|
65: 59(ptr) AccessChain 55(data) 56 57 58
|
|
Store 65 64
|
|
66: 6(int) Load 8(invocation)
|
|
70: 69(ptr) AccessChain 55(data) 67 57
|
|
71: 49(fvec4) Load 70
|
|
72: 68(fvec2) VectorShuffle 71 71 0 1
|
|
73: 6(int) Load 8(invocation)
|
|
74: 48(float) CompositeExtract 72 0
|
|
75: 48(float) GroupBroadcast 63 74 73
|
|
76: 48(float) CompositeExtract 72 1
|
|
77: 48(float) GroupBroadcast 63 76 73
|
|
78: 68(fvec2) CompositeConstruct 75 77
|
|
79: 69(ptr) AccessChain 55(data) 66 57
|
|
80: 49(fvec4) Load 79
|
|
81: 49(fvec4) VectorShuffle 80 78 4 5 2 3
|
|
Store 79 81
|
|
82: 6(int) Load 8(invocation)
|
|
85: 69(ptr) AccessChain 55(data) 83 57
|
|
86: 49(fvec4) Load 85
|
|
87: 84(fvec3) VectorShuffle 86 86 0 1 2
|
|
88: 6(int) Load 8(invocation)
|
|
89: 48(float) CompositeExtract 87 0
|
|
90: 48(float) GroupBroadcast 63 89 88
|
|
91: 48(float) CompositeExtract 87 1
|
|
92: 48(float) GroupBroadcast 63 91 88
|
|
93: 48(float) CompositeExtract 87 2
|
|
94: 48(float) GroupBroadcast 63 93 88
|
|
95: 84(fvec3) CompositeConstruct 90 92 94
|
|
96: 69(ptr) AccessChain 55(data) 82 57
|
|
97: 49(fvec4) Load 96
|
|
98: 49(fvec4) VectorShuffle 97 95 4 5 6 3
|
|
Store 96 98
|
|
99: 6(int) Load 8(invocation)
|
|
101: 69(ptr) AccessChain 55(data) 100 57
|
|
102: 49(fvec4) Load 101
|
|
103: 6(int) Load 8(invocation)
|
|
104: 48(float) CompositeExtract 102 0
|
|
105: 48(float) GroupBroadcast 63 104 103
|
|
106: 48(float) CompositeExtract 102 1
|
|
107: 48(float) GroupBroadcast 63 106 103
|
|
108: 48(float) CompositeExtract 102 2
|
|
109: 48(float) GroupBroadcast 63 108 103
|
|
110: 48(float) CompositeExtract 102 3
|
|
111: 48(float) GroupBroadcast 63 110 103
|
|
112: 49(fvec4) CompositeConstruct 105 107 109 111
|
|
113: 69(ptr) AccessChain 55(data) 99 57
|
|
Store 113 112
|
|
114: 6(int) Load 8(invocation)
|
|
116: 115(ptr) AccessChain 55(data) 57 67 58
|
|
117: 50(int) Load 116
|
|
118: 6(int) Load 8(invocation)
|
|
119: 50(int) GroupBroadcast 63 117 118
|
|
120: 115(ptr) AccessChain 55(data) 114 67 58
|
|
Store 120 119
|
|
121: 6(int) Load 8(invocation)
|
|
124: 123(ptr) AccessChain 55(data) 67 67
|
|
125: 51(ivec4) Load 124
|
|
126: 122(ivec2) VectorShuffle 125 125 0 1
|
|
127: 6(int) Load 8(invocation)
|
|
128: 50(int) CompositeExtract 126 0
|
|
129: 50(int) GroupBroadcast 63 128 127
|
|
130: 50(int) CompositeExtract 126 1
|
|
131: 50(int) GroupBroadcast 63 130 127
|
|
132: 122(ivec2) CompositeConstruct 129 131
|
|
133: 123(ptr) AccessChain 55(data) 121 67
|
|
134: 51(ivec4) Load 133
|
|
135: 51(ivec4) VectorShuffle 134 132 4 5 2 3
|
|
Store 133 135
|
|
136: 6(int) Load 8(invocation)
|
|
138: 123(ptr) AccessChain 55(data) 83 67
|
|
139: 51(ivec4) Load 138
|
|
140: 137(ivec3) VectorShuffle 139 139 0 1 2
|
|
141: 6(int) Load 8(invocation)
|
|
142: 50(int) CompositeExtract 140 0
|
|
143: 50(int) GroupBroadcast 63 142 141
|
|
144: 50(int) CompositeExtract 140 1
|
|
145: 50(int) GroupBroadcast 63 144 141
|
|
146: 50(int) CompositeExtract 140 2
|
|
147: 50(int) GroupBroadcast 63 146 141
|
|
148: 137(ivec3) CompositeConstruct 143 145 147
|
|
149: 123(ptr) AccessChain 55(data) 136 67
|
|
150: 51(ivec4) Load 149
|
|
151: 51(ivec4) VectorShuffle 150 148 4 5 6 3
|
|
Store 149 151
|
|
152: 6(int) Load 8(invocation)
|
|
153: 123(ptr) AccessChain 55(data) 100 67
|
|
154: 51(ivec4) Load 153
|
|
155: 6(int) Load 8(invocation)
|
|
156: 50(int) CompositeExtract 154 0
|
|
157: 50(int) GroupBroadcast 63 156 155
|
|
158: 50(int) CompositeExtract 154 1
|
|
159: 50(int) GroupBroadcast 63 158 155
|
|
160: 50(int) CompositeExtract 154 2
|
|
161: 50(int) GroupBroadcast 63 160 155
|
|
162: 50(int) CompositeExtract 154 3
|
|
163: 50(int) GroupBroadcast 63 162 155
|
|
164: 51(ivec4) CompositeConstruct 157 159 161 163
|
|
165: 123(ptr) AccessChain 55(data) 152 67
|
|
Store 165 164
|
|
166: 6(int) Load 8(invocation)
|
|
168: 167(ptr) AccessChain 55(data) 57 83 58
|
|
169: 6(int) Load 168
|
|
170: 6(int) Load 8(invocation)
|
|
171: 6(int) GroupBroadcast 63 169 170
|
|
172: 167(ptr) AccessChain 55(data) 166 83 58
|
|
Store 172 171
|
|
173: 6(int) Load 8(invocation)
|
|
175: 174(ptr) AccessChain 55(data) 67 83
|
|
176: 38(ivec4) Load 175
|
|
177: 42(ivec2) VectorShuffle 176 176 0 1
|
|
178: 6(int) Load 8(invocation)
|
|
179: 6(int) CompositeExtract 177 0
|
|
180: 6(int) GroupBroadcast 63 179 178
|
|
181: 6(int) CompositeExtract 177 1
|
|
182: 6(int) GroupBroadcast 63 181 178
|
|
183: 42(ivec2) CompositeConstruct 180 182
|
|
184: 174(ptr) AccessChain 55(data) 173 83
|
|
185: 38(ivec4) Load 184
|
|
186: 38(ivec4) VectorShuffle 185 183 4 5 2 3
|
|
Store 184 186
|
|
187: 6(int) Load 8(invocation)
|
|
189: 174(ptr) AccessChain 55(data) 83 83
|
|
190: 38(ivec4) Load 189
|
|
191: 188(ivec3) VectorShuffle 190 190 0 1 2
|
|
192: 6(int) Load 8(invocation)
|
|
193: 6(int) CompositeExtract 191 0
|
|
194: 6(int) GroupBroadcast 63 193 192
|
|
195: 6(int) CompositeExtract 191 1
|
|
196: 6(int) GroupBroadcast 63 195 192
|
|
197: 6(int) CompositeExtract 191 2
|
|
198: 6(int) GroupBroadcast 63 197 192
|
|
199: 188(ivec3) CompositeConstruct 194 196 198
|
|
200: 174(ptr) AccessChain 55(data) 187 83
|
|
201: 38(ivec4) Load 200
|
|
202: 38(ivec4) VectorShuffle 201 199 4 5 6 3
|
|
Store 200 202
|
|
203: 6(int) Load 8(invocation)
|
|
204: 174(ptr) AccessChain 55(data) 100 83
|
|
205: 38(ivec4) Load 204
|
|
206: 6(int) Load 8(invocation)
|
|
207: 6(int) CompositeExtract 205 0
|
|
208: 6(int) GroupBroadcast 63 207 206
|
|
209: 6(int) CompositeExtract 205 1
|
|
210: 6(int) GroupBroadcast 63 209 206
|
|
211: 6(int) CompositeExtract 205 2
|
|
212: 6(int) GroupBroadcast 63 211 206
|
|
213: 6(int) CompositeExtract 205 3
|
|
214: 6(int) GroupBroadcast 63 213 206
|
|
215: 38(ivec4) CompositeConstruct 208 210 212 214
|
|
216: 174(ptr) AccessChain 55(data) 203 83
|
|
Store 216 215
|
|
Branch 47
|
|
217: Label
|
|
218: 6(int) Load 8(invocation)
|
|
219: 59(ptr) AccessChain 55(data) 57 57 58
|
|
220: 48(float) Load 219
|
|
221: 48(float) SubgroupFirstInvocationKHR 220
|
|
222: 59(ptr) AccessChain 55(data) 218 57 58
|
|
Store 222 221
|
|
223: 6(int) Load 8(invocation)
|
|
224: 69(ptr) AccessChain 55(data) 67 57
|
|
225: 49(fvec4) Load 224
|
|
226: 68(fvec2) VectorShuffle 225 225 0 1
|
|
227: 68(fvec2) SubgroupFirstInvocationKHR 226
|
|
228: 69(ptr) AccessChain 55(data) 223 57
|
|
229: 49(fvec4) Load 228
|
|
230: 49(fvec4) VectorShuffle 229 227 4 5 2 3
|
|
Store 228 230
|
|
231: 6(int) Load 8(invocation)
|
|
232: 69(ptr) AccessChain 55(data) 83 57
|
|
233: 49(fvec4) Load 232
|
|
234: 84(fvec3) VectorShuffle 233 233 0 1 2
|
|
235: 84(fvec3) SubgroupFirstInvocationKHR 234
|
|
236: 69(ptr) AccessChain 55(data) 231 57
|
|
237: 49(fvec4) Load 236
|
|
238: 49(fvec4) VectorShuffle 237 235 4 5 6 3
|
|
Store 236 238
|
|
239: 6(int) Load 8(invocation)
|
|
240: 69(ptr) AccessChain 55(data) 100 57
|
|
241: 49(fvec4) Load 240
|
|
242: 49(fvec4) SubgroupFirstInvocationKHR 241
|
|
243: 69(ptr) AccessChain 55(data) 239 57
|
|
Store 243 242
|
|
244: 6(int) Load 8(invocation)
|
|
245: 115(ptr) AccessChain 55(data) 57 67 58
|
|
246: 50(int) Load 245
|
|
247: 50(int) SubgroupFirstInvocationKHR 246
|
|
248: 115(ptr) AccessChain 55(data) 244 67 58
|
|
Store 248 247
|
|
249: 6(int) Load 8(invocation)
|
|
250: 123(ptr) AccessChain 55(data) 67 67
|
|
251: 51(ivec4) Load 250
|
|
252: 122(ivec2) VectorShuffle 251 251 0 1
|
|
253: 122(ivec2) SubgroupFirstInvocationKHR 252
|
|
254: 123(ptr) AccessChain 55(data) 249 67
|
|
255: 51(ivec4) Load 254
|
|
256: 51(ivec4) VectorShuffle 255 253 4 5 2 3
|
|
Store 254 256
|
|
257: 6(int) Load 8(invocation)
|
|
258: 123(ptr) AccessChain 55(data) 83 67
|
|
259: 51(ivec4) Load 258
|
|
260: 137(ivec3) VectorShuffle 259 259 0 1 2
|
|
261: 137(ivec3) SubgroupFirstInvocationKHR 260
|
|
262: 123(ptr) AccessChain 55(data) 257 67
|
|
263: 51(ivec4) Load 262
|
|
264: 51(ivec4) VectorShuffle 263 261 4 5 6 3
|
|
Store 262 264
|
|
265: 6(int) Load 8(invocation)
|
|
266: 123(ptr) AccessChain 55(data) 100 67
|
|
267: 51(ivec4) Load 266
|
|
268: 51(ivec4) SubgroupFirstInvocationKHR 267
|
|
269: 123(ptr) AccessChain 55(data) 265 67
|
|
Store 269 268
|
|
270: 6(int) Load 8(invocation)
|
|
271: 167(ptr) AccessChain 55(data) 57 83 58
|
|
272: 6(int) Load 271
|
|
273: 6(int) SubgroupFirstInvocationKHR 272
|
|
274: 167(ptr) AccessChain 55(data) 270 83 58
|
|
Store 274 273
|
|
275: 6(int) Load 8(invocation)
|
|
276: 174(ptr) AccessChain 55(data) 67 83
|
|
277: 38(ivec4) Load 276
|
|
278: 42(ivec2) VectorShuffle 277 277 0 1
|
|
279: 42(ivec2) SubgroupFirstInvocationKHR 278
|
|
280: 174(ptr) AccessChain 55(data) 275 83
|
|
281: 38(ivec4) Load 280
|
|
282: 38(ivec4) VectorShuffle 281 279 4 5 2 3
|
|
Store 280 282
|
|
283: 6(int) Load 8(invocation)
|
|
284: 174(ptr) AccessChain 55(data) 83 83
|
|
285: 38(ivec4) Load 284
|
|
286: 188(ivec3) VectorShuffle 285 285 0 1 2
|
|
287: 188(ivec3) SubgroupFirstInvocationKHR 286
|
|
288: 174(ptr) AccessChain 55(data) 283 83
|
|
289: 38(ivec4) Load 288
|
|
290: 38(ivec4) VectorShuffle 289 287 4 5 6 3
|
|
Store 288 290
|
|
291: 6(int) Load 8(invocation)
|
|
292: 174(ptr) AccessChain 55(data) 100 83
|
|
293: 38(ivec4) Load 292
|
|
294: 38(ivec4) SubgroupFirstInvocationKHR 293
|
|
295: 174(ptr) AccessChain 55(data) 291 83
|
|
Store 295 294
|
|
Branch 47
|
|
47: Label
|
|
Return
|
|
FunctionEnd
|