[BREAKING] Make Shader(Module)Source::Wgsl
optional
#2890
Merged
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.
Checklist
cargo clippy
.RUSTFLAGS=--cfg=web_sys_unstable_apis cargo clippy --target wasm32-unknown-unknown
if applicable.Connections
Discussed in Matrix.
Description
This is totally a breaking change! It also might turn out entirely unnecessary if the compile-time savings aren't worth the added complexity.
At the moment the
naga
wgsl-in
crate feature is active even when completely unnecessary. This addresses it by gatingShader(Module)Source::Wgsl
behind a newwgsl
crate feature, like withShaderSource::Glsl
for example. The addedwgsl
crate feature is also active by default.Code quality is definitely a bit worse with all of these
#[cfg(...)]
now. CI time is increased because--no-default-features
has to be tested.I also didn't know what to do about
Shader(Module)Source
s lifetime, at the moment the lifetime is not present when the only active variant isNaga
, which I consider very user unfriendly and could only be fixed by either stop usingCow
or adding a dummy lifetime to theNaga
variant.This could also be solved by #2903, so maybe we should merge that first.(can't bind'a
to the'static
inCow
)I also had to increase the MSRV to 1.60 to not unnecessarily pull in
wgpu-core
on WASM by using the weak dependency feature.Testing
Added additional runs with
--no-default-features
in the CI.