Commit Graph

1622 Commits

Author SHA1 Message Date
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
Dzmitry Malyshau
8fd8e7d575 Address Jim's notes 2022-02-17 09:49:33 -05:00
Dzmitry Malyshau
91990298b3 Don't test on MSRV, just check 2022-02-17 09:49:33 -05:00
Dzmitry Malyshau
c524a6beac bench: backends 2022-02-17 09:49:33 -05:00
Dzmitry Malyshau
14b4a686c6 bench: validation 2022-02-17 09:49:33 -05:00
Dzmitry Malyshau
5879f9ea73 bench: glsl, spirv, and bincode inputs 2022-02-17 09:49:33 -05:00
Dzmitry Malyshau
b05f648842 bench: WGSL parsing 2022-02-17 09:49:33 -05:00
Dzmitry Malyshau
231da54cd7 Bincode support for naga-cli 2022-02-17 09:49:33 -05:00
Dzmitry Malyshau
d0a4a193e3 Fix resetting WGSL parser 2022-02-17 09:09:40 -05:00
João Capucho
9e4f678c13 glsl-in: Add tests for images 2022-02-16 21:56:32 +00:00
João Capucho
2ad4c13c98 Add support for image builtin functions 2022-02-16 21:56:32 +00:00
João Capucho
27cbce5b5d glsl-in: Add support for image declarations 2022-02-16 21:56:32 +00:00
Jim Blandy
e904d2bfd6 [msl-out] Document why dot operator on ints requires baking. 2022-02-15 22:45:25 -05:00
Jim Blandy
763b0bcc90 FunctionInfo doc fixes, more specific variable names. 2022-02-15 22:45:25 -05:00
Jim Blandy
75c86a6c3d [spv-out] Access trait doc fixes. 2022-02-15 22:45:25 -05:00
Jim Blandy
7d06445897 [hlsl-out] Remove MipLevelCoordinate type.
Validation insures that `ImageLoad` expressions always have an `index`
operand when the image's type requires it, so there is no need for
`MipLevelCoordinate::Zero`. This means that
`Option<Handle<Expression>>` serves adequately for this case.
2022-02-15 22:43:35 -05:00
Jim Blandy
771d62710c [msl-out] Consolidate numeric type formatting. 2022-02-15 09:58:00 -05:00
Igor Shaposhnik
e1e9848706 [wgsl-out] Optional parentheses for if and switch 2022-02-15 09:57:07 -05:00
Igor Shaposhnik
c356b93962 [wgsl-in] Optional parentheses for if and switch 2022-02-15 09:57:07 -05:00
João Capucho
d40522329b spv-in: align array stride for undecorated arrays 2022-02-12 23:26:12 -05:00
João Capucho
1f14f7ea2a glsl-in: Texture builtins fixes
This one grew out of hand quick. Initially it was just replacing the bit
loops with a function driving the declarations to make the code sharing
better and support different scalar kinds.

Now it includes a lot of fixes:
- `textureSize` now also returns the array layers as the last component
  on the return (only for arrayed textures)
- `textureSize` now supports multisampled textures
- the `texture` family of functions now consumes a `vec3` coordinate
  vector for all 1D shadow textures
- Shadow textures can use the bias version of `texture` functions
  (temporarily disabled since naga doesn't support it)
- 3D textures can be used in `textureProj`
- `sampler2DArrayShadow` can't be used in `textureLod` or in `texture` with bias
- Cube textures cannot be used with offsets

Updates the tests to cover all functions
2022-02-10 10:11:28 -05:00
Dzmitry Malyshau
8e2e39e4d8 msl: fix resource bindings for non-structures 2022-02-06 00:12:10 -05:00
Jim Blandy
0ce98d6411 [msl-out][spv-out][glsl-out][hlsl-out] Fix ArraySize on globals. 2022-02-05 00:16:53 -05:00
Jim Blandy
2a151216e3 [msl-out] Always check whether _buffer_sizes arg is needed.
The _buffer_sizes argument should be inserted regardless of whether or not `
`options.fake_missing_bindings` is set, so lift the computation of
`supports_array_length` out of that conditional.
2022-02-05 00:16:53 -05:00