Commit Graph

224 Commits

Author SHA1 Message Date
Dzmitry Malyshau
4a3ecc774f [wgsl] remove function and constant lookup maps 2021-01-31 18:27:08 -05:00
Dzmitry Malyshau
cb36c642ea [wgsl] refactor constants processing, add support for array sizes 2021-01-31 18:27:08 -05:00
João Capucho
b55aa51f65 Add support for function declarations with arguments
Change ParseError to be public
Change globals to default to private instead of throwing error
2021-01-30 13:44:39 -05:00
Dzmitry Malyshau
dc98305bb8 Print out detailed WGSL errors 2021-01-28 01:22:10 -05:00
Dzmitry Malyshau
4f517f4af3 [wgsl] include the expected string into the error 2021-01-28 01:22:10 -05:00
Dzmitry Malyshau
3e4cb21b90 [wgsl] support simple block statements 2021-01-27 21:31:04 +01:00
Dzmitry Malyshau
ab2cf8b842 [wgsl] support vector type casts 2021-01-26 23:33:08 -05:00
Dzmitry Malyshau
9c74468f81 [wgsl] enable access via rgba 2021-01-26 17:04:11 -05:00
Dzmitry Malyshau
292304b66f [wgsl] fix postfix expression parsing 2021-01-26 16:44:19 -05:00
Dzmitry Malyshau
986550aff8 [wgsl] fix and update storage load 2021-01-26 15:57:48 -05:00
Dzmitry Malyshau
c803240587 [wgsl] resolve types across functions 2021-01-25 00:59:30 -05:00
Dzmitry Malyshau
0ea8a0a3c2 [wgsl] support unsigned literals 2021-01-23 10:03:25 -05:00
sotrh
92f970a69d Change ErrorKind::SemanticError to use Cow<'static, str> instead of &'static str (#356)
* Changed front::glsl::error::ErrorKind::Semantic to use Cow

* cargo fmt

* appeasing clippy

* Update src/front/glsl/functions.rs

Co-authored-by: monocodus[bot] <49363530+monocodus[bot]@users.noreply.github.com>

* Fixed more clippy errors

Co-authored-by: Dzmitry Malyshau <kvark@fastmail.com>
Co-authored-by: monocodus[bot] <49363530+monocodus[bot]@users.noreply.github.com>
2021-01-15 09:33:48 -05:00
Dzmitry Malyshau
6f5ff27701 Sample mask support 2021-01-15 01:08:15 -05:00
Pelle Johnsen
61d624c82e [glsl-in] Implement function call (#354) 2021-01-13 08:07:43 +01:00
Dzmitry Malyshau
73cb6d4bdf [spv] Relax decoration checks for global variables 2021-01-11 09:32:27 -05:00
Dzmitry Malyshau
bd998f6c32 Validate constant array sizes 2021-01-07 15:04:31 -05:00
Jay Oster
3bf7f41068 WGSL // comments
- Update parser to match the latest spec: https://github.com/gpuweb/gpuweb/pull/1326
2021-01-06 09:19:46 -05:00
Pelle Johnsen
6710f5954e Fix clippy issues 2021-01-04 09:51:32 -05:00
Pelle Johnsen
6c8cdea936 [glsl-in] Check number of function args 2020-12-23 14:54:53 -05:00
Pelle Johnsen
7d9054f2c1 [glsl-in] Implement more MathFunctions 2020-12-23 14:54:53 -05:00
Pelle Johnsen
9a51d82c39 [glsl-in] Implement ceil
Related to #330
2020-12-23 14:54:53 -05:00
Pelle Johnsen
511000d022 [glsl-in] Extract function logic out of parser 2020-12-23 14:54:53 -05:00
Dzmitry Malyshau
001336b457 Tidy up constants IR 2020-12-20 17:42:00 +01:00
Dzmitry Malyshau
b95346877a Remove MemberOrigin in favor of spans 2020-12-18 16:11:12 -05:00
Dzmitry Malyshau
fca72fd333 [wgsl] avoid recursion in token parsing 2020-12-18 16:11:12 -05:00
Pelle Johnsen
6bb40ce27b [glsl-in] Cast gl_VertexIndex to SInt (#332)
* [glsl-in] Cast gl_VertexIndex to SInt

* [glsl-in] Use conversion cast (gl_VertexIndex)

- Also cast gl_InstanceIndex

* [glsl-in] Simplify global var lookup

* [glsl-in] Fix missing comma
2020-12-15 09:24:48 -05:00
Dzmitry Malyshau
98857f09a2 Move Transpose into math functions 2020-12-13 00:41:23 -05:00
Dzmitry Malyshau
2d1006835a Fix WGSL variable storage classes, spv-out interface 2020-12-13 00:41:23 -05:00
Dzmitry Malyshau
211bec44a1 Improve texture sampling IR, update WGSL parsing of it 2020-12-13 00:41:23 -05:00
Dzmitry Malyshau
0efd6e75d7 [wgsl] update texture definitions and storage access
Add more tests, enhance the snapshot testing.
2020-12-12 12:46:24 -05:00
Dzmitry Malyshau
dafca34877 Add block boolean to the structure types in IR
Also update WGSL syntax for structures.
Move the boids code into snapshots.
2020-12-12 12:46:24 -05:00
Dzmitry Malyshau
b7744a1ec5 [wgsl] function lookup, improve error reporting 2020-12-10 10:20:56 -05:00
Dzmitry Malyshau
82c5cff605 [wgsl] refactor type declarations and function calls to avoid backups 2020-12-10 10:20:56 -05:00
Dzmitry Malyshau
eeb479ae94 [wgsl] support const locals 2020-12-10 10:20:56 -05:00
Dzmitry Malyshau
edf5d857b1 Add workgroup id and size builtins 2020-12-10 09:38:56 -03:30
Dzmitry Malyshau
b35e901249 Add all standard library functions to the IR 2020-12-09 15:43:36 -05:00
Dzmitry Malyshau
66d994566c [spv] force treating the built-in scalar types as unsigned 2020-12-08 22:55:21 -05:00
Dzmitry Malyshau
6c1f4ac590 [wgsl] populate standard functions 2020-12-08 09:28:24 -05:00
Dzmitry Malyshau
4f958bf658 [msl] refactor function call parsing 2020-12-06 23:30:52 -05:00
Dzmitry Malyshau
b597bc5af6 [wgsl] add min/max support 2020-12-06 11:54:19 -05:00
Dzmitry Malyshau
5b14e26659 [wgsl] add a test module with units for if/loop/switch statements 2020-12-05 11:29:36 -05:00
Dzmitry Malyshau
f7ca7f2aff Refactor Switch statement, implement on WGSL 2020-12-05 00:22:39 -05:00
Dzmitry Malyshau
5fe9429a63 Terminator processor, used in WGSL and GLSL frontends 2020-12-04 17:23:13 -05:00
Dzmitry Malyshau
92de5851d0 [wgsl] update builtin names, have implicit function return type 2020-12-04 16:09:57 -05:00
Pelle Johnsen
0f98357223 [glsl-in] Skip gl_PerVertex 2020-11-20 09:54:01 +01:00
Pelle Johnsen
437b33d536 [glsl-in] use TypeInner::scalar_kind for casts (#279)
* [glsl-in] use TypeInner::scalar_kind for casts

* [glsl-in] Use .ok_or for casts
2020-11-16 11:57:34 -05:00
Pelle Johnsen
9041cd4b10 [glsl-in] Handle simple casts 2020-11-16 12:58:19 +01:00
Dzmitry Malyshau
4d4e1cd4cb [spv] support GLSL's Distance 2020-11-12 12:38:35 -05:00
Dzmitry Malyshau
5e77653c55 [ir] select expression 2020-11-12 17:43:33 +01:00