Skip to content

Remove wgpu feature. Add wgpu_27 and wgpu_28 features.#1330

Closed
nicoburns wants to merge 3 commits intolinebender:mainfrom
nicoburns:wgpu28
Closed

Remove wgpu feature. Add wgpu_27 and wgpu_28 features.#1330
nicoburns wants to merge 3 commits intolinebender:mainfrom
nicoburns:wgpu28

Conversation

@nicoburns
Copy link
Copy Markdown
Contributor

@nicoburns nicoburns commented Dec 21, 2025

Objective

Allow the same version of Vello to compile with multiple versions of WGPU (current v27 and v28):

  • This should make it easier to upgrade to new versions of WGPU promptly without worrying about leaving users who may still need an older WGPU version behind.
  • In many cases, it may also make upgrading WGPU a non-breaking change.

Prior Art

The i-slint-core crate has similar feature flags for WGPU versions (https://docs.rs/crate/i-slint-core/latest/features)

Changes made

  • Replace the wgpu and naga feature flags in the vello, vello_hybrid, vello_shaders and vello_sparse_shaders crates with wgpu_27, wgpu_28 (and naga_27, naga_28) feature flags.
  • Re-export e.g. wgpu_28 as wgpu in the crate roots
  • The wgpu-profiler and hot-reload debug features are currently configured to only work with the latest WGPU version.

Todo

@waywardmonkeys
Copy link
Copy Markdown
Collaborator

I'd like to see this happen and get a release out!

Do you want to update this or should someone else take it up?

cc: @xStrom @PoignardAzur

@xStrom
Copy link
Copy Markdown
Member

xStrom commented Mar 3, 2026

I'm not sure if it's worth actually supporting multiple wgpu versions. However, just as a technical note, the features should also work if both are selected. Probably the highest version should win then. So in this PR if both wgpu_27 and wgpu_28 are enabled, it should work the same way as if just wgpu_28 was enabled. This keeps --all-features functional.

Copy link
Copy Markdown
Collaborator

@PoignardAzur PoignardAzur left a comment

Choose a reason for hiding this comment

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

I don't have a strong opinion on this, but it seems like a lot of churn.

Comment on lines +30 to +31
// debug_assert_eq!(info.push_constant_items.len(), 0, "unimplemented");
debug_assert_eq!(info.immediates_items.len(), 0, "unimplemented");
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Leftover comment?

@nicoburns nicoburns closed this Apr 21, 2026
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.

4 participants