1 spv.460.subgroupEXT.task
2 // Module Version 10400
3 // Generated by (magic number): 8000b
4 // Id's are bound by 243
6 Capability StorageImageWriteWithoutFormat
7 Capability GroupNonUniform
8 Capability GroupNonUniformVote
9 Capability GroupNonUniformArithmetic
10 Capability GroupNonUniformBallot
11 Capability GroupNonUniformShuffle
12 Capability GroupNonUniformShuffleRelative
13 Capability GroupNonUniformClustered
14 Capability GroupNonUniformQuad
15 Capability MeshShadingEXT
16 Extension "SPV_EXT_mesh_shader"
17 1: ExtInstImport "GLSL.std.450"
18 MemoryModel Logical GLSL450
19 EntryPoint TaskEXT 4 "main" 35 41 56 61 77 102 123 124 129 130 133 134 135 136 137
20 ExecutionMode 4 LocalSize 32 1 1
22 SourceExtension "GL_EXT_mesh_shader"
23 SourceExtension "GL_KHR_shader_subgroup_arithmetic"
24 SourceExtension "GL_KHR_shader_subgroup_ballot"
25 SourceExtension "GL_KHR_shader_subgroup_basic"
26 SourceExtension "GL_KHR_shader_subgroup_clustered"
27 SourceExtension "GL_KHR_shader_subgroup_quad"
28 SourceExtension "GL_KHR_shader_subgroup_shuffle"
29 SourceExtension "GL_KHR_shader_subgroup_shuffle_relative"
30 SourceExtension "GL_KHR_shader_subgroup_vote"
33 Name 13 "ballot_works(vf4;"
35 Name 16 "vote_works(vf4;"
37 Name 19 "shuffle_works(vf4;"
39 Name 22 "arith_works(vf4;"
41 Name 25 "clustered_works(vf4;"
43 Name 28 "quad_works(vf4;"
46 Name 35 "gl_LocalInvocationID"
48 Name 41 "gl_WorkGroupID"
52 MemberName 59(block0) 0 "uni_value"
56 MemberName 100(Task) 0 "dummy"
57 MemberName 100(Task) 1 "submesh"
59 Name 123 "gl_SubgroupSize"
60 Name 124 "gl_SubgroupInvocationID"
61 Name 129 "gl_NumSubgroups"
62 Name 130 "gl_SubgroupID"
63 Name 133 "gl_SubgroupEqMask"
64 Name 134 "gl_SubgroupGeMask"
65 Name 135 "gl_SubgroupGtMask"
66 Name 136 "gl_SubgroupLeMask"
67 Name 137 "gl_SubgroupLtMask"
71 Decorate 35(gl_LocalInvocationID) BuiltIn LocalInvocationId
72 Decorate 41(gl_WorkGroupID) BuiltIn WorkgroupId
73 MemberDecorate 59(block0) 0 Offset 0
74 Decorate 59(block0) Block
75 Decorate 61 DescriptorSet 0
77 Decorate 77(uni_image) DescriptorSet 0
78 Decorate 77(uni_image) Binding 0
79 Decorate 77(uni_image) NonReadable
80 Decorate 123(gl_SubgroupSize) RelaxedPrecision
81 Decorate 123(gl_SubgroupSize) BuiltIn SubgroupSize
82 Decorate 124(gl_SubgroupInvocationID) RelaxedPrecision
83 Decorate 124(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
84 Decorate 129(gl_NumSubgroups) BuiltIn NumSubgroups
85 Decorate 130(gl_SubgroupID) BuiltIn SubgroupId
86 Decorate 133(gl_SubgroupEqMask) BuiltIn SubgroupEqMaskKHR
87 Decorate 134(gl_SubgroupGeMask) BuiltIn SubgroupGeMaskKHR
88 Decorate 135(gl_SubgroupGtMask) BuiltIn SubgroupGtMaskKHR
89 Decorate 136(gl_SubgroupLeMask) BuiltIn SubgroupLeMaskKHR
90 Decorate 137(gl_SubgroupLtMask) BuiltIn SubgroupLtMaskKHR
91 Decorate 242 BuiltIn WorkgroupSize
95 9: TypeVector 8(float) 4
96 10: TypePointer Function 9(fvec4)
97 11: TypeFunction 2 10(ptr)
99 31: TypePointer Function 30(int)
100 33: TypeVector 30(int) 3
101 34: TypePointer Input 33(ivec3)
102 35(gl_LocalInvocationID): 34(ptr) Variable Input
103 36: 30(int) Constant 0
104 37: TypePointer Input 30(int)
105 41(gl_WorkGroupID): 34(ptr) Variable Input
106 51: 30(int) Constant 10
108 54: TypeArray 9(fvec4) 51
109 55: TypePointer Workgroup 54
110 56(mem): 55(ptr) Variable Workgroup
111 59(block0): TypeStruct 30(int)
112 60: TypePointer Uniform 59(block0)
113 61: 60(ptr) Variable Uniform
115 63: 62(int) Constant 0
116 64: TypePointer Uniform 30(int)
117 70: TypePointer Workgroup 9(fvec4)
118 73: 62(int) Constant 1
119 75: TypeImage 8(float) 2D nonsampled format:Unknown
120 76: TypePointer UniformConstant 75
121 77(uni_image): 76(ptr) Variable UniformConstant
122 81: TypeVector 62(int) 2
123 91: 30(int) Constant 1
124 95: 30(int) Constant 264
125 96: 30(int) Constant 2
126 97: TypeVector 8(float) 2
127 98: 30(int) Constant 3
128 99: TypeArray 97(fvec2) 98
129 100(Task): TypeStruct 97(fvec2) 99
130 101: TypePointer TaskPayloadWorkgroupEXT 100(Task)
131 102(mytask): 101(ptr) Variable TaskPayloadWorkgroupEXT
132 103: 8(float) Constant 1106247680
133 104: 8(float) Constant 1106771968
134 105: 97(fvec2) ConstantComposite 103 104
135 106: TypePointer TaskPayloadWorkgroupEXT 97(fvec2)
136 108: 8(float) Constant 1107296256
137 109: 8(float) Constant 1107558400
138 110: 97(fvec2) ConstantComposite 108 109
139 112: 8(float) Constant 1107820544
140 113: 8(float) Constant 1108082688
141 114: 97(fvec2) ConstantComposite 112 113
142 116: 62(int) Constant 2
143 123(gl_SubgroupSize): 37(ptr) Variable Input
144 124(gl_SubgroupInvocationID): 37(ptr) Variable Input
145 125: 30(int) Constant 3400
146 126: 30(int) Constant 72
147 127: 30(int) Constant 2056
148 129(gl_NumSubgroups): 37(ptr) Variable Input
149 130(gl_SubgroupID): 37(ptr) Variable Input
150 131: TypeVector 30(int) 4
151 132: TypePointer Input 131(ivec4)
152 133(gl_SubgroupEqMask): 132(ptr) Variable Input
153 134(gl_SubgroupGeMask): 132(ptr) Variable Input
154 135(gl_SubgroupGtMask): 132(ptr) Variable Input
155 136(gl_SubgroupLeMask): 132(ptr) Variable Input
156 137(gl_SubgroupLtMask): 132(ptr) Variable Input
157 142: TypePointer Function 131(ivec4)
158 144: 52(bool) ConstantFalse
159 146: 131(ivec4) ConstantComposite 91 91 91 91
160 160: 52(bool) ConstantTrue
161 217: 30(int) Constant 85
162 218: 131(ivec4) ConstantComposite 217 36 36 36
163 241: 30(int) Constant 32
164 242: 33(ivec3) ConstantComposite 241 91 91
165 4(main): 2 Function None 3
167 32(iid): 31(ptr) Variable Function
168 40(gid): 31(ptr) Variable Function
169 44(i): 31(ptr) Variable Function
170 38: 37(ptr) AccessChain 35(gl_LocalInvocationID) 36
173 42: 37(ptr) AccessChain 41(gl_WorkGroupID) 36
182 50: 30(int) Load 44(i)
183 53: 52(bool) ULessThan 50 51
184 BranchConditional 53 46 47
186 57: 30(int) Load 44(i)
187 58: 30(int) Load 44(i)
188 65: 64(ptr) AccessChain 61 63
190 67: 30(int) IAdd 58 66
191 68: 8(float) ConvertUToF 67
192 69: 9(fvec4) CompositeConstruct 68 68 68 68
193 71: 70(ptr) AccessChain 56(mem) 57
197 72: 30(int) Load 44(i)
198 74: 30(int) IAdd 72 73
202 78: 75 Load 77(uni_image)
203 79: 30(int) Load 32(iid)
204 80: 62(int) Bitcast 79
205 82: 81(ivec2) CompositeConstruct 80 80
206 83: 30(int) Load 40(gid)
207 84: 70(ptr) AccessChain 56(mem) 83
210 86: 75 Load 77(uni_image)
211 87: 30(int) Load 32(iid)
212 88: 62(int) Bitcast 87
213 89: 81(ivec2) CompositeConstruct 88 88
214 90: 30(int) Load 40(gid)
215 92: 30(int) IAdd 90 91
216 93: 70(ptr) AccessChain 56(mem) 92
220 ControlBarrier 96 96 95
221 107: 106(ptr) AccessChain 102(mytask) 63
223 111: 106(ptr) AccessChain 102(mytask) 73 63
225 115: 106(ptr) AccessChain 102(mytask) 73 73
227 117: 30(int) Load 40(gid)
228 118: 30(int) UMod 117 96
229 119: 106(ptr) AccessChain 102(mytask) 73 118
230 120: 97(fvec2) Load 119
231 121: 106(ptr) AccessChain 102(mytask) 73 116
234 ControlBarrier 96 96 95
235 EmitMeshTasksEXT 98 91 91 102(mytask)
237 6(basic_works(): 2 Function None 3
239 ControlBarrier 98 98 125
243 128: 52(bool) GroupNonUniformElect 98
247 13(ballot_works(vf4;): 2 Function None 11
248 12(f4): 10(ptr) FunctionParameter
250 143(ballot): 142(ptr) Variable Function
251 138: 9(fvec4) Load 12(f4)
252 139: 9(fvec4) GroupNonUniformBroadcast 98 138 36
253 140: 9(fvec4) Load 12(f4)
254 141: 9(fvec4) GroupNonUniformBroadcastFirst 98 140
255 145: 131(ivec4) GroupNonUniformBallot 98 144
256 Store 143(ballot) 145
257 147: 52(bool) GroupNonUniformInverseBallot 98 146
258 148: 131(ivec4) Load 143(ballot)
259 149: 52(bool) GroupNonUniformBallotBitExtract 98 148 36
260 150: 131(ivec4) Load 143(ballot)
261 151: 30(int) GroupNonUniformBallotBitCount 98 Reduce 150
262 152: 131(ivec4) Load 143(ballot)
263 153: 30(int) GroupNonUniformBallotBitCount 98 InclusiveScan 152
264 154: 131(ivec4) Load 143(ballot)
265 155: 30(int) GroupNonUniformBallotBitCount 98 ExclusiveScan 154
266 156: 131(ivec4) Load 143(ballot)
267 157: 30(int) GroupNonUniformBallotFindLSB 98 156
268 158: 131(ivec4) Load 143(ballot)
269 159: 30(int) GroupNonUniformBallotFindMSB 98 158
272 16(vote_works(vf4;): 2 Function None 11
273 15(f4): 10(ptr) FunctionParameter
275 161: 52(bool) GroupNonUniformAll 98 160
276 162: 52(bool) GroupNonUniformAny 98 144
277 163: 9(fvec4) Load 15(f4)
278 164: 52(bool) GroupNonUniformAllEqual 98 163
281 19(shuffle_works(vf4;): 2 Function None 11
282 18(f4): 10(ptr) FunctionParameter
284 165: 9(fvec4) Load 18(f4)
285 166: 9(fvec4) GroupNonUniformShuffle 98 165 36
286 167: 9(fvec4) Load 18(f4)
287 168: 9(fvec4) GroupNonUniformShuffleXor 98 167 91
288 169: 9(fvec4) Load 18(f4)
289 170: 9(fvec4) GroupNonUniformShuffleUp 98 169 91
290 171: 9(fvec4) Load 18(f4)
291 172: 9(fvec4) GroupNonUniformShuffleDown 98 171 91
294 22(arith_works(vf4;): 2 Function None 11
295 21(f4): 10(ptr) FunctionParameter
297 181(ballot): 142(ptr) Variable Function
298 173: 9(fvec4) Load 21(f4)
299 174: 9(fvec4) GroupNonUniformFAdd 98 Reduce 173
300 175: 9(fvec4) Load 21(f4)
301 176: 9(fvec4) GroupNonUniformFMul 98 Reduce 175
302 177: 9(fvec4) Load 21(f4)
303 178: 9(fvec4) GroupNonUniformFMin 98 Reduce 177
304 179: 9(fvec4) Load 21(f4)
305 180: 9(fvec4) GroupNonUniformFMax 98 Reduce 179
306 182: 131(ivec4) Load 181(ballot)
307 183: 131(ivec4) GroupNonUniformBitwiseAnd 98 Reduce 182
308 184: 131(ivec4) Load 181(ballot)
309 185: 131(ivec4) GroupNonUniformBitwiseOr 98 Reduce 184
310 186: 131(ivec4) Load 181(ballot)
311 187: 131(ivec4) GroupNonUniformBitwiseXor 98 Reduce 186
312 188: 9(fvec4) Load 21(f4)
313 189: 9(fvec4) GroupNonUniformFAdd 98 InclusiveScan 188
314 190: 9(fvec4) Load 21(f4)
315 191: 9(fvec4) GroupNonUniformFMul 98 InclusiveScan 190
316 192: 9(fvec4) Load 21(f4)
317 193: 9(fvec4) GroupNonUniformFMin 98 InclusiveScan 192
318 194: 9(fvec4) Load 21(f4)
319 195: 9(fvec4) GroupNonUniformFMax 98 InclusiveScan 194
320 196: 131(ivec4) Load 181(ballot)
321 197: 131(ivec4) GroupNonUniformBitwiseAnd 98 InclusiveScan 196
322 198: 131(ivec4) Load 181(ballot)
323 199: 131(ivec4) GroupNonUniformBitwiseOr 98 InclusiveScan 198
324 200: 131(ivec4) Load 181(ballot)
325 201: 131(ivec4) GroupNonUniformBitwiseXor 98 InclusiveScan 200
326 202: 9(fvec4) Load 21(f4)
327 203: 9(fvec4) GroupNonUniformFAdd 98 ExclusiveScan 202
328 204: 9(fvec4) Load 21(f4)
329 205: 9(fvec4) GroupNonUniformFMul 98 ExclusiveScan 204
330 206: 9(fvec4) Load 21(f4)
331 207: 9(fvec4) GroupNonUniformFMin 98 ExclusiveScan 206
332 208: 9(fvec4) Load 21(f4)
333 209: 9(fvec4) GroupNonUniformFMax 98 ExclusiveScan 208
334 210: 131(ivec4) Load 181(ballot)
335 211: 131(ivec4) GroupNonUniformBitwiseAnd 98 ExclusiveScan 210
336 212: 131(ivec4) Load 181(ballot)
337 213: 131(ivec4) GroupNonUniformBitwiseOr 98 ExclusiveScan 212
338 214: 131(ivec4) Load 181(ballot)
339 215: 131(ivec4) GroupNonUniformBitwiseXor 98 ExclusiveScan 214
342 25(clustered_works(vf4;): 2 Function None 11
343 24(f4): 10(ptr) FunctionParameter
345 216(ballot): 142(ptr) Variable Function
346 Store 216(ballot) 218
347 219: 9(fvec4) Load 24(f4)
348 220: 9(fvec4) GroupNonUniformFAdd 98 ClusteredReduce 219 96
349 221: 9(fvec4) Load 24(f4)
350 222: 9(fvec4) GroupNonUniformFMul 98 ClusteredReduce 221 96
351 223: 9(fvec4) Load 24(f4)
352 224: 9(fvec4) GroupNonUniformFMin 98 ClusteredReduce 223 96
353 225: 9(fvec4) Load 24(f4)
354 226: 9(fvec4) GroupNonUniformFMax 98 ClusteredReduce 225 96
355 227: 131(ivec4) Load 216(ballot)
356 228: 131(ivec4) GroupNonUniformBitwiseAnd 98 ClusteredReduce 227 96
357 229: 131(ivec4) Load 216(ballot)
358 230: 131(ivec4) GroupNonUniformBitwiseOr 98 ClusteredReduce 229 96
359 231: 131(ivec4) Load 216(ballot)
360 232: 131(ivec4) GroupNonUniformBitwiseXor 98 ClusteredReduce 231 96
363 28(quad_works(vf4;): 2 Function None 11
364 27(f4): 10(ptr) FunctionParameter
366 233: 9(fvec4) Load 27(f4)
367 234: 9(fvec4) GroupNonUniformQuadBroadcast 98 233 36
368 235: 9(fvec4) Load 27(f4)
369 236: 9(fvec4) GroupNonUniformQuadSwap 98 235 36
370 237: 9(fvec4) Load 27(f4)
371 238: 9(fvec4) GroupNonUniformQuadSwap 98 237 91
372 239: 9(fvec4) Load 27(f4)
373 240: 9(fvec4) GroupNonUniformQuadSwap 98 239 96