Teodor Tanasoaia
e25280df93
[glsl/spv-out] Cull functions that should not be available for a given stage ( #2531 )
2023-10-18 12:50:52 +00:00
teoxoy
6854b0ab4f
disallow ptr to workgroup fn arguments
2023-10-16 19:03:14 -07:00
teoxoy
0cfd2213cc
[msl-out] remove min version check on storage address space
2023-10-16 19:02:58 -07:00
Jim Blandy
9eb3a1dc8a
[wgsl-out] Generate correct code for bit complement on integers.
...
Remove incorrect special case for `UnaryOperator::Not` on vectors.
2023-10-12 13:18:19 +02:00
Jim Blandy
1b485ea925
[wgsl-in] Don't double-initialize variables local to loops.
2023-10-12 13:13:26 +02:00
teoxoy
4f453b4041
avoid const-evaluating the operators.wgsl
snapshot
2023-10-12 13:13:26 +02:00
teoxoy
d8ceeae3b2
Avoid FXC's error X3694: race condition writing to shared resource detected
2023-10-12 13:13:26 +02:00
Jim Blandy
ca2e810492
Properly recognize Literal
expressions as non-dynamic indices. ( #2537 )
...
Restore `negative_index` test in `tests/wgsl-errors.rs`, as part of
the `invalid_arrays` test function.
2023-10-12 13:13:26 +02:00
teoxoy
4e95667a1c
[wgsl] test usage of constants in switch cases
2023-10-12 13:13:26 +02:00
teoxoy
5de27f2078
[wgsl] test const evaluation of division and multiplication
2023-10-12 13:13:26 +02:00
teoxoy
b95a72b2f6
[wgsl] test @workgroup_size
attribute with constants
2023-10-12 13:13:26 +02:00
teoxoy
55dd0e1fbc
[wgsl-in] don't treat let
declarations as const
declarations
2023-10-12 13:13:26 +02:00
teoxoy
3d346977e5
avoid having constants pointing to other constants
2023-10-12 13:13:26 +02:00
Jim Blandy
c16a298cac
Let ConstantEvaluator see through Constant exprs in Splat exprs.
2023-10-12 13:13:26 +02:00
Jim Blandy
3e4d565576
Let ConstantEvaluator see through Constant exprs in Compose exprs.
2023-10-12 13:13:26 +02:00
Jim Blandy
6bd15e4492
Add snapshot tests for constant evaluation of splats and composes.
2023-10-12 13:13:26 +02:00
teoxoy
c33d7ee40d
add an expression constness tracker
2023-10-12 13:13:26 +02:00
Jim Blandy
ab177af3ba
Test that only constant expressions are hoisted to initializers.
2023-10-12 13:13:26 +02:00
Jim Blandy
bdcb9f6f64
Split const-exprs.rs
test into separate functions.
...
Also, just use a single out variable for each type. rather than
introducing a new output variable for every test we add.
2023-10-12 13:13:26 +02:00
Jim Blandy
1a4b526d9a
ConstantEvaluator::swizzle: Handle vector concatenation and indexing ( #2485 )
...
* ConstantEvaluator::swizzle: Handle vector concatenation, indexing.
* Handle vector Compose expressions nested two deep.
* Move `flatten_compose` to `proc`, and make it a free function.
* [spv-out] Ensure that we flatten Compose for OpConstantCompose.
2023-10-12 13:13:26 +02:00
teoxoy
0e4ac2a98c
[glsl-in] set initializer of local variables
2023-10-12 13:13:26 +02:00
teoxoy
fe7bc01d27
[glsl-in] const eval as soon as possible
2023-10-12 13:13:26 +02:00
teoxoy
3fb4c333a7
use LocalVariable init
2023-10-12 13:13:26 +02:00
teoxoy
a730236b68
[wgsl-in] eagerly evaluate const-expressions
...
[wgsl-in] support const-expressions in attributes
allow `Splat` as an evaluated const-expression type
2023-10-12 13:13:26 +02:00
Jim Blandy
fe484b3a1b
Require that Function
and Private
variables be CONSTRUCTIBLE
.
...
Change the validator to enforce WGSL's requirement that all variables
in the `function` and `private` address spaces must have constructible
types.
Mark the `RayQuery` type as `CONSTRUCTIBLE`, since it is intended to
be used for local variables.
Add a regression test.
2023-10-09 12:27:05 +02:00
Teodor Tanasoaia
f37db5affc
[wgsl] remove outerProduct
( #2535 )
2023-10-05 19:14:52 +02:00
Evan Mark Hopkins
9f3cdb61aa
[msl-out] Make varyings' struct members unique ( #2521 )
2023-09-29 12:26:23 +02:00
Teodor Tanasoaia
f72489be00
validate variable initializer for address spaces ( #2513 )
2023-09-28 20:32:46 +02:00
Jim Blandy
a17a93ef8f
snapshots: convert_wgsl: Remove redundant cubeArrayShadow entry. ( #2514 )
...
The duplicate entry was introduced accidentally in #1845 .
2023-09-28 09:09:57 +02:00
Evan Mark Hopkins
a898522e10
Rename identifiers containing double underscores ( #2510 )
2023-09-26 16:46:02 +02:00
Jim Blandy
3bcb114adb
snapshots: Change messages for generating output.
...
Change printlns in the backend functions to say "generating" instead
of "writing" before calling the Naga backends. "Writing" suggests
writing output to a file; "generating" seems more accurate for calling
a backend.
2023-09-25 07:59:41 -07:00
Jim Blandy
5af7ebc955
snapshots: Consolidate path handling.
...
Add a new type, `Input`, representing a particular Naga input file,
with methods to generate related paths - output files with a
particular extension, parameter files, and the input file itself.
Use this throughout `snapshots.rs` to generate paths.
Give `Input` utility methods for reading and writing files.
2023-09-25 07:59:41 -07:00
Jim Blandy
4329a6a51b
snapshots: Name convert_glsl_variations_check output consistently.
...
Rather than adding a `-glsl` suffix to the name, just rely on
`check_targets`' standard naming behavior, treating
`tests/in/variations.glsl` like any other snapshot input.
2023-09-25 07:59:41 -07:00
Jim Blandy
0c69735f59
Change naga:
🔙 :spv::DebugInfo::file_name to a &Path
.
...
This makes it a bit easier to use in the CLI and snapshot tests.
2023-09-25 07:59:41 -07:00
Jim Blandy
7060246357
Give convert_glsl_folder
's output more consistent names.
...
Don't replace dots with dashes in the output filenames for no reason.
Instead, give them names consistent with those generated by
`write_output_glsl`.
2023-09-25 07:59:41 -07:00
Jim Blandy
bc0fc97b26
Delete output files no longer generated by snapshot tests.
2023-09-25 07:59:41 -07:00
Jim Blandy
711aa1a834
snapshots: convert_spv: Don't validate the module twice.
...
Remove the call to `Validator::validate` in `convert_spv`, since it
directly follows the call to `check_targets`, which also called
`Validator::validate`.
The only difference between the two is whether `Parameters::god_mode`
is respected, but this difference doesn't seem to have been
deliberate: at the time the call to `check_targets` was added to
`convert_spv` (5f21cf360
, 2021-02-17), the two calls were exactly the
same.
2023-09-25 12:25:15 +02:00
Jim Blandy
57bebbcd20
[wgsl-in] Use deterministic ordering for dependency ordering.
...
Use `FastIndexSet`, rather than `FastHashSet`, for tracking global
declarations' dependencies, so that the order in which functions are
inserted into the `Module` is not dependent on the hash function.
2023-09-21 23:18:18 -07:00
Jim Blandy
8b267218a4
Implement module compaction.
...
Add a new Naga feature, `"compact"`, which adds a new function
`naga::compact::compact`, which removes unused expressions, types, and
constants from a `Module`.
2023-09-20 18:46:33 +02:00
Theo
1281c1156c
[spv-out] Always give structs with runtime arrays a Block decoration ( #2455 )
2023-09-12 19:59:31 +02:00
Jim Blandy
0f36a745cf
[wgsl-out] Don't include type parameter in splat expressions. ( #2469 )
...
Generate `vec4(1.0)` instead of `vec4<f32>(1.0)`, since WGSL requires
us to infer the type parameter anyway.
2023-09-12 19:34:24 +02:00
Jim Blandy
b17eaf76a3
snapshots::convert_spv: Print input name before processing. ( #2467 )
...
When `convert_spv` fails, this makes it easier to tell which file it
was trying to process.
2023-09-11 18:32:56 +02:00
Fredrik Fornwall
a0eb1f5462
[wgsl-in] Allow sign() to take int argument ( #2463 )
2023-09-06 09:29:35 -07:00
Fredrik Fornwall
5329aa2bd5
[wgsl-in] Handle modf and frexp ( #2454 )
2023-09-02 08:55:35 +02:00
Fredrik Fornwall
f49314dbbd
Fix validation and glsl parsing of ldexp ( #2449 )
...
Fixes #1908 .
2023-09-01 18:44:48 +02:00
Frederik Magnus Johansen Vestre
0491d39232
Support dual source blending ( #2427 )
...
Co-authored-by: teoxoy <28601907+teoxoy@users.noreply.github.com>
2023-08-30 21:00:35 +02:00
Fredrik Fornwall
3bd2834b4f
[wgsl-in] Handle all(bool) and any(bool) ( #2445 )
...
Fixes #1911 .
2023-08-29 21:34:55 +02:00
teoxoy
c3e35df576
[spv-out] decorate the result of the OpLoad
with NonUniform
(not the access chain) when loading images/samplers (resources in the Handle address space)
2023-08-04 10:45:36 -04:00
Evan Mark Hopkins
f7de1942c1
[spv-out] Cache OpConstantNull ( #2414 )
2023-08-02 18:05:16 +02:00
Teodor Tanasoaia
46951a09c0
Validate storage buffer access ( #2415 )
...
* validate storage buffer access
* remove GLSL writeonly buffer test
2023-07-31 15:59:17 +02:00