Fix portable-atomic
on wgpu-hal
#7735
Open
+114
−66
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Connections
no_std
support #7599Description
wgpu-hal
has aportable-atomic
feature, butalloc::sync::Arc
is unconditionally used, causing a compilation failure onthumbv6m-none-eabi
, as this target does not support atomic pointers. This can be almost trivially resolved by usingportable-atomic-util
, which provides an API-compatibleArc
based onportable-atomic
.Note that while WGPU does not support
thumbv6m-none-eabi
(and it is not tested in CI), I am using it to represent targets without atomic pointers that the project may wish to support in the future.Also note that this PR is branched from #7599, as
no_std
support is required to test the atomics failure condition. Once #7599 is merged, this PR will reduce to its most recent commit.Finally, to ensure
portable-atomic
is kept out of the dependency graph, it is up to users to enableonce_cell/portable-atomic
on their own when required.Testing
thumbv6m-none-eabi
Squash or Rebase?
Squash
Checklist
cargo fmt
.taplo format
.cargo clippy --tests
. If applicable, add:--target wasm32-unknown-unknown
cargo xtask test
to run tests.If this contains user-facing changes, add aN/ACHANGELOG.md
entry.