Dzmitry Malyshau
1dc955551b
[spv-out] use image_fetch where appropriate ( #522 )
2021-02-25 09:57:35 -05:00
Anthony Cowley
822be23f35
Validate signed integer array size constants ( #517 )
...
Until we have some amount of type inference, an integer literal used as a constant array size must have a `u` suffix. This is inconsistent with the surface syntax presented in the spec, and is a minor inconvenience.
For now, allow a signed integer array size to pass validation so that user code need not change when type inference deduces values of the correct type.
2021-02-24 12:47:02 -05:00
Pelle Johnsen
51cbd4c112
[glsl-in] Add initial support for glslpp-rs ( #513 )
...
* [glsl-in] Add initial support for glslpp-rs
* [glsl-in] Add remaining Punct mappings
Fix some tests.
* [glsl-in] Add basic error handling for glslpp-rs
* [glsl-in] Fix clippy issues
* [glsl.in] Add pp-rs floats
* [glsl-in] Remove old lex and preprocessor
* [glsl-in] Improve lexer token code
* [glsl-in] Rename lex_pp > lex
Also LexerPP > Lexer
* [glsl-in] glslpp-rs review feedback
* [glsl-in] Use rev for pp-rs dep
* [glsl-in] Parse on lexer err
2021-02-24 12:07:09 -05:00
Dzmitry Malyshau
df14c4b7ca
[spv-in] fix OpString and OpLine parsing
2021-02-24 09:10:26 -05:00
Joshua Groves
9c47a5fe17
[wgsl] Track token span for unexpected errors
2021-02-23 21:08:46 -05:00
Dzmitry Malyshau
0cefc1c46c
Remove mutation from the Call expression
2021-02-22 23:37:26 -05:00
Dzmitry Malyshau
d3062a2f3b
Statement validation
2021-02-22 15:36:25 -05:00
Dzmitry Malyshau
c0d5a6bde4
Rewrite the type validation
2021-02-22 10:12:09 -05:00
Dzmitry Malyshau
694a00afcb
[spv-out] optimize if/else branching
2021-02-22 10:11:36 -05:00
Matúš Talčík
fa7d4d8b51
spv-in: fix if condition when merge node == false node
...
format
2021-02-20 10:41:54 -05:00
Dzmitry Malyshau
2a5c478b21
Fix type resolves of matrix by vectors
2021-02-20 00:02:28 -05:00
Dzmitry Malyshau
f03a99d6a3
Implement Debug for arena and handle
2021-02-19 23:20:11 -05:00
Dzmitry Malyshau
26e6c2bdac
Use source attribute of errors
2021-02-19 22:10:25 -05:00
Dzmitry Malyshau
99c1add358
[msl] fake bindings
2021-02-19 19:20:21 -05:00
Dzmitry Malyshau
0e3f745fb2
[msl] derive thiserror
2021-02-19 16:56:45 -05:00
Dzmitry Malyshau
db0a8875d9
TypifyError with the expression handle
2021-02-19 16:56:45 -05:00
João Capucho
19e7f456c4
Remove the call graph processor
...
Uses the GlobalUse in glsl-out to check for function availability
2021-02-18 11:43:18 -05:00
Systemcluster
9f113bdd95
[wgsl] limit allowed for statement initializer statements
2021-02-18 10:55:16 -05:00
Systemcluster
e49910bb0a
[wgsl] allow empty for statement headers
2021-02-18 10:55:16 -05:00
Dzmitry Malyshau
5f21cf360f
Refactor snapshot testing to include some IR
2021-02-18 10:19:25 -05:00
Dzmitry Malyshau
4c5a1ba054
Global usage tests in the analyzer
2021-02-17 16:22:19 -05:00
Dzmitry Malyshau
8a0382a89d
Move global use flags into FunctionInfo
2021-02-17 15:37:37 -05:00
Pelle Johnsen
9f0cdfe9e5
[glsl-in] Multi entry, don't use find on hashmap
2021-02-17 10:05:40 -05:00
Pelle Johnsen
408002815f
[glsl-in] Multi entry points - address comments
2021-02-17 10:05:40 -05:00
Pelle Johnsen
1861fca4ba
[glsl-in] Support multiple entrypoints
2021-02-17 10:05:40 -05:00
Systemcluster
59479f137d
[wgsl] support nested type parameters
2021-02-16 16:57:34 -05:00
Dzmitry Malyshau
847d127ec8
Optimize Interface with a bitmask to avoid re-visiting expressions
2021-02-16 09:08:05 -05:00
Dzmitry Malyshau
e37268e60c
[msl] fix support for private globals
2021-02-16 09:08:05 -05:00
Dzmitry Malyshau
35ba4dac66
Fix the ClipDistance validation - expect an array
2021-02-16 09:08:05 -05:00
Systemcluster
539db1a317
[wgsl] support for statement
2021-02-15 23:51:19 -05:00
Dzmitry Malyshau
e6251a23fe
[wgsl] fix boolean types and bang parsing
2021-02-15 22:59:04 -05:00
Dzmitry Malyshau
6d0c608626
[glsl-out] use existing Analysis instead of implementing Visitor
2021-02-15 11:13:11 -05:00
Joshua Groves
f42dc0c377
Fix some typos
2021-02-14 22:50:12 -05:00
Dzmitry Malyshau
ad423124c0
Support constants in the naming processor
2021-02-14 20:43:50 -05:00
Dzmitry Malyshau
61d711b58f
Remove the Header from IR
2021-02-14 20:23:31 -05:00
Systemcluster
7a124550d4
[glsl-in] support inverse function
2021-02-14 12:34:26 -05:00
Systemcluster
b642c5b89b
[spv-in] support string instruction
2021-02-14 11:57:26 -05:00
Systemcluster
dcd269782a
[wgsl] restrict type casts to matching container types
2021-02-14 11:56:49 -05:00
Dzmitry Malyshau
18853ab149
Add warnings for trivial casts and clean them up in the code
2021-02-14 11:55:35 -05:00
Dzmitry Malyshau
8e96085caf
[spv-in] support image load/store ops
2021-02-14 11:55:35 -05:00
Dzmitry Malyshau
de5bd77279
ImageStore statement in IR
2021-02-14 11:55:35 -05:00
Dzmitry Malyshau
08001981ba
Add comments to Analysis methods and ControlFlags
2021-02-14 01:19:15 -05:00
Dzmitry Malyshau
c1fc5d6424
[msl] re-use expression results based on the analysis
2021-02-14 01:19:15 -05:00
Dzmitry Malyshau
eae40383d0
Add uniform control flow analysis to the validator
2021-02-14 01:19:15 -05:00
Dzmitry Malyshau
bde43cbec6
First uniform control flow tests
2021-02-14 01:19:15 -05:00
Dzmitry Malyshau
747040ee8a
Analyzer processor - first draft
2021-02-14 01:19:15 -05:00
Anthony Cowley
d0ef4e9dbe
[spv-out] support select expressions
2021-02-13 22:56:43 -05:00
Dzmitry Malyshau
8183f4ff6f
[spv-out] annotate function and constant names
2021-02-13 19:37:54 -05:00
Dzmitry Malyshau
94bd97c0fb
[wgsl] early depth test attribute
2021-02-13 12:49:23 -05:00
Dzmitry Malyshau
de39e7f4d1
[spv-in] patch function calls before deriving the global use
2021-02-13 12:33:15 -05:00