Commit Graph

93 Commits

Author SHA1 Message Date
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