Dzmitry Malyshau
d1e2ac57fe
New snapshot test for global variables
2021-05-28 22:18:51 -04:00
Dzmitry Malyshau
0244853d4c
[wgsl-in] Support workgroup storage class
2021-05-28 22:18:51 -04:00
Jim Blandy
14908e5126
[spv-out]: Don't pass in the type arena where it's not needed.
2021-05-28 00:47:25 -04:00
Jim Blandy
48363fcef1
Don't accept unsized types as function arguments.
2021-05-26 12:27:29 -04:00
Jim Blandy
398d3545b3
Include the type arena in ResolveContext, since it's always needed.
2021-05-26 10:35:59 -04:00
Dzmitry Malyshau
badf99653a
[spv-in] refactor the matrix stride check
2021-05-26 00:15:09 -04:00
João Capucho
f57739d30b
[glsl-in] Provide default interpolation
2021-05-25 13:52:37 -04:00
João Capucho
9464a81ae2
[glsl-in] Fix parameter qualifiers
...
Previously the types where changed in a later phase now they are changed
right when the argument is added, this makes the implementation slightly
less spec compliant because the following code will compile whilst it shouldn't
```glsl
void test(float a) {}
void test(out float b) {}
```
2021-05-25 13:52:37 -04:00
João Capucho
2b263a1851
[glsl-in] Cast lod value in textureLod
2021-05-25 13:52:37 -04:00
João Capucho
01eb19e29f
[glsl-in] Fix vector and matrix constructor
...
Matrix and vector constructors expected a vector (in the case of the
matrix) or a scalar (in both cases). Now they handle resizing such that
the following code now works
```glsl
mat3 a;
mat4(a); // This would return a validation error because it emitted a cast
```
2021-05-25 13:52:37 -04:00
João Capucho
9868441ebc
[glsl-in] Fix storage access
2021-05-25 13:52:37 -04:00
João Capucho
28a1ee4354
[glsl-in] Don't read builtin if it isn't available
2021-05-25 13:52:37 -04:00
João Capucho
e7308e1903
[glsl-in] fix validation error of entry result
2021-05-25 13:52:37 -04:00
Jim Blandy
99fbb34bd6
Require dynamically sized arrays to appear in 'storage' memory.
...
WGSL requires that runtime-sized arrays appear only as the last member of a
structure in in the `storage` storage class. It seems to me that Naga should
enforce this restriction on its own IR as well.
2021-05-25 00:02:08 -04:00
Jack Foltz
813da7a87e
[glsl-in] Support parsing push_constant and std430
2021-05-23 11:48:49 +01:00
Dzmitry Malyshau
652b65cfa9
Validate built-ins to not repeat
2021-05-21 23:22:05 -04:00
Jim Blandy
50de6ae9ac
Improve error messages for missing I/O bindings.
...
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.
2021-05-21 23:04:27 -04:00
Jim Blandy
652a955e9b
Expression::As: Typo.
2021-05-21 23:04:27 -04:00
Jim Blandy
8bcd2a4a1f
[spv-in]: Typo.
2021-05-21 23:04:27 -04:00
Jim Blandy
ad550addb8
[spv-out] Take advantage of use abbreviation.
2021-05-21 23:04:27 -04:00
Igor Shaposhnik
3dd9cc0c66
[wgsl-out] Skip access to unsupported builtin inside Store statement
2021-05-21 11:03:05 -04:00
Igor Shaposhnik
6c4012f9c4
Add Vulkan tutorial shaders to lazy check
2021-05-21 10:54:26 -04:00
João Capucho
72fca17dbc
[glsl-in] Cleanup
2021-05-20 21:05:10 -04:00
João Capucho
4e95c46a9d
[glsl-in] Fix void function calls
2021-05-20 21:05:10 -04:00
João Capucho
c526c85258
[glsl-in] Fix function argument generation
2021-05-20 21:05:10 -04:00
João Capucho
c22fa54642
[glsl-in] Expression emitting
2021-05-20 21:05:10 -04:00
Jim Blandy
a7100b14eb
Flesh out the Naga module-level documentation.
2021-05-19 23:31:19 -04:00
Dzmitry Malyshau
47ada8182b
Parse Dota2 shaders on CI in lazy mode
2021-05-19 23:26:26 -04:00
João Capucho
db1350ba4f
[glsl-in] fix global storage class
2021-05-19 16:24:26 -04:00
João Capucho
a081567923
[glsl-in] Implement Copy on SourceMetadata
2021-05-19 16:24:26 -04:00
João Capucho
9390515595
[glsl-in] Use an arena for the HirExprs
2021-05-19 16:24:26 -04:00
João Capucho
ba4b7ba3e2
[glsl-in] Restrict comparisons
...
The expressions on both sides must now have the same dimensions
otherwise a semantic error is returned.
2021-05-19 16:24:26 -04:00
João Capucho
ea544a388f
[glsl-in] Handle constant qualifier in declaration
2021-05-19 16:24:26 -04:00
João Capucho
9ddca9cef5
[glsl-in] Fix input/output handling
...
Previously we passed a struct with the input bindings and just ignored
the outputs. Now we handle them the same way we do with builtins, by
creating function local globals that are read and written in a wrapper
entry point.
2021-05-19 16:24:26 -04:00
João Capucho
e4bc844ba0
[glsl-in] return error in constant math functions
2021-05-19 16:24:26 -04:00
João Capucho
7ef095881b
[glsl-in]Replace WrongNumberArg with SemanticError
2021-05-19 16:24:26 -04:00
João Capucho
57ab3b3fb4
[glsl-in] Add metadata to semantic errors
2021-05-19 16:24:26 -04:00
João Capucho
a44d40e5ae
[glsl-in] use thiserror for the error
2021-05-19 16:24:26 -04:00
João Capucho
375f6fb38d
[glsl-in] Use typed errors in the parser tests
...
Rename TokenMetadata to SourceMetadata to reflect it's actual use
2021-05-19 16:24:26 -04:00
João Capucho
95a2baf485
[glsl-in] lower expression statements
2021-05-19 16:24:26 -04:00
João Capucho
474b591892
[glsl-in] Add support for assignment ops
2021-05-19 16:24:26 -04:00
João Capucho
d310cff591
[glsl-in] Fix parsing of function calls
2021-05-19 16:24:26 -04:00
João Capucho
4e40a75843
[glsl-in] block declarations
2021-05-19 16:24:26 -04:00
João Capucho
14f2caf6b0
[glsl-in] for loops
2021-05-19 16:24:26 -04:00
João Capucho
7165a06fbf
[glsl-in] Add glsl-validate and sampling qualifier
2021-05-19 16:24:26 -04:00
João Capucho
565c27292a
[glsl-in] Cleanup parse_declaration
2021-05-19 16:24:26 -04:00
João Capucho
fec67ced8e
[glsl-in] Add support for declaration statements
2021-05-19 16:24:26 -04:00
Imbris
168a55396c
[glsl-in] Add full init_declarator_list support
...
Co-authored-by: João Capucho <jcapucho7@gmail.com >
2021-05-19 16:24:26 -04:00
João Capucho
62d3956096
[glsl-in] function prototypes and overloading
2021-05-19 16:24:26 -04:00
João Capucho
cfe4105237
[glsl-in] Add support for while/do statements
2021-05-19 16:24:26 -04:00