Subgroup Operations#5301
Subgroup Operations#5301cwfitzgerald merged 89 commits intogfx-rs:trunkfrom Lichtso:subgroup_feature
Conversation
…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.
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
|
I fiddled with the Vulkan backend since yesterday and it is still complaining that:
Even though I coupled the setting of @teoxoy Ideas? |
|
Ah yes, we need to explicitly enable it when creating the device. I think the only thing missing is actually pushing the struct. wgpu/wgpu-hal/src/vulkan/adapter.rs Line 150 in 82dead0 |
…_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT.
|
I think the last remaining thing is #5301 (comment). |
|
Merge conflicts and compile errors fixed here: https://github.com/Lichtso/wgpu/pull/1 |
…ingError::InvalidMultiDimensionalSubgroupBuiltIn.
teoxoy
left a comment
There was a problem hiding this comment.
I think it's time 🎉
Thank you for this substantial contribution!
|
@cwfitzgerald do you want to give this another look? Since you've previously requested changes. |
|
I can touch up the changelog, there is a merge conlfict on trunk between this and #5508 that I'm fixing |
|
I put together a new issue to track the differences between our implementation and the WebGPU proposal #5555. |
Additional PR for code review as requested in #4190 (comment).
Resolves #4428