[naga] Exercise GLSL double-precision builtin functions, and fix the fallout. #4684
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.
Exercise GLSL double-precision builtin functions, and fix the fallout.
[naga] New tests for GLSL double-precision builtin functions.
[naga wgsl-out] Correctly include width in matrix constructions.
When generating WGSL for an
Expression::Compose
constructing amatrix, consult
TypeInner::Matrix::width
when writing thetype name in the construction expression, rather than just always
writing
matNxM<f32>
.Fixes WGSL backend writes
matNxM<f64>
construction expressions incorrectly. #4681.[naga glsl-in] Fix type of double ldexp's second arg.
The second argument of the GLSL
ldexp
builtin is always a 32-bitinteger or a vector of such, never a 64-bit integer. In
inject_common_builtin
, that argument's type should not be influencedby
float_width
.Fixes [naga glsl-in] double-precision ldexp overload expects a 64-bit integer argument #4680.
[naga glsl-in] Fix double overload for dot/reflect/distance/ldexp.
The first argument of the
dot
,reflect
,distance
, andldexp
GLSL builtin functions may be either a float or a double, and thus the
argument type registered by
inject_common_builtin
must depend on thefloat_width
argument; it cannot simply beScalar::F32
.Introduced by [naga] Introduce
Scalar
type to IR. #4673.Checklist
cargo clippy
.cargo clippy --target wasm32-unknown-unknown
if applicable.