-
Notifications
You must be signed in to change notification settings - Fork 193
Conversation
b5d9974
to
4f2a204
Compare
d86df59
to
d6841e7
Compare
Regarding the built-ins, there should not only be Also, as broadcast is included, the shuffles should be added as well. They are the more generalized subgroup gather operations, where as broadcast is a special case of a shuffle where all threads gather from the same source. |
08dec85
to
ef0bd1c
Compare
…sl-out TODO: metal out, figure out what needs to be done in validation
SPIR-V OpControlBarrier with execution scope Subgroup has implementation defined behavior when executed nonuniformly. OpenCL SPIR-V execution spec say nonuniform execution is UB. Vulkan SPIR-V execution spec says nothing :).
…eUp, GatherMode::ShuffleXor.
f0839f0
to
c257748
Compare
supported operations and stages subgroup operations are supported on can be passed to the validator after creating it operations are grouped to follow vulkan: - basic: elect, barrier - vote: any, all - arithmetic: reductions, scan - ballot: ballot, broadcasts, - shuffle: shuffles, - shuffle relative: shuffle up, down
c257748
to
63e2da9
Compare
Okay, so, a bunch of thoughts on this:
Would it make sense to land this work as a long-lived branch, maintained by interested parties, taking regular merges from |
A way to make this easier to review would be to gather as much relevant information as possible into an investigation with a subsequent proposal in the spec repo, as right now gpuweb/gpuweb#4306 and other issues seem to have scattered and missing info on the topic. gfx-rs/wgpu#4190 (comment) & gfx-rs/wgpu#4190 (comment) are a good start! |
Thanks @teoxoy, @jimblandy for for taking a look at this!
👍 With gfx-rs/wgpu#4231 upcoming, it should also be relatively straightforward for interested users to point at a single Additionally if there's any way I can break up these changes to make them easier to review I'm happy to consider doing that.
I'll see what I can do about that! |
Moved into gfx-rs/wgpu#4190 |
Moved to gfx-rs/wgpu#4190
Adds new capability
SUBGROUP
, required for a shader to use subgroup builtin functions or parameters.Adds new validator settings
subgroup_operations
andsubgroup_stages
determining which sets of the below subgroup operations are valid, and which stages they are valid in.BASIC
operations:VOTE
operations:ARITHMETIC
operations:BALLOT
operations:SHUFFLE
operations:SHUFFLE_RELATIVE
operationsNew builtins:
related: gfx-rs/wgpu#4428