Commit Graph

586 Commits

Author SHA1 Message Date
Teodor Tanasoaia
dc075e66e3 [wgsl-in] Update reserved keywords (#1847) 2022-04-17 15:56:54 +02:00
Jim Blandy
ef387f73a6 [hlsl-out] Emit row_major qualifier on matrix uniform globals.
Fixes #1836.
2022-04-16 23:50:17 -07:00
Igor Shaposhnik
1720725014 [wgsl-out] Update entry point stage attributes 2022-04-15 18:02:48 +01:00
Igor Shaposhnik
fbb77aa0dc [wgsl-in] Update entry point stage attributes 2022-04-15 18:02:48 +01:00
teoxoy
8584507fb6 [glsl-out] remove redundant space from unary ops 2022-04-15 11:21:51 +02:00
teoxoy
7f4e07e5cd [glsl-out] add support for boolean vector ~, | and & ops 2022-04-15 11:21:51 +02:00
teoxoy
d3b37dcdb1 add tests for remaining vector - scalar ops 2022-04-15 11:21:51 +02:00
teoxoy
95b84c4403 [spv-out] add support for int vector scalar mult 2022-04-15 11:21:51 +02:00
teoxoy
2cda40396a comment out problematic negative int 2022-04-15 11:21:51 +02:00
teoxoy
6e6daad4d4 [hlsl-out] fix bool splat 2022-04-15 11:21:51 +02:00
teoxoy
4ea7dc3381 [spv-out] add support for matrix add and sub 2022-04-15 11:21:51 +02:00
teoxoy
4366e65609 add support for unary vector operators 2022-04-15 11:21:51 +02:00
teoxoy
e4c017cb7c add more tests for operators 2022-04-15 11:21:51 +02:00
Jim Blandy
bdbf821c32 Test matrix-typed uniform globals. 2022-04-14 11:54:47 -07:00
Jim Blandy
27d0fee2e7 More tests for non-struct global types. 2022-04-14 11:45:42 -07:00
Jim Blandy
f11d27af6f Reject empty struct types. (#1826) 2022-04-14 09:36:53 -07:00
Jim Blandy
170faab6db Move invariant bit from Binding::Builtin to Builtin::Position. (#1822)
Use the type system to enforce the rule that the invariant attribute
may only appear on `Position` builtins.
2022-04-13 14:57:05 -07:00
Jim Blandy
78975f25da [msl-out] Permit invariant qualifier on vertex shader outputs. 2022-04-12 22:22:20 +02:00
Teodor Tanasoaia
bd62887a13 [hlsl-out] Add more padding when necessary (#1814)
* [hlsl-out] add padding at the end of structs and after struct members of type matrix and array (when necessary)

* use wrapped constructor fn for constants

* add array as fn arg test

* fix glsl array fn arg

* add wrapped constructor for arrays

* [glsl-out] support multidimensional arrays

* address comments
2022-04-11 20:34:06 -07:00
teoxoy
0e77d26241 cast packed vec3's to vec3 for expressions that require it 2022-04-11 20:30:00 -07:00
teoxoy
32cdb27230 add better tests for msl packed vec3 2022-04-11 20:30:00 -07:00
teoxoy
d7f4c340a7 add matrix vector multiplication test 2022-04-11 20:30:00 -07:00
teoxoy
1688a767bb fix packed vec3 stores 2022-04-11 20:30:00 -07:00
teoxoy
1f797fdc2f add more packed vec3 load/stores to test 2022-04-11 20:30:00 -07:00
Teodor Tanasoaia
7aaac25fbf [hlsl-out] fix matCx2 translation for uniform buffers (#1802)
* [hlsl-out] fix matCx2 translation

* fix msl validation (warning: unused variable)

* fix msl buffer declaration

* address comments
2022-04-10 22:29:11 -07:00
teoxoy
6ee1fd4929 fix MSL issue 2022-04-10 21:49:23 -07:00
teoxoy
d3957c1186 implement invariant attribute 2022-04-10 21:49:23 -07:00
Noel Tautges
a3d968e795 [hlsl-out] Don't output interpolation modifier if it's the default (#1809)
* hlsl-out: don't output interpolation modifier if it's the default (linear/`Interpolation::Perspective`)

* Remove linear interpolation modifiers from HLSL output tests
2022-04-09 22:36:36 -07:00
Teodor Tanasoaia
cfcf625019 [wgsl-in] Constructor improvements (#1790)
* add support for zero value constructors and constructors that infer their type from their parameters

* address comments

* extract constructor machinery into new module

* fix doc link
2022-03-29 22:51:54 -07:00
Teodor Tanasoaia
012f2a6b2e Merge pull request #1784 from teoxoy/patch-2
[hlsl-out] fix matrix not being declared as transposed
2022-03-27 22:24:09 -07:00
João Capucho
4146cb24d0 glsl-in: Allow nested accesses in lhs positions
Also fixes access to runtime sized arrays behind named blocks
2022-03-27 21:47:51 -07:00
João Capucho
21f89b65e4 glsl-in: use forced conversions for vector/matrix constructors
The spec defines that for vector and matrix constructors all arguments
should use the same conversions as scalar constructors (forced conversions)
2022-03-27 21:44:17 -07:00
João Capucho
767d970312 glsl-in: Resume expression emit after imageStore
This wasn't done before which caused the frontend to crash if anything
appeared after it.
2022-03-27 21:42:02 -07:00
teoxoy
9dddfeec37 [wgsl-in] implement increment and decrement 2022-03-27 00:34:53 -07:00
Pu Xingyu
b17e6cfe43 wgsl-out: Do not output semicolon after struct decl 2022-03-27 00:22:58 -07:00
Pu Xingyu
3c313564ac wgsl-in: Make semicolon after struct decl optional 2022-03-27 00:22:58 -07:00
João Capucho
54ef2e39a0 glsl-in: Allow multiple array specifiers 2022-03-27 00:18:20 -07:00
João Capucho
b568bfbbdf glsl-in: Fix memory qualifiers being inverted
Adds some documentation to better explain how the memory qualifier works
troughout the parser and some storage textures tests.
2022-03-27 00:02:26 -07:00
teoxoy
cf992a9a95 [wgsl-in] implement while loop 2022-03-22 22:47:47 -07:00
Igor Shaposhnik
b5761d9611 [wgsl-out] Uses commas to separate struct members instead of semicolons 2022-03-12 22:07:06 -08:00
Igor Shaposhnik
816fa347ad [wgsl-in] Uses commas to separate struct members instead of semicolons 2022-03-12 22:07:06 -08:00
hatoo
7f4c01784c Remove vs_bake entry point from tests/in/shadow.wgsl
This entry point isn't useful for testing.
2022-03-11 20:14:25 -08:00
hatoo
ae282703e2 Update test case from wgpu's shadow example 2022-03-11 20:14:25 -08:00
Dzmitry Malyshau
1d3fb26ffd Actually test push constants to be used (#1767) 2022-03-08 23:02:20 -05:00
Jim Blandy
c84aa77579 [msl-out] Properly rename entry point arguments for struct members. (#1766) 2022-03-08 10:07:30 -05:00
Dzmitry Malyshau
79845371d3 msl: qualify read-only storage with const 2022-03-06 19:28:15 -08:00
Vincent Isambart
fe3d945a58 Not operator depending on expression type 2022-03-05 19:11:27 -08:00
João Capucho
f054aa94f4 glsl-in: Support arrays as input/output types
Like it was already done for structs, arrays are flattened and each
element is attributed a location that is it's index + the array base
location.
2022-03-03 21:42:48 -08:00
João Capucho
a2bcdda81c glsl-in: Fix freestanding constructor parsing 2022-03-03 21:39:45 -08:00
João Capucho
af8dd4b3bd glsl-in: Fix matrix by scalar operations 2022-03-02 22:27:24 -08:00