Dzmitry Malyshau
76685fba69
[spv-out] issue DepthReplacing execution mode
2021-04-25 12:57:59 -04:00
Dzmitry Malyshau
e8f6d55356
[spv-out] implement some of the relational functions
2021-04-25 12:57:59 -04:00
Dzmitry Malyshau
0548437ab9
[spv-out] don't cache pointer function arguments
2021-04-25 12:57:59 -04:00
Gordon-F
4f5b6c5270
Share some functions between backends
2021-04-25 11:18:31 -04:00
Gordon-F
0459470986
[wgsl-out] Implement writing for more value types
2021-04-25 11:18:31 -04:00
Gordon-F
41e91739ac
[wgsl-out] Return Err instead of panic for unimplemented cases
2021-04-25 11:18:31 -04:00
Dzmitry Malyshau
ecffe37456
Enforce sampled types to be Float
2021-04-25 02:24:17 -04:00
Dzmitry Malyshau
28cba79452
[spv-out] deduplicate sampler types
2021-04-25 01:07:59 -04:00
Dzmitry Malyshau
7ec90512a8
[spv-out] deduplicate image types
2021-04-25 01:07:59 -04:00
Dzmitry Malyshau
1cc770a7d8
[spv-out] return Null by default
2021-04-25 01:07:59 -04:00
Dzmitry Malyshau
77a64da189
[spv-out] support function arguments as pointers
2021-04-24 01:54:48 -04:00
Dzmitry Malyshau
34b830da17
[spv-in] work around sign differences in OpIAdd and OpISubtract
2021-04-24 01:00:33 -04:00
Dzmitry Malyshau
64856a808e
[spv-in] refactor image coordinate extraction
2021-04-24 00:12:31 -04:00
João Capucho
7135c051b4
[glsl-in] Support for function parameters with In
2021-04-23 22:15:16 -04:00
João Capucho
2b8b5a271d
[glsl-in] Implement textureLod
2021-04-23 22:15:16 -04:00
João Capucho
62e3ba4bcc
[glsl-in] Fix type constructor of vec/matrix
2021-04-23 22:15:16 -04:00
João Capucho
6247f2c822
[glsl-in] Load local variables
2021-04-23 22:15:16 -04:00
João Capucho
076349ddf7
[glsl-in] Export types to allow for error handling
2021-04-23 22:15:16 -04:00
Dzmitry Malyshau
74f0a153cb
Rename the binary to just naga
2021-04-23 20:14:16 -04:00
Gordon-F
b6996dbd32
Return error exit code if validation fails
2021-04-23 16:36:49 -04:00
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
Ashley
36bace2b41
Set is_scoped to false when evaluating a swizzle subexpression ( #761 )
2021-04-23 11:53:07 -04:00
Dzmitry Malyshau
0725417193
Allow indexing value pointers ( #758 )
2021-04-23 01:19:48 -04:00
Dzmitry Malyshau
0917e3740b
[msl] don't use sample level on 1D textures ( #757 )
2021-04-23 01:15:04 -04:00
Dzmitry Malyshau
b15a23c61f
[spv-in] fix integer constants parsing ( #756 )
2021-04-23 01:05:10 -04:00
Dzmitry Malyshau
f0cf6a6772
[spv-in] support OpModuleProcessed ( #753 )
2021-04-22 14:43:14 -04:00
Dzmitry Malyshau
24eaad10fc
Follow up on the swizzle PR review notes ( #750 )
2021-04-22 11:17:44 -04:00
Dzmitry Malyshau
a2e5284f82
WGSL trailing commas ( #743 )
...
* [wgsl-in] typedef Span
* [wgsl-in] trailing comma for case list
* [wgsl-in] trailing comma for constructors
* Review fixes
2021-04-21 22:38:26 -04:00
Dzmitry Malyshau
bc344579e8
[spv-in] fix signed/unsigned casting for builtins ( #746 )
2021-04-21 11:04:53 -04:00
Dzmitry Malyshau
b86c2fbeeb
Don't print the module in converter if no output is specified ( #744 )
2021-04-21 09:40:29 -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
Gordon-F
c37ae5e2a0
[glsl-out] Use fmt::Writer instead of io::Writer
2021-04-20 09:09:35 -04:00
Gordon-F
446f5dad6f
[hlsl-out] Use fmt::Writer instead of io::Writer
2021-04-20 09:09:35 -04:00
François
79bcfb1206
[glsl-in] add support for array variables ( #731 )
...
* [glsl-in] add support for array variables
* clippy
* more clippy
2021-04-19 13:37:25 -04:00
Jim Blandy
9cd6fd9c20
[msl-out]: Generate interpolation qualifiers.
2021-04-19 09:42:00 -04:00
Jim Blandy
fc39ea8877
[msl-out]: ResolvedBinding::try_fmt: Simplify error handling.
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
Jim Blandy
45ee5f5113
[spv-out] Writer: Introduce decorate helper method.
...
The `Writer::decorate` private method neatens up eight call sites.
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
Igor Shaposhnik
c1675d06f9
Start wgsl-out ( #727 )
2021-04-19 00:23:27 -04:00
Dzmitry Malyshau
62c2cf7332
Validate composite constants ( #729 )
2021-04-18 23:19:09 -04:00
Ashley
a584ec8185
Impl Eq for msl::Options ( #725 )
2021-04-18 01:19:12 -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