DepthStencilState validation fixes #8840
Open
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.
The depth-related fields are optional in the WebGPU API, and must be specified iff they are relevant to the configuration. In order to have
wgpu-coreprovide a common implementation of this validation for all the JS clients, this changes pipeline descriptors to use a newDepthStencilStateIdlstruct that matches the spec (at least for the enable/compare -- it still differs from the spec in that the depth bias values are not inlined).DepthStencilStateis maintained as-is so that implementations can keep the same struct literals and just add a call to.into(). I also added some associated method constructors that will be forwards-compatible with makingDepthStencilStatelook likeDepthStencilStateIdl.There is some related discussion in Matrix. We may decide to create a separate
DepthStatestruct instead.This PR conflicts with #8856. Whichever lands second should enable the entire
depth_stencil_statesuite.Testing
Enables some relevant CTS tests.
Squash or Rebase? Squash
Checklist
cargo fmt.taplo format.cargo clippy --tests. If applicable, add:--target wasm32-unknown-unknowncargo xtask testto run tests.CHANGELOG.mdentry.