• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1spv.460.subgroupEXT.task
2// Module Version 10400
3// Generated by (magic number): 8000b
4// Id's are bound by 243
5
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
21                              Source GLSL 460
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"
31                              Name 4  "main"
32                              Name 6  "basic_works("
33                              Name 13  "ballot_works(vf4;"
34                              Name 12  "f4"
35                              Name 16  "vote_works(vf4;"
36                              Name 15  "f4"
37                              Name 19  "shuffle_works(vf4;"
38                              Name 18  "f4"
39                              Name 22  "arith_works(vf4;"
40                              Name 21  "f4"
41                              Name 25  "clustered_works(vf4;"
42                              Name 24  "f4"
43                              Name 28  "quad_works(vf4;"
44                              Name 27  "f4"
45                              Name 32  "iid"
46                              Name 35  "gl_LocalInvocationID"
47                              Name 40  "gid"
48                              Name 41  "gl_WorkGroupID"
49                              Name 44  "i"
50                              Name 56  "mem"
51                              Name 59  "block0"
52                              MemberName 59(block0) 0  "uni_value"
53                              Name 61  ""
54                              Name 77  "uni_image"
55                              Name 100  "Task"
56                              MemberName 100(Task) 0  "dummy"
57                              MemberName 100(Task) 1  "submesh"
58                              Name 102  "mytask"
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"
68                              Name 143  "ballot"
69                              Name 181  "ballot"
70                              Name 216  "ballot"
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
76                              Decorate 61 Binding 1
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
92               2:             TypeVoid
93               3:             TypeFunction 2
94               8:             TypeFloat 32
95               9:             TypeVector 8(float) 4
96              10:             TypePointer Function 9(fvec4)
97              11:             TypeFunction 2 10(ptr)
98              30:             TypeInt 32 0
99              31:             TypePointer Function 30(int)
100              33:             TypeVector 30(int) 3
101              34:             TypePointer Input 33(ivec3)
10235(gl_LocalInvocationID):     34(ptr) Variable Input
103              36:     30(int) Constant 0
104              37:             TypePointer Input 30(int)
10541(gl_WorkGroupID):     34(ptr) Variable Input
106              51:     30(int) Constant 10
107              52:             TypeBool
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
114              62:             TypeInt 32 1
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
143123(gl_SubgroupSize):     37(ptr) Variable Input
144124(gl_SubgroupInvocationID):     37(ptr) Variable Input
145             125:     30(int) Constant 3400
146             126:     30(int) Constant 72
147             127:     30(int) Constant 2056
148129(gl_NumSubgroups):     37(ptr) Variable Input
149130(gl_SubgroupID):     37(ptr) Variable Input
150             131:             TypeVector 30(int) 4
151             132:             TypePointer Input 131(ivec4)
152133(gl_SubgroupEqMask):    132(ptr) Variable Input
153134(gl_SubgroupGeMask):    132(ptr) Variable Input
154135(gl_SubgroupGtMask):    132(ptr) Variable Input
155136(gl_SubgroupLeMask):    132(ptr) Variable Input
156137(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
166               5:             Label
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
171              39:     30(int) Load 38
172                              Store 32(iid) 39
173              42:     37(ptr) AccessChain 41(gl_WorkGroupID) 36
174              43:     30(int) Load 42
175                              Store 40(gid) 43
176                              Store 44(i) 36
177                              Branch 45
178              45:             Label
179                              LoopMerge 47 48 None
180                              Branch 49
181              49:             Label
182              50:     30(int) Load 44(i)
183              53:    52(bool) ULessThan 50 51
184                              BranchConditional 53 46 47
185              46:               Label
186              57:     30(int)   Load 44(i)
187              58:     30(int)   Load 44(i)
188              65:     64(ptr)   AccessChain 61 63
189              66:     30(int)   Load 65
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
194                                Store 71 69
195                                Branch 48
196              48:               Label
197              72:     30(int)   Load 44(i)
198              74:     30(int)   IAdd 72 73
199                                Store 44(i) 74
200                                Branch 45
201              47:             Label
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
208              85:    9(fvec4) Load 84
209                              ImageWrite 78 82 85
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
217              94:    9(fvec4) Load 93
218                              ImageWrite 86 89 94
219                              MemoryBarrier 91 95
220                              ControlBarrier 96 96 95
221             107:    106(ptr) AccessChain 102(mytask) 63
222                              Store 107 105
223             111:    106(ptr) AccessChain 102(mytask) 73 63
224                              Store 111 110
225             115:    106(ptr) AccessChain 102(mytask) 73 73
226                              Store 115 114
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
232                              Store 121 120
233                              MemoryBarrier 91 95
234                              ControlBarrier 96 96 95
235                              EmitMeshTasksEXT 98 91 91 102(mytask)
236                              FunctionEnd
237 6(basic_works():           2 Function None 3
238               7:             Label
239                              ControlBarrier 98 98 125
240                              MemoryBarrier 98 125
241                              MemoryBarrier 98 126
242                              MemoryBarrier 98 127
243             128:    52(bool) GroupNonUniformElect 98
244                              MemoryBarrier 98 95
245                              Return
246                              FunctionEnd
24713(ballot_works(vf4;):           2 Function None 11
248          12(f4):     10(ptr) FunctionParameter
249              14:             Label
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
270                              Return
271                              FunctionEnd
27216(vote_works(vf4;):           2 Function None 11
273          15(f4):     10(ptr) FunctionParameter
274              17:             Label
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
279                              Return
280                              FunctionEnd
28119(shuffle_works(vf4;):           2 Function None 11
282          18(f4):     10(ptr) FunctionParameter
283              20:             Label
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
292                              Return
293                              FunctionEnd
29422(arith_works(vf4;):           2 Function None 11
295          21(f4):     10(ptr) FunctionParameter
296              23:             Label
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
340                              Return
341                              FunctionEnd
34225(clustered_works(vf4;):           2 Function None 11
343          24(f4):     10(ptr) FunctionParameter
344              26:             Label
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
361                              Return
362                              FunctionEnd
36328(quad_works(vf4;):           2 Function None 11
364          27(f4):     10(ptr) FunctionParameter
365              29:             Label
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
374                              Return
375                              FunctionEnd
376