Rust-GPU / Rust-GPU/rust-gpu

`spirv-std` features for APIs that are not universally available

Open
#438 2 comments 0 reactions 0 assignees View on GitHub

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 SequentiallyConsistent in 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 the match 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.