mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-12 21:20:06 +00:00
374 lines
20 KiB
Plaintext
374 lines
20 KiB
Plaintext
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
|