spv.460.subgroupEXT.task
// Module Version 10400
// Generated by (magic number): 8000a
-// Id's are bound by 242
+// Id's are bound by 243
Capability StorageImageWriteWithoutFormat
Capability GroupNonUniform
Extension "SPV_EXT_mesh_shader"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint TaskEXT 4 "main" 35 41 56 61 77 102 122 123 128 129 132 133 134 135 136
+ EntryPoint TaskEXT 4 "main" 35 41 56 61 77 102 123 124 129 130 133 134 135 136 137
ExecutionMode 4 LocalSize 32 1 1
Source GLSL 460
SourceExtension "GL_EXT_mesh_shader"
MemberName 100(Task) 0 "dummy"
MemberName 100(Task) 1 "submesh"
Name 102 "mytask"
- Name 122 "gl_SubgroupSize"
- Name 123 "gl_SubgroupInvocationID"
- Name 128 "gl_NumSubgroups"
- Name 129 "gl_SubgroupID"
- Name 132 "gl_SubgroupEqMask"
- Name 133 "gl_SubgroupGeMask"
- Name 134 "gl_SubgroupGtMask"
- Name 135 "gl_SubgroupLeMask"
- Name 136 "gl_SubgroupLtMask"
- Name 142 "ballot"
- Name 180 "ballot"
- Name 215 "ballot"
+ Name 123 "gl_SubgroupSize"
+ Name 124 "gl_SubgroupInvocationID"
+ Name 129 "gl_NumSubgroups"
+ Name 130 "gl_SubgroupID"
+ Name 133 "gl_SubgroupEqMask"
+ Name 134 "gl_SubgroupGeMask"
+ Name 135 "gl_SubgroupGtMask"
+ Name 136 "gl_SubgroupLeMask"
+ Name 137 "gl_SubgroupLtMask"
+ Name 143 "ballot"
+ Name 181 "ballot"
+ Name 216 "ballot"
Decorate 35(gl_LocalInvocationID) BuiltIn LocalInvocationId
Decorate 41(gl_WorkGroupID) BuiltIn WorkgroupId
MemberDecorate 59(block0) 0 Offset 0
Decorate 77(uni_image) DescriptorSet 0
Decorate 77(uni_image) Binding 0
Decorate 77(uni_image) NonReadable
- Decorate 122(gl_SubgroupSize) RelaxedPrecision
- Decorate 122(gl_SubgroupSize) BuiltIn SubgroupSize
- Decorate 123(gl_SubgroupInvocationID) RelaxedPrecision
- Decorate 123(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
- Decorate 128(gl_NumSubgroups) BuiltIn NumSubgroups
- Decorate 129(gl_SubgroupID) BuiltIn SubgroupId
- Decorate 132(gl_SubgroupEqMask) BuiltIn SubgroupEqMaskKHR
- Decorate 133(gl_SubgroupGeMask) BuiltIn SubgroupGeMaskKHR
- Decorate 134(gl_SubgroupGtMask) BuiltIn SubgroupGtMaskKHR
- Decorate 135(gl_SubgroupLeMask) BuiltIn SubgroupLeMaskKHR
- Decorate 136(gl_SubgroupLtMask) BuiltIn SubgroupLtMaskKHR
- Decorate 241 BuiltIn WorkgroupSize
+ Decorate 123(gl_SubgroupSize) RelaxedPrecision
+ Decorate 123(gl_SubgroupSize) BuiltIn SubgroupSize
+ Decorate 124(gl_SubgroupInvocationID) RelaxedPrecision
+ Decorate 124(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
+ Decorate 129(gl_NumSubgroups) BuiltIn NumSubgroups
+ Decorate 130(gl_SubgroupID) BuiltIn SubgroupId
+ Decorate 133(gl_SubgroupEqMask) BuiltIn SubgroupEqMaskKHR
+ Decorate 134(gl_SubgroupGeMask) BuiltIn SubgroupGeMaskKHR
+ Decorate 135(gl_SubgroupGtMask) BuiltIn SubgroupGtMaskKHR
+ Decorate 136(gl_SubgroupLeMask) BuiltIn SubgroupLeMaskKHR
+ Decorate 137(gl_SubgroupLtMask) BuiltIn SubgroupLtMaskKHR
+ Decorate 242 BuiltIn WorkgroupSize
2: TypeVoid
3: TypeFunction 2
8: TypeFloat 32
113: 8(float) Constant 1108082688
114: 97(fvec2) ConstantComposite 112 113
116: 62(int) Constant 2
-122(gl_SubgroupSize): 37(ptr) Variable Input
-123(gl_SubgroupInvocationID): 37(ptr) Variable Input
- 124: 30(int) Constant 3400
- 125: 30(int) Constant 72
- 126: 30(int) Constant 2056
-128(gl_NumSubgroups): 37(ptr) Variable Input
-129(gl_SubgroupID): 37(ptr) Variable Input
- 130: TypeVector 30(int) 4
- 131: TypePointer Input 130(ivec4)
-132(gl_SubgroupEqMask): 131(ptr) Variable Input
-133(gl_SubgroupGeMask): 131(ptr) Variable Input
-134(gl_SubgroupGtMask): 131(ptr) Variable Input
-135(gl_SubgroupLeMask): 131(ptr) Variable Input
-136(gl_SubgroupLtMask): 131(ptr) Variable Input
- 141: TypePointer Function 130(ivec4)
- 143: 52(bool) ConstantFalse
- 145: 130(ivec4) ConstantComposite 91 91 91 91
- 159: 52(bool) ConstantTrue
- 216: 30(int) Constant 85
- 217: 130(ivec4) ConstantComposite 216 36 36 36
- 240: 30(int) Constant 32
- 241: 33(ivec3) ConstantComposite 240 91 91
+123(gl_SubgroupSize): 37(ptr) Variable Input
+124(gl_SubgroupInvocationID): 37(ptr) Variable Input
+ 125: 30(int) Constant 3400
+ 126: 30(int) Constant 72
+ 127: 30(int) Constant 2056
+129(gl_NumSubgroups): 37(ptr) Variable Input
+130(gl_SubgroupID): 37(ptr) Variable Input
+ 131: TypeVector 30(int) 4
+ 132: TypePointer Input 131(ivec4)
+133(gl_SubgroupEqMask): 132(ptr) Variable Input
+134(gl_SubgroupGeMask): 132(ptr) Variable Input
+135(gl_SubgroupGtMask): 132(ptr) Variable Input
+136(gl_SubgroupLeMask): 132(ptr) Variable Input
+137(gl_SubgroupLtMask): 132(ptr) Variable Input
+ 142: TypePointer Function 131(ivec4)
+ 144: 52(bool) ConstantFalse
+ 146: 131(ivec4) ConstantComposite 91 91 91 91
+ 160: 52(bool) ConstantTrue
+ 217: 30(int) Constant 85
+ 218: 131(ivec4) ConstantComposite 217 36 36 36
+ 241: 30(int) Constant 32
+ 242: 33(ivec3) ConstantComposite 241 91 91
4(main): 2 Function None 3
5: Label
32(iid): 31(ptr) Variable Function
MemoryBarrier 91 95
ControlBarrier 96 96 95
EmitMeshTasksEXT 98 91 91 102(mytask)
- Return
FunctionEnd
6(basic_works(): 2 Function None 3
7: Label
- ControlBarrier 98 98 124
- MemoryBarrier 98 124
+ ControlBarrier 98 98 125
MemoryBarrier 98 125
MemoryBarrier 98 126
- 127: 52(bool) GroupNonUniformElect 98
+ MemoryBarrier 98 127
+ 128: 52(bool) GroupNonUniformElect 98
MemoryBarrier 98 95
Return
FunctionEnd
13(ballot_works(vf4;): 2 Function None 11
12(f4): 10(ptr) FunctionParameter
14: Label
- 142(ballot): 141(ptr) Variable Function
- 137: 9(fvec4) Load 12(f4)
- 138: 9(fvec4) GroupNonUniformBroadcast 98 137 36
- 139: 9(fvec4) Load 12(f4)
- 140: 9(fvec4) GroupNonUniformBroadcastFirst 98 139
- 144: 130(ivec4) GroupNonUniformBallot 98 143
- Store 142(ballot) 144
- 146: 52(bool) GroupNonUniformInverseBallot 98 145
- 147: 130(ivec4) Load 142(ballot)
- 148: 52(bool) GroupNonUniformBallotBitExtract 98 147 36
- 149: 130(ivec4) Load 142(ballot)
- 150: 30(int) GroupNonUniformBallotBitCount 98 Reduce 149
- 151: 130(ivec4) Load 142(ballot)
- 152: 30(int) GroupNonUniformBallotBitCount 98 InclusiveScan 151
- 153: 130(ivec4) Load 142(ballot)
- 154: 30(int) GroupNonUniformBallotBitCount 98 ExclusiveScan 153
- 155: 130(ivec4) Load 142(ballot)
- 156: 30(int) GroupNonUniformBallotFindLSB 98 155
- 157: 130(ivec4) Load 142(ballot)
- 158: 30(int) GroupNonUniformBallotFindMSB 98 157
+ 143(ballot): 142(ptr) Variable Function
+ 138: 9(fvec4) Load 12(f4)
+ 139: 9(fvec4) GroupNonUniformBroadcast 98 138 36
+ 140: 9(fvec4) Load 12(f4)
+ 141: 9(fvec4) GroupNonUniformBroadcastFirst 98 140
+ 145: 131(ivec4) GroupNonUniformBallot 98 144
+ Store 143(ballot) 145
+ 147: 52(bool) GroupNonUniformInverseBallot 98 146
+ 148: 131(ivec4) Load 143(ballot)
+ 149: 52(bool) GroupNonUniformBallotBitExtract 98 148 36
+ 150: 131(ivec4) Load 143(ballot)
+ 151: 30(int) GroupNonUniformBallotBitCount 98 Reduce 150
+ 152: 131(ivec4) Load 143(ballot)
+ 153: 30(int) GroupNonUniformBallotBitCount 98 InclusiveScan 152
+ 154: 131(ivec4) Load 143(ballot)
+ 155: 30(int) GroupNonUniformBallotBitCount 98 ExclusiveScan 154
+ 156: 131(ivec4) Load 143(ballot)
+ 157: 30(int) GroupNonUniformBallotFindLSB 98 156
+ 158: 131(ivec4) Load 143(ballot)
+ 159: 30(int) GroupNonUniformBallotFindMSB 98 158
Return
FunctionEnd
16(vote_works(vf4;): 2 Function None 11
15(f4): 10(ptr) FunctionParameter
17: Label
- 160: 52(bool) GroupNonUniformAll 98 159
- 161: 52(bool) GroupNonUniformAny 98 143
- 162: 9(fvec4) Load 15(f4)
- 163: 52(bool) GroupNonUniformAllEqual 98 162
+ 161: 52(bool) GroupNonUniformAll 98 160
+ 162: 52(bool) GroupNonUniformAny 98 144
+ 163: 9(fvec4) Load 15(f4)
+ 164: 52(bool) GroupNonUniformAllEqual 98 163
Return
FunctionEnd
19(shuffle_works(vf4;): 2 Function None 11
18(f4): 10(ptr) FunctionParameter
20: Label
- 164: 9(fvec4) Load 18(f4)
- 165: 9(fvec4) GroupNonUniformShuffle 98 164 36
- 166: 9(fvec4) Load 18(f4)
- 167: 9(fvec4) GroupNonUniformShuffleXor 98 166 91
- 168: 9(fvec4) Load 18(f4)
- 169: 9(fvec4) GroupNonUniformShuffleUp 98 168 91
- 170: 9(fvec4) Load 18(f4)
- 171: 9(fvec4) GroupNonUniformShuffleDown 98 170 91
+ 165: 9(fvec4) Load 18(f4)
+ 166: 9(fvec4) GroupNonUniformShuffle 98 165 36
+ 167: 9(fvec4) Load 18(f4)
+ 168: 9(fvec4) GroupNonUniformShuffleXor 98 167 91
+ 169: 9(fvec4) Load 18(f4)
+ 170: 9(fvec4) GroupNonUniformShuffleUp 98 169 91
+ 171: 9(fvec4) Load 18(f4)
+ 172: 9(fvec4) GroupNonUniformShuffleDown 98 171 91
Return
FunctionEnd
22(arith_works(vf4;): 2 Function None 11
21(f4): 10(ptr) FunctionParameter
23: Label
- 180(ballot): 141(ptr) Variable Function
- 172: 9(fvec4) Load 21(f4)
- 173: 9(fvec4) GroupNonUniformFAdd 98 Reduce 172
- 174: 9(fvec4) Load 21(f4)
- 175: 9(fvec4) GroupNonUniformFMul 98 Reduce 174
- 176: 9(fvec4) Load 21(f4)
- 177: 9(fvec4) GroupNonUniformFMin 98 Reduce 176
- 178: 9(fvec4) Load 21(f4)
- 179: 9(fvec4) GroupNonUniformFMax 98 Reduce 178
- 181: 130(ivec4) Load 180(ballot)
- 182: 130(ivec4) GroupNonUniformBitwiseAnd 98 Reduce 181
- 183: 130(ivec4) Load 180(ballot)
- 184: 130(ivec4) GroupNonUniformBitwiseOr 98 Reduce 183
- 185: 130(ivec4) Load 180(ballot)
- 186: 130(ivec4) GroupNonUniformBitwiseXor 98 Reduce 185
- 187: 9(fvec4) Load 21(f4)
- 188: 9(fvec4) GroupNonUniformFAdd 98 InclusiveScan 187
- 189: 9(fvec4) Load 21(f4)
- 190: 9(fvec4) GroupNonUniformFMul 98 InclusiveScan 189
- 191: 9(fvec4) Load 21(f4)
- 192: 9(fvec4) GroupNonUniformFMin 98 InclusiveScan 191
- 193: 9(fvec4) Load 21(f4)
- 194: 9(fvec4) GroupNonUniformFMax 98 InclusiveScan 193
- 195: 130(ivec4) Load 180(ballot)
- 196: 130(ivec4) GroupNonUniformBitwiseAnd 98 InclusiveScan 195
- 197: 130(ivec4) Load 180(ballot)
- 198: 130(ivec4) GroupNonUniformBitwiseOr 98 InclusiveScan 197
- 199: 130(ivec4) Load 180(ballot)
- 200: 130(ivec4) GroupNonUniformBitwiseXor 98 InclusiveScan 199
- 201: 9(fvec4) Load 21(f4)
- 202: 9(fvec4) GroupNonUniformFAdd 98 ExclusiveScan 201
- 203: 9(fvec4) Load 21(f4)
- 204: 9(fvec4) GroupNonUniformFMul 98 ExclusiveScan 203
- 205: 9(fvec4) Load 21(f4)
- 206: 9(fvec4) GroupNonUniformFMin 98 ExclusiveScan 205
- 207: 9(fvec4) Load 21(f4)
- 208: 9(fvec4) GroupNonUniformFMax 98 ExclusiveScan 207
- 209: 130(ivec4) Load 180(ballot)
- 210: 130(ivec4) GroupNonUniformBitwiseAnd 98 ExclusiveScan 209
- 211: 130(ivec4) Load 180(ballot)
- 212: 130(ivec4) GroupNonUniformBitwiseOr 98 ExclusiveScan 211
- 213: 130(ivec4) Load 180(ballot)
- 214: 130(ivec4) GroupNonUniformBitwiseXor 98 ExclusiveScan 213
+ 181(ballot): 142(ptr) Variable Function
+ 173: 9(fvec4) Load 21(f4)
+ 174: 9(fvec4) GroupNonUniformFAdd 98 Reduce 173
+ 175: 9(fvec4) Load 21(f4)
+ 176: 9(fvec4) GroupNonUniformFMul 98 Reduce 175
+ 177: 9(fvec4) Load 21(f4)
+ 178: 9(fvec4) GroupNonUniformFMin 98 Reduce 177
+ 179: 9(fvec4) Load 21(f4)
+ 180: 9(fvec4) GroupNonUniformFMax 98 Reduce 179
+ 182: 131(ivec4) Load 181(ballot)
+ 183: 131(ivec4) GroupNonUniformBitwiseAnd 98 Reduce 182
+ 184: 131(ivec4) Load 181(ballot)
+ 185: 131(ivec4) GroupNonUniformBitwiseOr 98 Reduce 184
+ 186: 131(ivec4) Load 181(ballot)
+ 187: 131(ivec4) GroupNonUniformBitwiseXor 98 Reduce 186
+ 188: 9(fvec4) Load 21(f4)
+ 189: 9(fvec4) GroupNonUniformFAdd 98 InclusiveScan 188
+ 190: 9(fvec4) Load 21(f4)
+ 191: 9(fvec4) GroupNonUniformFMul 98 InclusiveScan 190
+ 192: 9(fvec4) Load 21(f4)
+ 193: 9(fvec4) GroupNonUniformFMin 98 InclusiveScan 192
+ 194: 9(fvec4) Load 21(f4)
+ 195: 9(fvec4) GroupNonUniformFMax 98 InclusiveScan 194
+ 196: 131(ivec4) Load 181(ballot)
+ 197: 131(ivec4) GroupNonUniformBitwiseAnd 98 InclusiveScan 196
+ 198: 131(ivec4) Load 181(ballot)
+ 199: 131(ivec4) GroupNonUniformBitwiseOr 98 InclusiveScan 198
+ 200: 131(ivec4) Load 181(ballot)
+ 201: 131(ivec4) GroupNonUniformBitwiseXor 98 InclusiveScan 200
+ 202: 9(fvec4) Load 21(f4)
+ 203: 9(fvec4) GroupNonUniformFAdd 98 ExclusiveScan 202
+ 204: 9(fvec4) Load 21(f4)
+ 205: 9(fvec4) GroupNonUniformFMul 98 ExclusiveScan 204
+ 206: 9(fvec4) Load 21(f4)
+ 207: 9(fvec4) GroupNonUniformFMin 98 ExclusiveScan 206
+ 208: 9(fvec4) Load 21(f4)
+ 209: 9(fvec4) GroupNonUniformFMax 98 ExclusiveScan 208
+ 210: 131(ivec4) Load 181(ballot)
+ 211: 131(ivec4) GroupNonUniformBitwiseAnd 98 ExclusiveScan 210
+ 212: 131(ivec4) Load 181(ballot)
+ 213: 131(ivec4) GroupNonUniformBitwiseOr 98 ExclusiveScan 212
+ 214: 131(ivec4) Load 181(ballot)
+ 215: 131(ivec4) GroupNonUniformBitwiseXor 98 ExclusiveScan 214
Return
FunctionEnd
25(clustered_works(vf4;): 2 Function None 11
24(f4): 10(ptr) FunctionParameter
26: Label
- 215(ballot): 141(ptr) Variable Function
- Store 215(ballot) 217
- 218: 9(fvec4) Load 24(f4)
- 219: 9(fvec4) GroupNonUniformFAdd 98 ClusteredReduce 218 96
- 220: 9(fvec4) Load 24(f4)
- 221: 9(fvec4) GroupNonUniformFMul 98 ClusteredReduce 220 96
- 222: 9(fvec4) Load 24(f4)
- 223: 9(fvec4) GroupNonUniformFMin 98 ClusteredReduce 222 96
- 224: 9(fvec4) Load 24(f4)
- 225: 9(fvec4) GroupNonUniformFMax 98 ClusteredReduce 224 96
- 226: 130(ivec4) Load 215(ballot)
- 227: 130(ivec4) GroupNonUniformBitwiseAnd 98 ClusteredReduce 226 96
- 228: 130(ivec4) Load 215(ballot)
- 229: 130(ivec4) GroupNonUniformBitwiseOr 98 ClusteredReduce 228 96
- 230: 130(ivec4) Load 215(ballot)
- 231: 130(ivec4) GroupNonUniformBitwiseXor 98 ClusteredReduce 230 96
+ 216(ballot): 142(ptr) Variable Function
+ Store 216(ballot) 218
+ 219: 9(fvec4) Load 24(f4)
+ 220: 9(fvec4) GroupNonUniformFAdd 98 ClusteredReduce 219 96
+ 221: 9(fvec4) Load 24(f4)
+ 222: 9(fvec4) GroupNonUniformFMul 98 ClusteredReduce 221 96
+ 223: 9(fvec4) Load 24(f4)
+ 224: 9(fvec4) GroupNonUniformFMin 98 ClusteredReduce 223 96
+ 225: 9(fvec4) Load 24(f4)
+ 226: 9(fvec4) GroupNonUniformFMax 98 ClusteredReduce 225 96
+ 227: 131(ivec4) Load 216(ballot)
+ 228: 131(ivec4) GroupNonUniformBitwiseAnd 98 ClusteredReduce 227 96
+ 229: 131(ivec4) Load 216(ballot)
+ 230: 131(ivec4) GroupNonUniformBitwiseOr 98 ClusteredReduce 229 96
+ 231: 131(ivec4) Load 216(ballot)
+ 232: 131(ivec4) GroupNonUniformBitwiseXor 98 ClusteredReduce 231 96
Return
FunctionEnd
28(quad_works(vf4;): 2 Function None 11
27(f4): 10(ptr) FunctionParameter
29: Label
- 232: 9(fvec4) Load 27(f4)
- 233: 9(fvec4) GroupNonUniformQuadBroadcast 98 232 36
- 234: 9(fvec4) Load 27(f4)
- 235: 9(fvec4) GroupNonUniformQuadSwap 98 234 36
- 236: 9(fvec4) Load 27(f4)
- 237: 9(fvec4) GroupNonUniformQuadSwap 98 236 91
- 238: 9(fvec4) Load 27(f4)
- 239: 9(fvec4) GroupNonUniformQuadSwap 98 238 96
+ 233: 9(fvec4) Load 27(f4)
+ 234: 9(fvec4) GroupNonUniformQuadBroadcast 98 233 36
+ 235: 9(fvec4) Load 27(f4)
+ 236: 9(fvec4) GroupNonUniformQuadSwap 98 235 36
+ 237: 9(fvec4) Load 27(f4)
+ 238: 9(fvec4) GroupNonUniformQuadSwap 98 237 91
+ 239: 9(fvec4) Load 27(f4)
+ 240: 9(fvec4) GroupNonUniformQuadSwap 98 239 96
Return
FunctionEnd