Skip to content

Implement subgroup quad ops#7683

Merged
teoxoy merged 10 commits intogfx-rs:trunkfrom
dzamkov:subgroup-quad
May 26, 2025
Merged

Implement subgroup quad ops#7683
teoxoy merged 10 commits intogfx-rs:trunkfrom
dzamkov:subgroup-quad

Conversation

@dzamkov
Copy link
Copy Markdown
Contributor

@dzamkov dzamkov commented May 12, 2025

Connections
Partially solves #5555
Resolves #5670

Description
Resurrecting #5684, which implements WGSL's (now accepted) quad operations:

  • Rebased onto trunk
  • Made QuadSwap operations an instance of SubgroupGather, simplifying the code
  • Cleaning up unused code
  • Fix to Vulkan backend

Testing

  • Added Naga snapshot tests
  • Added GPU tests
  • Integrated into personal project and verified quad operations are working as expected (Vulkan backend only)

Squash or Rebase?

Squash

Checklist

  • Run cargo fmt.
  • Run taplo format.
  • Run cargo clippy --tests. If applicable, add:
    • --target wasm32-unknown-unknown
  • Run cargo xtask test to run tests.
  • If this contains user-facing changes, add a CHANGELOG.md entry.

@dzamkov dzamkov requested a review from a team as a code owner May 12, 2025 01:59
Copy link
Copy Markdown
Member

@teoxoy teoxoy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good overall, thanks for reviving this!

@dzamkov dzamkov requested a review from teoxoy May 24, 2025 03:05
@teoxoy teoxoy merged commit 9c023e5 into gfx-rs:trunk May 26, 2025
38 checks passed
sharmajai pushed a commit to sharmajai/wgpu that referenced this pull request Oct 12, 2025
* Rudimentary impl of quad ops, impl quad ops for spirv

* Impl quad swap for hlsl, msl and wgsl, finish spv front

* Cargo clippy & cargo fmt, impl valid for quad ops

* Enable quad feature

* Add missing feature to glsl

* Simplifying code by making `SubgroupQuadSwap` an instance of `SubgroupGather`

* Add `GroupNonUniformQuad` spv capability to Vulkan

* Adding GPU tests for quad operations

* Validate that broadcast operations use const invocation ids

* Added changelog entry

---------

Co-authored-by: valaphee <32491319+valaphee@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Subgroup quad operations

3 participants