`spirv-std` features for APIs that are not universally available
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 3.4k
- Forks
- 125
- PR merge metrics
- No merged PRs in 30d
Description
OTOH, there does exist a
SequentiallyConsistentin SPIR-V, so if we wanted to, we could move the error to the new SPIR-T-based validator pass, so you're only going to see if thematch ordering {...}doesn't get optimized away.
Originally posted by @eddyb in #399
This is another frustrating part of rust-gpu for me. It exposes all possible permutations of things possible in SPIR-V, even though some of them are only possible in a specific version, some only in OpenCL (is it even a relevant target at this point?), and some are technically valid for Vulkan as such, but not supported by WebGPU/wgpu.
It'd be nice if spirv-std had features flags that hide certain APIs that are specific to Vulkan-only or OpenCL-only or require a specific SPIR-V version (ideally, with Vulkan version aliases).
Some meta feature that only exposes portable features usable with wgpu would be useful as well, but that might be a stretch (though it would be a serious usability improvement).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the spirv-std API surface and the referenced SPIR-V and SPIR-T validator discussion. Define which APIs should be gated by Vulkan, OpenCL, SPIR-V, or wgpu portability requirements, and consider how feature aliases would be represented; done means the feature boundaries and portability behavior are specified and implemented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- compilers, computer-graphics
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100