parent
7757cbebe4
commit
71f5f219ad
@ -8559,6 +8559,8 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
|
|||||||
if(taskPayloadID)
|
if(taskPayloadID)
|
||||||
operands.push_back(taskPayloadID);
|
operands.push_back(taskPayloadID);
|
||||||
builder.createNoResultOp(spv::OpEmitMeshTasksEXT, operands);
|
builder.createNoResultOp(spv::OpEmitMeshTasksEXT, operands);
|
||||||
|
// Make it a terminating instruction in the current block
|
||||||
|
builder.createAndSetNoPredecessorBlock("post-OpEmitMeshTasksEXT");
|
||||||
return 0;
|
return 0;
|
||||||
case glslang::EOpSetMeshOutputsEXT:
|
case glslang::EOpSetMeshOutputsEXT:
|
||||||
builder.createNoResultOp(spv::OpSetMeshOutputsEXT, operands);
|
builder.createNoResultOp(spv::OpSetMeshOutputsEXT, operands);
|
||||||
|
@ -776,6 +776,7 @@ public:
|
|||||||
void createConditionalBranch(Id condition, Block* thenBlock, Block* elseBlock);
|
void createConditionalBranch(Id condition, Block* thenBlock, Block* elseBlock);
|
||||||
void createLoopMerge(Block* mergeBlock, Block* continueBlock, unsigned int control,
|
void createLoopMerge(Block* mergeBlock, Block* continueBlock, unsigned int control,
|
||||||
const std::vector<unsigned int>& operands);
|
const std::vector<unsigned int>& operands);
|
||||||
|
void createAndSetNoPredecessorBlock(const char*);
|
||||||
|
|
||||||
// Sets to generate opcode for specialization constants.
|
// Sets to generate opcode for specialization constants.
|
||||||
void setToSpecConstCodeGenMode() { generatingOpCodeForSpecConst = true; }
|
void setToSpecConstCodeGenMode() { generatingOpCodeForSpecConst = true; }
|
||||||
@ -795,7 +796,6 @@ public:
|
|||||||
void remapDynamicSwizzle();
|
void remapDynamicSwizzle();
|
||||||
void transferAccessChainSwizzle(bool dynamic);
|
void transferAccessChainSwizzle(bool dynamic);
|
||||||
void simplifyAccessChainSwizzle();
|
void simplifyAccessChainSwizzle();
|
||||||
void createAndSetNoPredecessorBlock(const char*);
|
|
||||||
void createSelectionMerge(Block* mergeBlock, unsigned int control);
|
void createSelectionMerge(Block* mergeBlock, unsigned int control);
|
||||||
void dumpSourceInstructions(std::vector<unsigned int>&) const;
|
void dumpSourceInstructions(std::vector<unsigned int>&) const;
|
||||||
void dumpSourceInstructions(const spv::Id fileId, const std::string& text, std::vector<unsigned int>&) const;
|
void dumpSourceInstructions(const spv::Id fileId, const std::string& text, std::vector<unsigned int>&) const;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
spv.460.subgroupEXT.task
|
spv.460.subgroupEXT.task
|
||||||
// Module Version 10400
|
// Module Version 10400
|
||||||
// Generated by (magic number): 8000a
|
// Generated by (magic number): 8000a
|
||||||
// Id's are bound by 242
|
// Id's are bound by 243
|
||||||
|
|
||||||
Capability StorageImageWriteWithoutFormat
|
Capability StorageImageWriteWithoutFormat
|
||||||
Capability GroupNonUniform
|
Capability GroupNonUniform
|
||||||
@ -16,7 +16,7 @@ spv.460.subgroupEXT.task
|
|||||||
Extension "SPV_EXT_mesh_shader"
|
Extension "SPV_EXT_mesh_shader"
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
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
|
ExecutionMode 4 LocalSize 32 1 1
|
||||||
Source GLSL 460
|
Source GLSL 460
|
||||||
SourceExtension "GL_EXT_mesh_shader"
|
SourceExtension "GL_EXT_mesh_shader"
|
||||||
@ -56,18 +56,18 @@ spv.460.subgroupEXT.task
|
|||||||
MemberName 100(Task) 0 "dummy"
|
MemberName 100(Task) 0 "dummy"
|
||||||
MemberName 100(Task) 1 "submesh"
|
MemberName 100(Task) 1 "submesh"
|
||||||
Name 102 "mytask"
|
Name 102 "mytask"
|
||||||
Name 122 "gl_SubgroupSize"
|
Name 123 "gl_SubgroupSize"
|
||||||
Name 123 "gl_SubgroupInvocationID"
|
Name 124 "gl_SubgroupInvocationID"
|
||||||
Name 128 "gl_NumSubgroups"
|
Name 129 "gl_NumSubgroups"
|
||||||
Name 129 "gl_SubgroupID"
|
Name 130 "gl_SubgroupID"
|
||||||
Name 132 "gl_SubgroupEqMask"
|
Name 133 "gl_SubgroupEqMask"
|
||||||
Name 133 "gl_SubgroupGeMask"
|
Name 134 "gl_SubgroupGeMask"
|
||||||
Name 134 "gl_SubgroupGtMask"
|
Name 135 "gl_SubgroupGtMask"
|
||||||
Name 135 "gl_SubgroupLeMask"
|
Name 136 "gl_SubgroupLeMask"
|
||||||
Name 136 "gl_SubgroupLtMask"
|
Name 137 "gl_SubgroupLtMask"
|
||||||
Name 142 "ballot"
|
Name 143 "ballot"
|
||||||
Name 180 "ballot"
|
Name 181 "ballot"
|
||||||
Name 215 "ballot"
|
Name 216 "ballot"
|
||||||
Decorate 35(gl_LocalInvocationID) BuiltIn LocalInvocationId
|
Decorate 35(gl_LocalInvocationID) BuiltIn LocalInvocationId
|
||||||
Decorate 41(gl_WorkGroupID) BuiltIn WorkgroupId
|
Decorate 41(gl_WorkGroupID) BuiltIn WorkgroupId
|
||||||
MemberDecorate 59(block0) 0 Offset 0
|
MemberDecorate 59(block0) 0 Offset 0
|
||||||
@ -77,18 +77,18 @@ spv.460.subgroupEXT.task
|
|||||||
Decorate 77(uni_image) DescriptorSet 0
|
Decorate 77(uni_image) DescriptorSet 0
|
||||||
Decorate 77(uni_image) Binding 0
|
Decorate 77(uni_image) Binding 0
|
||||||
Decorate 77(uni_image) NonReadable
|
Decorate 77(uni_image) NonReadable
|
||||||
Decorate 122(gl_SubgroupSize) RelaxedPrecision
|
Decorate 123(gl_SubgroupSize) RelaxedPrecision
|
||||||
Decorate 122(gl_SubgroupSize) BuiltIn SubgroupSize
|
Decorate 123(gl_SubgroupSize) BuiltIn SubgroupSize
|
||||||
Decorate 123(gl_SubgroupInvocationID) RelaxedPrecision
|
Decorate 124(gl_SubgroupInvocationID) RelaxedPrecision
|
||||||
Decorate 123(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
|
Decorate 124(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
|
||||||
Decorate 128(gl_NumSubgroups) BuiltIn NumSubgroups
|
Decorate 129(gl_NumSubgroups) BuiltIn NumSubgroups
|
||||||
Decorate 129(gl_SubgroupID) BuiltIn SubgroupId
|
Decorate 130(gl_SubgroupID) BuiltIn SubgroupId
|
||||||
Decorate 132(gl_SubgroupEqMask) BuiltIn SubgroupEqMaskKHR
|
Decorate 133(gl_SubgroupEqMask) BuiltIn SubgroupEqMaskKHR
|
||||||
Decorate 133(gl_SubgroupGeMask) BuiltIn SubgroupGeMaskKHR
|
Decorate 134(gl_SubgroupGeMask) BuiltIn SubgroupGeMaskKHR
|
||||||
Decorate 134(gl_SubgroupGtMask) BuiltIn SubgroupGtMaskKHR
|
Decorate 135(gl_SubgroupGtMask) BuiltIn SubgroupGtMaskKHR
|
||||||
Decorate 135(gl_SubgroupLeMask) BuiltIn SubgroupLeMaskKHR
|
Decorate 136(gl_SubgroupLeMask) BuiltIn SubgroupLeMaskKHR
|
||||||
Decorate 136(gl_SubgroupLtMask) BuiltIn SubgroupLtMaskKHR
|
Decorate 137(gl_SubgroupLtMask) BuiltIn SubgroupLtMaskKHR
|
||||||
Decorate 241 BuiltIn WorkgroupSize
|
Decorate 242 BuiltIn WorkgroupSize
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
8: TypeFloat 32
|
8: TypeFloat 32
|
||||||
@ -140,28 +140,28 @@ spv.460.subgroupEXT.task
|
|||||||
113: 8(float) Constant 1108082688
|
113: 8(float) Constant 1108082688
|
||||||
114: 97(fvec2) ConstantComposite 112 113
|
114: 97(fvec2) ConstantComposite 112 113
|
||||||
116: 62(int) Constant 2
|
116: 62(int) Constant 2
|
||||||
122(gl_SubgroupSize): 37(ptr) Variable Input
|
123(gl_SubgroupSize): 37(ptr) Variable Input
|
||||||
123(gl_SubgroupInvocationID): 37(ptr) Variable Input
|
124(gl_SubgroupInvocationID): 37(ptr) Variable Input
|
||||||
124: 30(int) Constant 3400
|
125: 30(int) Constant 3400
|
||||||
125: 30(int) Constant 72
|
126: 30(int) Constant 72
|
||||||
126: 30(int) Constant 2056
|
127: 30(int) Constant 2056
|
||||||
128(gl_NumSubgroups): 37(ptr) Variable Input
|
129(gl_NumSubgroups): 37(ptr) Variable Input
|
||||||
129(gl_SubgroupID): 37(ptr) Variable Input
|
130(gl_SubgroupID): 37(ptr) Variable Input
|
||||||
130: TypeVector 30(int) 4
|
131: TypeVector 30(int) 4
|
||||||
131: TypePointer Input 130(ivec4)
|
132: TypePointer Input 131(ivec4)
|
||||||
132(gl_SubgroupEqMask): 131(ptr) Variable Input
|
133(gl_SubgroupEqMask): 132(ptr) Variable Input
|
||||||
133(gl_SubgroupGeMask): 131(ptr) Variable Input
|
134(gl_SubgroupGeMask): 132(ptr) Variable Input
|
||||||
134(gl_SubgroupGtMask): 131(ptr) Variable Input
|
135(gl_SubgroupGtMask): 132(ptr) Variable Input
|
||||||
135(gl_SubgroupLeMask): 131(ptr) Variable Input
|
136(gl_SubgroupLeMask): 132(ptr) Variable Input
|
||||||
136(gl_SubgroupLtMask): 131(ptr) Variable Input
|
137(gl_SubgroupLtMask): 132(ptr) Variable Input
|
||||||
141: TypePointer Function 130(ivec4)
|
142: TypePointer Function 131(ivec4)
|
||||||
143: 52(bool) ConstantFalse
|
144: 52(bool) ConstantFalse
|
||||||
145: 130(ivec4) ConstantComposite 91 91 91 91
|
146: 131(ivec4) ConstantComposite 91 91 91 91
|
||||||
159: 52(bool) ConstantTrue
|
160: 52(bool) ConstantTrue
|
||||||
216: 30(int) Constant 85
|
217: 30(int) Constant 85
|
||||||
217: 130(ivec4) ConstantComposite 216 36 36 36
|
218: 131(ivec4) ConstantComposite 217 36 36 36
|
||||||
240: 30(int) Constant 32
|
241: 30(int) Constant 32
|
||||||
241: 33(ivec3) ConstantComposite 240 91 91
|
242: 33(ivec3) ConstantComposite 241 91 91
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
32(iid): 31(ptr) Variable Function
|
32(iid): 31(ptr) Variable Function
|
||||||
@ -233,144 +233,143 @@ spv.460.subgroupEXT.task
|
|||||||
MemoryBarrier 91 95
|
MemoryBarrier 91 95
|
||||||
ControlBarrier 96 96 95
|
ControlBarrier 96 96 95
|
||||||
EmitMeshTasksEXT 98 91 91 102(mytask)
|
EmitMeshTasksEXT 98 91 91 102(mytask)
|
||||||
Return
|
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
6(basic_works(): 2 Function None 3
|
6(basic_works(): 2 Function None 3
|
||||||
7: Label
|
7: Label
|
||||||
ControlBarrier 98 98 124
|
ControlBarrier 98 98 125
|
||||||
MemoryBarrier 98 124
|
|
||||||
MemoryBarrier 98 125
|
MemoryBarrier 98 125
|
||||||
MemoryBarrier 98 126
|
MemoryBarrier 98 126
|
||||||
127: 52(bool) GroupNonUniformElect 98
|
MemoryBarrier 98 127
|
||||||
|
128: 52(bool) GroupNonUniformElect 98
|
||||||
MemoryBarrier 98 95
|
MemoryBarrier 98 95
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
13(ballot_works(vf4;): 2 Function None 11
|
13(ballot_works(vf4;): 2 Function None 11
|
||||||
12(f4): 10(ptr) FunctionParameter
|
12(f4): 10(ptr) FunctionParameter
|
||||||
14: Label
|
14: Label
|
||||||
142(ballot): 141(ptr) Variable Function
|
143(ballot): 142(ptr) Variable Function
|
||||||
137: 9(fvec4) Load 12(f4)
|
138: 9(fvec4) Load 12(f4)
|
||||||
138: 9(fvec4) GroupNonUniformBroadcast 98 137 36
|
139: 9(fvec4) GroupNonUniformBroadcast 98 138 36
|
||||||
139: 9(fvec4) Load 12(f4)
|
140: 9(fvec4) Load 12(f4)
|
||||||
140: 9(fvec4) GroupNonUniformBroadcastFirst 98 139
|
141: 9(fvec4) GroupNonUniformBroadcastFirst 98 140
|
||||||
144: 130(ivec4) GroupNonUniformBallot 98 143
|
145: 131(ivec4) GroupNonUniformBallot 98 144
|
||||||
Store 142(ballot) 144
|
Store 143(ballot) 145
|
||||||
146: 52(bool) GroupNonUniformInverseBallot 98 145
|
147: 52(bool) GroupNonUniformInverseBallot 98 146
|
||||||
147: 130(ivec4) Load 142(ballot)
|
148: 131(ivec4) Load 143(ballot)
|
||||||
148: 52(bool) GroupNonUniformBallotBitExtract 98 147 36
|
149: 52(bool) GroupNonUniformBallotBitExtract 98 148 36
|
||||||
149: 130(ivec4) Load 142(ballot)
|
150: 131(ivec4) Load 143(ballot)
|
||||||
150: 30(int) GroupNonUniformBallotBitCount 98 Reduce 149
|
151: 30(int) GroupNonUniformBallotBitCount 98 Reduce 150
|
||||||
151: 130(ivec4) Load 142(ballot)
|
152: 131(ivec4) Load 143(ballot)
|
||||||
152: 30(int) GroupNonUniformBallotBitCount 98 InclusiveScan 151
|
153: 30(int) GroupNonUniformBallotBitCount 98 InclusiveScan 152
|
||||||
153: 130(ivec4) Load 142(ballot)
|
154: 131(ivec4) Load 143(ballot)
|
||||||
154: 30(int) GroupNonUniformBallotBitCount 98 ExclusiveScan 153
|
155: 30(int) GroupNonUniformBallotBitCount 98 ExclusiveScan 154
|
||||||
155: 130(ivec4) Load 142(ballot)
|
156: 131(ivec4) Load 143(ballot)
|
||||||
156: 30(int) GroupNonUniformBallotFindLSB 98 155
|
157: 30(int) GroupNonUniformBallotFindLSB 98 156
|
||||||
157: 130(ivec4) Load 142(ballot)
|
158: 131(ivec4) Load 143(ballot)
|
||||||
158: 30(int) GroupNonUniformBallotFindMSB 98 157
|
159: 30(int) GroupNonUniformBallotFindMSB 98 158
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
16(vote_works(vf4;): 2 Function None 11
|
16(vote_works(vf4;): 2 Function None 11
|
||||||
15(f4): 10(ptr) FunctionParameter
|
15(f4): 10(ptr) FunctionParameter
|
||||||
17: Label
|
17: Label
|
||||||
160: 52(bool) GroupNonUniformAll 98 159
|
161: 52(bool) GroupNonUniformAll 98 160
|
||||||
161: 52(bool) GroupNonUniformAny 98 143
|
162: 52(bool) GroupNonUniformAny 98 144
|
||||||
162: 9(fvec4) Load 15(f4)
|
163: 9(fvec4) Load 15(f4)
|
||||||
163: 52(bool) GroupNonUniformAllEqual 98 162
|
164: 52(bool) GroupNonUniformAllEqual 98 163
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
19(shuffle_works(vf4;): 2 Function None 11
|
19(shuffle_works(vf4;): 2 Function None 11
|
||||||
18(f4): 10(ptr) FunctionParameter
|
18(f4): 10(ptr) FunctionParameter
|
||||||
20: Label
|
20: Label
|
||||||
164: 9(fvec4) Load 18(f4)
|
165: 9(fvec4) Load 18(f4)
|
||||||
165: 9(fvec4) GroupNonUniformShuffle 98 164 36
|
166: 9(fvec4) GroupNonUniformShuffle 98 165 36
|
||||||
166: 9(fvec4) Load 18(f4)
|
167: 9(fvec4) Load 18(f4)
|
||||||
167: 9(fvec4) GroupNonUniformShuffleXor 98 166 91
|
168: 9(fvec4) GroupNonUniformShuffleXor 98 167 91
|
||||||
168: 9(fvec4) Load 18(f4)
|
169: 9(fvec4) Load 18(f4)
|
||||||
169: 9(fvec4) GroupNonUniformShuffleUp 98 168 91
|
170: 9(fvec4) GroupNonUniformShuffleUp 98 169 91
|
||||||
170: 9(fvec4) Load 18(f4)
|
171: 9(fvec4) Load 18(f4)
|
||||||
171: 9(fvec4) GroupNonUniformShuffleDown 98 170 91
|
172: 9(fvec4) GroupNonUniformShuffleDown 98 171 91
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
22(arith_works(vf4;): 2 Function None 11
|
22(arith_works(vf4;): 2 Function None 11
|
||||||
21(f4): 10(ptr) FunctionParameter
|
21(f4): 10(ptr) FunctionParameter
|
||||||
23: Label
|
23: Label
|
||||||
180(ballot): 141(ptr) Variable Function
|
181(ballot): 142(ptr) Variable Function
|
||||||
172: 9(fvec4) Load 21(f4)
|
173: 9(fvec4) Load 21(f4)
|
||||||
173: 9(fvec4) GroupNonUniformFAdd 98 Reduce 172
|
174: 9(fvec4) GroupNonUniformFAdd 98 Reduce 173
|
||||||
174: 9(fvec4) Load 21(f4)
|
175: 9(fvec4) Load 21(f4)
|
||||||
175: 9(fvec4) GroupNonUniformFMul 98 Reduce 174
|
176: 9(fvec4) GroupNonUniformFMul 98 Reduce 175
|
||||||
176: 9(fvec4) Load 21(f4)
|
177: 9(fvec4) Load 21(f4)
|
||||||
177: 9(fvec4) GroupNonUniformFMin 98 Reduce 176
|
178: 9(fvec4) GroupNonUniformFMin 98 Reduce 177
|
||||||
178: 9(fvec4) Load 21(f4)
|
179: 9(fvec4) Load 21(f4)
|
||||||
179: 9(fvec4) GroupNonUniformFMax 98 Reduce 178
|
180: 9(fvec4) GroupNonUniformFMax 98 Reduce 179
|
||||||
181: 130(ivec4) Load 180(ballot)
|
182: 131(ivec4) Load 181(ballot)
|
||||||
182: 130(ivec4) GroupNonUniformBitwiseAnd 98 Reduce 181
|
183: 131(ivec4) GroupNonUniformBitwiseAnd 98 Reduce 182
|
||||||
183: 130(ivec4) Load 180(ballot)
|
184: 131(ivec4) Load 181(ballot)
|
||||||
184: 130(ivec4) GroupNonUniformBitwiseOr 98 Reduce 183
|
185: 131(ivec4) GroupNonUniformBitwiseOr 98 Reduce 184
|
||||||
185: 130(ivec4) Load 180(ballot)
|
186: 131(ivec4) Load 181(ballot)
|
||||||
186: 130(ivec4) GroupNonUniformBitwiseXor 98 Reduce 185
|
187: 131(ivec4) GroupNonUniformBitwiseXor 98 Reduce 186
|
||||||
187: 9(fvec4) Load 21(f4)
|
188: 9(fvec4) Load 21(f4)
|
||||||
188: 9(fvec4) GroupNonUniformFAdd 98 InclusiveScan 187
|
189: 9(fvec4) GroupNonUniformFAdd 98 InclusiveScan 188
|
||||||
189: 9(fvec4) Load 21(f4)
|
190: 9(fvec4) Load 21(f4)
|
||||||
190: 9(fvec4) GroupNonUniformFMul 98 InclusiveScan 189
|
191: 9(fvec4) GroupNonUniformFMul 98 InclusiveScan 190
|
||||||
191: 9(fvec4) Load 21(f4)
|
192: 9(fvec4) Load 21(f4)
|
||||||
192: 9(fvec4) GroupNonUniformFMin 98 InclusiveScan 191
|
193: 9(fvec4) GroupNonUniformFMin 98 InclusiveScan 192
|
||||||
193: 9(fvec4) Load 21(f4)
|
194: 9(fvec4) Load 21(f4)
|
||||||
194: 9(fvec4) GroupNonUniformFMax 98 InclusiveScan 193
|
195: 9(fvec4) GroupNonUniformFMax 98 InclusiveScan 194
|
||||||
195: 130(ivec4) Load 180(ballot)
|
196: 131(ivec4) Load 181(ballot)
|
||||||
196: 130(ivec4) GroupNonUniformBitwiseAnd 98 InclusiveScan 195
|
197: 131(ivec4) GroupNonUniformBitwiseAnd 98 InclusiveScan 196
|
||||||
197: 130(ivec4) Load 180(ballot)
|
198: 131(ivec4) Load 181(ballot)
|
||||||
198: 130(ivec4) GroupNonUniformBitwiseOr 98 InclusiveScan 197
|
199: 131(ivec4) GroupNonUniformBitwiseOr 98 InclusiveScan 198
|
||||||
199: 130(ivec4) Load 180(ballot)
|
200: 131(ivec4) Load 181(ballot)
|
||||||
200: 130(ivec4) GroupNonUniformBitwiseXor 98 InclusiveScan 199
|
201: 131(ivec4) GroupNonUniformBitwiseXor 98 InclusiveScan 200
|
||||||
201: 9(fvec4) Load 21(f4)
|
202: 9(fvec4) Load 21(f4)
|
||||||
202: 9(fvec4) GroupNonUniformFAdd 98 ExclusiveScan 201
|
203: 9(fvec4) GroupNonUniformFAdd 98 ExclusiveScan 202
|
||||||
203: 9(fvec4) Load 21(f4)
|
204: 9(fvec4) Load 21(f4)
|
||||||
204: 9(fvec4) GroupNonUniformFMul 98 ExclusiveScan 203
|
205: 9(fvec4) GroupNonUniformFMul 98 ExclusiveScan 204
|
||||||
205: 9(fvec4) Load 21(f4)
|
206: 9(fvec4) Load 21(f4)
|
||||||
206: 9(fvec4) GroupNonUniformFMin 98 ExclusiveScan 205
|
207: 9(fvec4) GroupNonUniformFMin 98 ExclusiveScan 206
|
||||||
207: 9(fvec4) Load 21(f4)
|
208: 9(fvec4) Load 21(f4)
|
||||||
208: 9(fvec4) GroupNonUniformFMax 98 ExclusiveScan 207
|
209: 9(fvec4) GroupNonUniformFMax 98 ExclusiveScan 208
|
||||||
209: 130(ivec4) Load 180(ballot)
|
210: 131(ivec4) Load 181(ballot)
|
||||||
210: 130(ivec4) GroupNonUniformBitwiseAnd 98 ExclusiveScan 209
|
211: 131(ivec4) GroupNonUniformBitwiseAnd 98 ExclusiveScan 210
|
||||||
211: 130(ivec4) Load 180(ballot)
|
212: 131(ivec4) Load 181(ballot)
|
||||||
212: 130(ivec4) GroupNonUniformBitwiseOr 98 ExclusiveScan 211
|
213: 131(ivec4) GroupNonUniformBitwiseOr 98 ExclusiveScan 212
|
||||||
213: 130(ivec4) Load 180(ballot)
|
214: 131(ivec4) Load 181(ballot)
|
||||||
214: 130(ivec4) GroupNonUniformBitwiseXor 98 ExclusiveScan 213
|
215: 131(ivec4) GroupNonUniformBitwiseXor 98 ExclusiveScan 214
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
25(clustered_works(vf4;): 2 Function None 11
|
25(clustered_works(vf4;): 2 Function None 11
|
||||||
24(f4): 10(ptr) FunctionParameter
|
24(f4): 10(ptr) FunctionParameter
|
||||||
26: Label
|
26: Label
|
||||||
215(ballot): 141(ptr) Variable Function
|
216(ballot): 142(ptr) Variable Function
|
||||||
Store 215(ballot) 217
|
Store 216(ballot) 218
|
||||||
218: 9(fvec4) Load 24(f4)
|
219: 9(fvec4) Load 24(f4)
|
||||||
219: 9(fvec4) GroupNonUniformFAdd 98 ClusteredReduce 218 96
|
220: 9(fvec4) GroupNonUniformFAdd 98 ClusteredReduce 219 96
|
||||||
220: 9(fvec4) Load 24(f4)
|
221: 9(fvec4) Load 24(f4)
|
||||||
221: 9(fvec4) GroupNonUniformFMul 98 ClusteredReduce 220 96
|
222: 9(fvec4) GroupNonUniformFMul 98 ClusteredReduce 221 96
|
||||||
222: 9(fvec4) Load 24(f4)
|
223: 9(fvec4) Load 24(f4)
|
||||||
223: 9(fvec4) GroupNonUniformFMin 98 ClusteredReduce 222 96
|
224: 9(fvec4) GroupNonUniformFMin 98 ClusteredReduce 223 96
|
||||||
224: 9(fvec4) Load 24(f4)
|
225: 9(fvec4) Load 24(f4)
|
||||||
225: 9(fvec4) GroupNonUniformFMax 98 ClusteredReduce 224 96
|
226: 9(fvec4) GroupNonUniformFMax 98 ClusteredReduce 225 96
|
||||||
226: 130(ivec4) Load 215(ballot)
|
227: 131(ivec4) Load 216(ballot)
|
||||||
227: 130(ivec4) GroupNonUniformBitwiseAnd 98 ClusteredReduce 226 96
|
228: 131(ivec4) GroupNonUniformBitwiseAnd 98 ClusteredReduce 227 96
|
||||||
228: 130(ivec4) Load 215(ballot)
|
229: 131(ivec4) Load 216(ballot)
|
||||||
229: 130(ivec4) GroupNonUniformBitwiseOr 98 ClusteredReduce 228 96
|
230: 131(ivec4) GroupNonUniformBitwiseOr 98 ClusteredReduce 229 96
|
||||||
230: 130(ivec4) Load 215(ballot)
|
231: 131(ivec4) Load 216(ballot)
|
||||||
231: 130(ivec4) GroupNonUniformBitwiseXor 98 ClusteredReduce 230 96
|
232: 131(ivec4) GroupNonUniformBitwiseXor 98 ClusteredReduce 231 96
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
28(quad_works(vf4;): 2 Function None 11
|
28(quad_works(vf4;): 2 Function None 11
|
||||||
27(f4): 10(ptr) FunctionParameter
|
27(f4): 10(ptr) FunctionParameter
|
||||||
29: Label
|
29: Label
|
||||||
232: 9(fvec4) Load 27(f4)
|
233: 9(fvec4) Load 27(f4)
|
||||||
233: 9(fvec4) GroupNonUniformQuadBroadcast 98 232 36
|
234: 9(fvec4) GroupNonUniformQuadBroadcast 98 233 36
|
||||||
234: 9(fvec4) Load 27(f4)
|
235: 9(fvec4) Load 27(f4)
|
||||||
235: 9(fvec4) GroupNonUniformQuadSwap 98 234 36
|
236: 9(fvec4) GroupNonUniformQuadSwap 98 235 36
|
||||||
236: 9(fvec4) Load 27(f4)
|
237: 9(fvec4) Load 27(f4)
|
||||||
237: 9(fvec4) GroupNonUniformQuadSwap 98 236 91
|
238: 9(fvec4) GroupNonUniformQuadSwap 98 237 91
|
||||||
238: 9(fvec4) Load 27(f4)
|
239: 9(fvec4) Load 27(f4)
|
||||||
239: 9(fvec4) GroupNonUniformQuadSwap 98 238 96
|
240: 9(fvec4) GroupNonUniformQuadSwap 98 239 96
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
spv.ext.meshTaskShader.task
|
spv.ext.meshTaskShader.task
|
||||||
// Module Version 10400
|
// Module Version 10400
|
||||||
// Generated by (magic number): 8000a
|
// Generated by (magic number): 8000a
|
||||||
// Id's are bound by 102
|
// Id's are bound by 103
|
||||||
|
|
||||||
Capability StorageImageWriteWithoutFormat
|
Capability StorageImageWriteWithoutFormat
|
||||||
Capability MeshShadingEXT
|
Capability MeshShadingEXT
|
||||||
@ -36,7 +36,7 @@ spv.ext.meshTaskShader.task
|
|||||||
Decorate 55(uni_image) DescriptorSet 0
|
Decorate 55(uni_image) DescriptorSet 0
|
||||||
Decorate 55(uni_image) Binding 0
|
Decorate 55(uni_image) Binding 0
|
||||||
Decorate 55(uni_image) NonReadable
|
Decorate 55(uni_image) NonReadable
|
||||||
Decorate 101 BuiltIn WorkgroupSize
|
Decorate 102 BuiltIn WorkgroupSize
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeInt 32 0
|
6: TypeInt 32 0
|
||||||
@ -86,8 +86,8 @@ spv.ext.meshTaskShader.task
|
|||||||
91: 30(float) Constant 1108082688
|
91: 30(float) Constant 1108082688
|
||||||
92: 75(fvec2) ConstantComposite 90 91
|
92: 75(fvec2) ConstantComposite 90 91
|
||||||
94: 40(int) Constant 2
|
94: 40(int) Constant 2
|
||||||
100: 6(int) Constant 32
|
101: 6(int) Constant 32
|
||||||
101: 9(ivec3) ConstantComposite 100 69 69
|
102: 9(ivec3) ConstantComposite 101 69 69
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
8(iid): 7(ptr) Variable Function
|
8(iid): 7(ptr) Variable Function
|
||||||
@ -159,5 +159,4 @@ spv.ext.meshTaskShader.task
|
|||||||
MemoryBarrier 69 73
|
MemoryBarrier 69 73
|
||||||
ControlBarrier 74 74 73
|
ControlBarrier 74 74 73
|
||||||
EmitMeshTasksEXT 76 69 69 80(mytask)
|
EmitMeshTasksEXT 76 69 69 80(mytask)
|
||||||
Return
|
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
"site" : "github",
|
"site" : "github",
|
||||||
"subrepo" : "KhronosGroup/SPIRV-Tools",
|
"subrepo" : "KhronosGroup/SPIRV-Tools",
|
||||||
"subdir" : "External/spirv-tools",
|
"subdir" : "External/spirv-tools",
|
||||||
"commit" : "4c456f7da67c5437a6fb7d4d20d78e2a5ae2acf2"
|
"commit" : "59cf5b1346d8b029add67a919f801c29ea13cc49"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name" : "spirv-tools/external/spirv-headers",
|
"name" : "spirv-tools/external/spirv-headers",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user