* [glsl-out] Fix writing named expressions with array types
* [wgsl-out] Remove unsupported builtin from baked expression
* [glsl-out] Add a newline between globals for readability
* Set bake_ref_count to 1 for Expression::Load
* Update snapshot data
This makes Naga IR validation impose the restrictions added to WGSL in
gpuweb/gpuweb#1801.
Remove code in the SPIR-V writer to spill arrays to temporary variables in order
to index them dynamically. If such IR is encountered, treat it as a failure of
validation.
Better errors for Unexpected, BadInteger, BadFloat, BadTexture, BadTypeCast, UnknownScalarType, UnknownStorageClass, UnknownAttribute, UnknownBuiltin, UnknownShaderStage, UnknownStorageFormat and UnknownConservativeDepth, ZeroStride, ZeroSizeOrAlign and UnknownType.
Also adds lexer::capture_span.
Also fixes some validation for texture sample types and and issue that cauld cause e.g. the type `f33` to be parsed as `f32`.
The `apply_common_default_interpolation` helper function would panic if bindings
were missing, but missing bindings should be something that front ends can count
on validation to detect, so the helper should just return silently.
The validator returned `InvalidType` errors for missing bindings, apparently
because variables without bindings must be structs that do have bindings. But
this is unhelpful when you've just forgotten to label an argument. So this patch
adds a new, more specific, `VaryingError` variant.
This lets us reduce noise by removing a bunch of `#[cfg]` attributes. In the
future, if we have tests for other front ends, we can create an `errors`
subdirectory, but for now, we only have the WGSL tests, so we should keep things
flat.
* Add validation-windows yml for HLSL
Add workgroup size to hlsl-out
* Update Readme with Make target information
* Change runs on to windows-latest
* Remove snapshot file
* Add support for arrayLength to the wgsl frontend
* Fix clippy warning
* Add draft support for array length to the msl backend
* Finalize support for array length in msl
* Convert buffer size to array length in msl backend
* Fix clippy warning
* Fix misleading documentation
* Changes based on review of PR
* Use a fake binding for sizes buffer in msl backend if necessary
* Only generate the msl buffer size structure if globals are present that have unsized arrays
* Make sure to generate separators
* Replace uses_unsized_buffers with !self.runtime_sized_buffers.is_empty()
* Clear self.runtime_sized_buffers
* Run snapshot of shadow.msl
* Add Expression::ArrayLength support to the spirv backend
* Remove wgsl target from the access snapshot test
* Update access.msl snapshot
* Update stack size for msl backend
* Update stack size again for msl backend