Commit Graph

1845 Commits

Author SHA1 Message Date
Teodor Tanasoaia
2db49b6998
validate uniform address space layout constraints (#1812) 2022-04-09 22:35:28 -07:00
Igor Shaposhnik
43cd0ecedd
[wgsl] Make colon in case optional (#1801) 2022-03-30 14:32:01 -04:00
Igor Shaposhnik
6bbba0d0d5
[wgsl] Rename smoothStep to smoothstep (#1800) 2022-03-30 14:31:26 -04: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
Jonathan Behrens
26537c1a60 Call ctx.emit_start after flushing 2022-03-27 21:43:16 -07:00
Jonathan Behrens
a48faf543f Add glsl barrier function 2022-03-27 21:43:16 -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
800fc7471f fix msrv incompatibility 2022-03-27 00:34:53 -07:00
teoxoy
9dddfeec37 [wgsl-in] implement increment and decrement 2022-03-27 00:34:53 -07:00
Pu Xingyu
d62c0838a6 Update changelog 2022-03-27 00:22:58 -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
teoxoy
05f050fad4 insert padding between struct members 2022-03-21 16:39:10 -07:00
Teodor Tanasoaia
e66a66a763 [spv-out] fix wrong MatrixStride for matCx2 and mat2xR 2022-03-19 21:20:45 -07:00
Igor Shaposhnik
f90e563c28 update changelog 2022-03-12 22:07:06 -08: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
hatoo
8344951ebe [glsl-out] Write constant sized array type for uniform 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
51e66eceb2 glsl-in: Allow backtracking in the parser 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
João Capucho
48320db507 glsl-in: Fix matrix by matrix division 2022-03-02 22:27:24 -08:00
João Capucho
7f485d262b glsl-in: Fix matrix comparisons 2022-03-02 22:27:24 -08:00
João Capucho
d449d2e665 glsl-in: Add support for texelFetchOffset 2022-03-01 21:06:50 -08:00
Jim Blandy
62f267a140 [wgsl-in] consume_number: Check uint_suffix flag at top of match.
This makes it unnecessary to check that field in every other pattern
in the match.
2022-02-27 22:43:44 -05:00
Jim Blandy
f24018dc36 [wgsl-in] Remove unused field Token::Number::width. 2022-02-27 22:43:10 -05:00
Shota Hamada
e6c202dc70 Fix typo 2022-02-27 10:30:54 -08:00
Jim Blandy
72e197fc1b [wgsl-in] Use unwrap_or to placate Clippy. 2022-02-27 10:23:43 -08:00
João Capucho
98e7add6a2 glsl-out: texture function fixes
- samplerCubeShadow requires vec3 gradients
- Bias must be written after offset
- sampler1D hack on GLES requires vec2 gradients
- textureSize doesn't accept a lod argument for MS samplers
- sampler1DArray hack on GLES requires a y component on imageLoad
2022-02-23 23:23:05 -05:00
João Capucho
419a6c69f9 spv-out: Use OpImageQuerySize for MS images 2022-02-23 23:23:05 -05:00
Dzmitry Malyshau
a45b9a6cc6
wgsl: update find msb/lsb names (#1735) 2022-02-21 22:40:00 -08:00
Jim Blandy
679087bd9c
[msl-out] Bounds checks for ImageLoad and ImageStore. (#1730) 2022-02-21 15:08:14 -08:00
Jim Blandy
688ad474f7
[msl-out] Write 'using metal::uint' at the top, to work around bug. (#1740)
This lets us remove some special cases where `uint` must be fully
qualified, even though other similar types are not.
2022-02-21 13:22:54 -08:00
João Capucho
1ccfc8991e glsl-in: Add test for conditional builtin inject 2022-02-19 10:42:44 -05:00
João Capucho
9f62feee87 glsl-in: inject sampler2DMSArray builtins on use 2022-02-19 10:42:44 -05:00
João Capucho
66d59eb7ac glsl-in: inject samplerCubeArray builtins on use
Arrayed cube images require a special capabilities in some backends, so
like how we already do with doubles, we now only inject them if a call
uses one as an argument.

This required some refractoring on the builtins handling of variations
but now the interface is cleaner and adding new variations (if needed)
should be easier.
2022-02-18 20:29:23 -05:00
Jim Blandy
07f9cf670c Give Expression::ImageLoad separate sample and level operands. 2022-02-18 17:11:40 -05:00