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
João Capucho
73f928a7c3
[glsl-in] Add support for switch statements
2021-05-19 16:24:26 -04:00
João Capucho
39ccec5e7d
[glsl-in] Update pp-rs for location info
2021-05-19 16:24:26 -04:00
João Capucho
0d98ef4ea9
[glsl-in] Add if parsing
2021-05-19 16:24:26 -04:00
João Capucho
afaf44a75f
[glsl-in] Add function call support
2021-05-19 16:24:26 -04:00
João Capucho
8519095f55
[glsl-in] Handle global declarations
...
parse constant expressions fully
2021-05-19 16:24:26 -04:00
João Capucho
f8c8d192ae
[glsl-in] WIP expression parsing
2021-05-19 16:24:26 -04:00
Imbris
3073ade8a4
[glsl-in] improved WIP parsing for declarations
2021-05-19 16:24:26 -04:00
João Capucho
786194ec67
[glsl-in][New parser] WIP support for functions
2021-05-19 16:24:26 -04:00
João Capucho
ff8f15e034
[glsl-in] Start writting a parser without pomelo
2021-05-19 16:24:26 -04:00
Gordon-F
12e6dc5917
[wgsl-out] Implement all statements and expressions. Enable all wgsl-in tests
2021-05-19 14:11:05 -04:00
Dzmitry Malyshau
6c1832c8ee
[spv-out] be smarter about deriving capabilities, auto derive them for tests
2021-05-19 02:01:25 -04:00
Gordon-F
6b3db1f487
[glsl-out] Write vector access as a swizzle
2021-05-19 00:09:12 -04:00
Jim Blandy
5753f6e107
[wgsl-in] Improve error message for UnknownIdent.
2021-05-19 00:07:39 -04:00
Jim Blandy
4e3dc41f3f
[wgsl-in] Use Cow<str> in wgsl::ParseError.
2021-05-18 13:35:59 -04:00
Jim Blandy
8246287561
[dot-out] Take advantage of Cow's implementation of From<String>.
2021-05-18 13:35:59 -04:00
Gordon-F
b4aa966575
[wgsl-out] Create baking expression for texture function
2021-05-18 13:33:25 -04:00
Dzmitry Malyshau
96ec0b61e7
Snapshot for built-ins
2021-05-18 10:01:14 -04:00
Dzmitry Malyshau
8b60171403
[glsl-out] emit sample variables extension
2021-05-18 10:01:14 -04:00
Dzmitry Malyshau
1f53ff1d1e
[spv-in] fix emitted expressions for ImageStore
2021-05-18 10:01:14 -04:00
Jim Blandy
0985727710
[wgsl-in] Include span information in 'unknown identifier' errors.
2021-05-17 19:46:37 -04:00
Jim Blandy
0e3a7840ff
[wgsl-in]: Report unknown identifiers as Error::UnknownIdent.
...
Move the parsing of type construction expressions into a function of its own,
which can return `None` when the identifier at hand is not the name of a type.
This means that `parse_primary_expression` doesn't have to commit to
interpreting the expression as a type construction too early, allowing it to
report unknown identifiers as Error::UnknownIdent.
2021-05-17 19:46:37 -04:00
Dzmitry Malyshau
b191c982ec
Remove alignment from struct IR
2021-05-17 09:32:52 -04:00