-
Notifications
You must be signed in to change notification settings - Fork 946
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
64 bit Image Atomics #5537
base: trunk
Are you sure you want to change the base?
64 bit Image Atomics #5537
Conversation
@atlv24 Earlier today you asked me for a suggestion about the texture usages, and a review of the tests. I've posted those now. Is there anything else you need before breaking this up into independent commits for review? |
@jimblandy I've broken it into independent commits already, thanks for the feedback. I've implemented the texture usage stuff, now im working on the tests. :D |
ace6c83
to
ceca097
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking at the wgpu side:
What would prevent you from doing atomics on an image without the image atomics flag set?
The naga validator currently only permits image atomic operations on the r64uint texture format, and only when the feature is available. No provisions were made for other texture formats yet |
I mean the texture creation flag - I believe if you don't include the flag on texture creation it'll still you do atomics on it, as those pieces of data never touch each other. |
3220089
to
52960d9
Compare
@cwfitzgerald i have split this into two PRs: #6706 adds image atomics without any of the 64 bit stuff, this one adds the 64 bit stuff. Only the second commit on this PR is relevant to it, as this PR's branch is based off of the other's, so it includes its commits. |
9a47e03
to
b0753d2
Compare
Connections
Fixes #5009
Depends on #6706
Ultimately for bevy meshlets pipeline bevyengine/bevy#10164
Description
Adds 64 bit image atomics to Vulkan, DirectX, and Metal backends. Emulates using RG32Uint on platforms where R64Uint is not available (directX, metal).
Testing
naga tests and runtime tests are included
Checklist
cargo fmt
.cargo clippy
. If applicable, add:--target wasm32-unknown-unknown
--target wasm32-unknown-emscripten
cargo xtask test
to run tests.CHANGELOG.md
. See simple instructions inside file.