Gordon-F
3accf4dc15
Improve wgsl-out
2021-04-23 16:36:49 -04:00
Dzmitry Malyshau
02105db045
[spv-out] image queries ( #749 )
2021-04-23 12:31:33 -04:00
Dzmitry Malyshau
bc344579e8
[spv-in] fix signed/unsigned casting for builtins ( #746 )
2021-04-21 11:04:53 -04:00
Ashley
4664cd301a
[Metal] Wrap a packed_float3 with float3 when loading from struct ( #740 )
...
* Implement the wrapping in Expression::Load instead
* Add changes to stack size
* stable and nightly can't seem to agree on a stack size
* Apply suggestions
* Add a comment about unexpected path
* Update skybox snapshot
* should_pack_struct_member returns an Option<ScalarKind>
* Remove accidental file
2021-04-21 09:16:11 -04:00
Dzmitry Malyshau
5d1746b0b4
Swizzle expression ( #734 )
2021-04-20 22:03:54 -04:00
Ashley
b08dfe5146
[Metal] Impl Expression::Splat ( #738 )
...
* [Metal] Impl `Expression::Splat`
* Add changes to the snapshots
* Apply suggestions
2021-04-20 11:41:13 -04:00
Ashley Ruglys
a4ac7b38b2
Don't use an interpolation on fake bindings
2021-04-20 10:51:45 -04:00
Jim Blandy
9cd6fd9c20
[msl-out]: Generate interpolation qualifiers.
2021-04-19 09:42:00 -04:00
Jim Blandy
4f442ff8cc
Require binding interpolation to be resolved by the front end.
...
When validating IR, verify that all `Binding`s for vertex shader outputs and
fragment shader inputs, whether directly in the argument or result, or applied
to a struct member, has specified an interpolation and sampling, not `None`.
This ensures that front ends explicitly state their policies, rather than
coasting through on back ends' default behavior.
In practice, all our front ends have very similar defaults, so provide a utility
function on `Module` to apply these rules. Use this utility function in the
SPIR-V and WGSL front ends; GLSL seems to already fill in interpolation as
required.
2021-04-19 09:42:00 -04:00
Jim Blandy
0910af2718
[wgsl-in] Implement WGSL interpolate syntax from gpuweb PR #1605 .
...
Fixes : #670
2021-04-19 09:42:00 -04:00
Jim Blandy
99a9e1e78e
Change Binding::Location to a struct-style enum variant.
...
This commit makes no other changes. This is in preparation for adding a third
field, at which point tuple variants start to get obscure.
2021-04-19 09:42:00 -04:00
Igor Shaposhnik
ce0720ac61
Add wgsl-out into test infrastructure ( #730 )
2021-04-19 09:19:03 -04:00
Dzmitry Malyshau
62c2cf7332
Validate composite constants ( #729 )
2021-04-18 23:19:09 -04:00
Lachlan Sneff
4cbef59dd6
Add struct instantiation support to wgsl-in ( #507 )
...
* Add struct instantiation support to wgsl-in
* Readd type matching and move struct test
* rebase onto master and update tests
* Update tests to upstream
* Fix merge errors
* Rebase onto master
* [wgsl-in] delay composite type creation
* Use the new WGSL construction syntax in the tests
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com >
2021-04-17 01:14:07 -04:00
Dzmitry Malyshau
bb716f9c10
[spv-out] implement array value indexing ( #723 )
2021-04-16 17:11:18 -04:00
Jim Blandy
2eb3e81e19
[wgsl-in] Add basic test for interpolate attribute.
2021-04-15 17:19:20 -04:00
Dzmitry Malyshau
96f9cb4ce1
[wgsl] Add support for simplified vector construction, add a snapshot test
2021-04-14 19:26:20 -04:00
Dzmitry Malyshau
c8d26a1f47
Splat support for WGSL and SPV in/out, updated snapshots
2021-04-14 19:26:20 -04:00
Dzmitry Malyshau
c2c93e4ecd
Remove cargo-insta
2021-04-14 16:10:31 -04:00
Dzmitry Malyshau
3f57e4db5a
Enable texture-array snapshot on Metal
2021-04-13 01:31:57 -04:00
Ashley
640bfb1f26
[Metal] Make constant composites non-constexpr ( #707 )
...
* Make constant composites non-constexpr
* Update shadow test
2021-04-11 14:21:47 -04:00
Timo de Kort
5d487941b2
Start hlsl-out ( #408 )
...
* Add hlsl-out feature
* Integrate hlsl-out with snapshots
* Add snapshot
2021-04-11 11:36:26 -04:00
Dzmitry Malyshau
f3ba6e91c2
[msl-out] shorten the expression name
2021-04-09 00:48:18 -04:00
Dzmitry Malyshau
604e10e19b
Rewrite IR to have member offsets, full structure span and alignment
2021-04-08 23:15:03 -04:00
Dzmitry Malyshau
7326ba6ddb
New struct layout IR
2021-04-08 23:15:03 -04:00
Dzmitry Malyshau
6166b95b6a
[msl] inline some of the constants
2021-04-08 12:36:43 -04:00
Dzmitry Malyshau
2774dcb403
[msl] inline some of the types
2021-04-08 11:10:52 -04:00
Dzmitry Malyshau
e06451777e
[msl] address review comments, rename SubOptions to PipelineOptions, add more inlined states
2021-04-07 22:49:13 -04:00
Dzmitry Malyshau
499f2e3cbe
[msl] add a snapshot test for inline sampler
2021-04-07 22:49:13 -04:00
Dzmitry Malyshau
7c11759041
Re-use the MSL types in snapshot code
2021-04-07 22:49:13 -04:00
Dzmitry Malyshau
a9bde26785
[spv-out] fix incorrect dummy result
2021-04-04 10:25:46 -04:00
Dzmitry Malyshau
410c242daf
[spv-out] add a flag to adjust the coordinate space
2021-04-03 11:27:21 -04:00
Dzmitry Malyshau
ead052b773
[spv-in] add a flag to adjust the coordinate space
2021-04-03 11:27:21 -04:00
Dzmitry Malyshau
100c2f42ed
[spv-out] cache access index constants
2021-04-03 11:27:21 -04:00
Dzmitry Malyshau
5673603bab
[spv-out] flip position Y
2021-04-03 11:27:21 -04:00
Dzmitry Malyshau
ab54f683be
[spv-in] flip Y axis
2021-04-03 11:27:21 -04:00
Dzmitry Malyshau
4389a86787
Fix layout roundup
2021-04-03 00:41:32 -04:00
Dzmitry Malyshau
8ff27187d1
Fix matrix multiplication types
2021-04-01 15:49:37 -04:00
Dzmitry Malyshau
db455af04b
Add a snapshot for image load/store ops
2021-04-01 10:47:28 -04:00
Dzmitry Malyshau
427d8dc1eb
[spv-in] pre-emit constant expressions
2021-03-31 23:17:19 -04:00
Dzmitry Malyshau
7a17da195c
[msl] use uint behind metal namespace only
2021-03-31 23:01:19 -04:00
Dzmitry Malyshau
7be524592a
[msl] fix mutability of function parameters
2021-03-30 15:43:53 -04:00
Dzmitry Malyshau
baccfc68f5
[msl] fix constant array initialization
2021-03-30 00:38:00 -04:00
Dzmitry Malyshau
f06583ca7d
[spv-in] change const indexes to signed int
2021-03-29 11:07:33 -04:00
Dzmitry Malyshau
f2155d49d1
[msl] fix initialization of arrayed members, enable METAL snapshot of quad-vert
2021-03-27 10:58:01 -04:00
Dzmitry Malyshau
a090afa3f5
[msl] write scalar constants before the types
2021-03-26 09:56:29 -04:00
Dzmitry Malyshau
bf193bb535
[msl] don't put expressions in double scopes
2021-03-26 09:56:29 -04:00
Dzmitry Malyshau
7d042337e2
Align the block decoration with SPIR-V, require storage buffers
2021-03-25 12:34:25 -04:00
Dzmitry Malyshau
4fb4133298
[spv-in] fix image array index type to be signed
2021-03-25 09:21:58 -04:00
Dzmitry Malyshau
06d777b609
Make layout validation optional, disable the struct size check
2021-03-24 21:03:00 -04:00