* Implement the wrapping in Expression::Load instead
* Add changes to stack size
* stable and nightly can't seem to agree on a stack size
* Apply suggestions
* Add a comment about unexpected path
* Update skybox snapshot
* should_pack_struct_member returns an Option<ScalarKind>
* Remove accidental file
When validating IR, verify that all `Binding`s for vertex shader outputs and
fragment shader inputs, whether directly in the argument or result, or applied
to a struct member, has specified an interpolation and sampling, not `None`.
This ensures that front ends explicitly state their policies, rather than
coasting through on back ends' default behavior.
In practice, all our front ends have very similar defaults, so provide a utility
function on `Module` to apply these rules. Use this utility function in the
SPIR-V and WGSL front ends; GLSL seems to already fill in interpolation as
required.
* Add struct instantiation support to wgsl-in
* Readd type matching and move struct test
* rebase onto master and update tests
* Update tests to upstream
* Fix merge errors
* Rebase onto master
* [wgsl-in] delay composite type creation
* Use the new WGSL construction syntax in the tests
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
* Impl `Hash` for `msl::Options`
* Remove ordered float
* [msl] derive everything on Options manually
* [msl] switch from Arena to Vec for the options
* Fix the clippy error by allowing derive_hash_xor_eq
* Fix skybox test
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
Add a Option<u16> to the snapshot `Params` to let snapshots request specific
Desktop GLSL versions. The default is GLSL ES 3.10.
It would be more general to let the params select any GLSL version, but that
would entail making glsl::Version implement Deserialize and all that, which
seems like overkill.