Dzmitry Malyshau
09d35f3631
gl-out: skip unsized types if unused
2022-01-05 23:11:43 -05:00
Jim Blandy
53eeb654aa
[msl-out] Don't give level in texture1d accesses.
...
Fixes #1642 .
Since 1d textures cannot have mipmaps, MSL requires that the `level` argument to
texel accesses and dimension queries be a constexpr 0. For our purposes, just
omit the level argument altogether.
2022-01-04 15:33:23 -08:00
Jim Blandy
a1e8805360
Use ExpressionContext::resolve_type where appropriate.
2022-01-04 15:33:23 -08:00
Ibiyemi Abiodun
9a0f1b395c
Add a way to emit errors with a path ( #1640 )
...
* Add a way to emit errors with a path
I am using `naga` in my build script to validate all of my shaders, and it would be nice to be able to display the file path inside of the diagnostic, so I added a method `emit_to_stderr_with_path` to `naga::front::wgsl::ParserError`.
* change path to &str
* fix rustfmt
2022-01-04 18:21:44 +00:00
João Capucho
743d058b49
glsl-out: Use constructors shorthand for zero init
2022-01-04 13:52:00 +00:00
João Capucho
b9c4893112
glsl-out: Write struct initializers
2022-01-04 13:52:00 +00:00
João Capucho
32205e3097
glsl-out: write array initializers
2022-01-04 13:52:00 +00:00
João Capucho
79233ba5e5
glsl-out: Fix array constants constructor
2022-01-04 13:52:00 +00:00
Dzmitry Malyshau
8003e3e30a
Validate structure resource types
2022-01-03 12:44:58 -05:00
Vinh Truong
6aca3e0b36
Fix data packing functions on MSL ( #1637 )
...
* Fix data packing functions on MSL
`snorm` and `unorm` got mixed up.
* Fix bits.msl
2021-12-31 16:44:54 +00:00
João Capucho
1d0f484b37
glsl-in: fix composite constructors ( #1631 )
...
* glsl-in: Remove unneeded mutability from reference
* glsl-in: Fix composite constructors
In the recent rework of the constructors it seems that the logic for
composite types (arrays and structs) was accidentally removed by me.
2021-12-28 20:16:56 -05:00
Dzmitry Malyshau
2738ad80b9
msl: fix packed vec access ( #1634 )
2021-12-28 05:13:13 +00:00
João Capucho
5a26606a09
glsl-in: Fix using swizzle as out arguments ( #1632 )
...
This worked at one point but because of some changes to the IR it was
temporarily broken.
2021-12-27 19:09:33 -05:00
Dzmitry Malyshau
b1ab59925d
msl: fix packed float support ( #1630 )
2021-12-27 02:57:47 +00:00
Jeff Muizelaar
848ae3dc6e
Turn on panic = "abort" by default ( #1597 )
...
This reduces the size of a release naga binary on macOS
from 3.5MB to 3.2MB. It's also the configuration we use
for naga in Firefox.
2021-12-26 20:01:49 -05:00
Dzmitry Malyshau
f2832b8999
hlsl: support arrays of matrices ( #1629 )
2021-12-27 00:30:57 +00:00
Luke Street
0d1fc2131f
[wgsl-in] Support radians/degrees builtin functions ( #1627 )
2021-12-27 00:29:33 +00:00
Igor Shaposhnik
8df5421e2e
[glsl-out] Add stage postfix to generated global name ( #1616 )
2021-12-23 22:19:07 -05:00
Jay Oster
924ab17b62
Fixes for fma function ( #1580 )
...
* [hlsl-out] Write `mad` intrinsic for `fma` function
- This should be enough because we only support f32 for now.
- Adds a new test for WGSL functions, in the spirit of operators.wgsl.
- Closes #1579
* Add FMA feature to glsl backend
- I think this is right. Just iterate all known expressions in all
functions and entry points to locate any `fma` function call.
Should not need to walk the statement DAG.
* Transform GLSL fma function into an airthmetic expression when necessary
* Add tests for GLSL fma function tranformation
* Remove the hazard comment from the webgl test input
* Add helper method for fma function support checks
* Address review comment
2021-12-22 09:41:07 -05:00
Jakob Hellermann
54178dede2
impl Clone for WithSpan<E> ( #1620 )
2021-12-21 20:14:10 +00:00
Jonathan Behrens
f9b348557a
Add FindLsb / FindMsb ( #1473 )
...
* Add FindLsb / FindMsb
* Fixes and tests for FindLsb/FindMsb
* Add findLsb / findMsb as WGSL builtins
* Fix tests
* Fix incompatible type issue with MSL output
* Requested changes
* Test fewer cases of findLsb/findMsb
2021-12-20 14:48:54 -05:00
Dzmitry Malyshau
c2328fea75
Release v0.8
2021-12-18 12:05:12 -05:00
Dzmitry Malyshau
8caa2bd87e
Gather operations
2021-12-18 11:46:49 -05:00
Jim Blandy
db98743a5a
[glsl-out] Don't return early from snapshot tests.
2021-12-17 20:27:27 -05:00
Ashley
75ce45d4f3
spv-in: fix support for degrees and radians conversion
2021-12-17 11:56:47 -05:00
Christofer Nolander
d13e9e3b83
wgsl-in: correctly parse else if ( #1611 )
...
* wgsl-in: correctly parse `else if`
* wgsl-in: use early exit in `else if` parsing
2021-12-17 16:19:38 +00:00
João Capucho
e1552fd9d5
wgsl-in: Implement matrix construction from scalar
2021-12-17 10:39:31 -05:00
João Capucho
33c1daecee
glsl-in: Cull the body of do while if needed
2021-12-16 18:42:59 -05:00
João Capucho
322be0772e
spv-in: Implement CompositeInsert for arrays
...
Only adds support for unspecialized arrays
2021-12-16 16:31:51 -05:00
Dzmitry Malyshau
6df9656e96
spv-out: Force wrapping of push constant structs
2021-12-16 16:21:06 -05:00
Dzmitry Malyshau
7bb886bf36
Enforce casting width better, fix IEqual/INotEqual in spv
2021-12-16 16:14:56 -05:00
João Capucho
12baa1e909
spv-in: Implement OpCopyObject
...
Treat it as a noop since the IR has no concept of copying objects
2021-12-16 13:11:20 -05:00
João Capucho
2a8d64fc59
spv-in: Implement remaining sign agnostic ops
2021-12-16 11:22:16 -05:00
João Capucho
cf0c31cc85
spv-in: Allow branch weights in OpBranchConditional
2021-12-16 10:58:27 -05:00
João Capucho
9c75f3cdce
glsl-in: Flatten entry point arguments
...
The IR doesn't allow having structs has bindings for entry point
input/output, so the glsl frontend must flatten them.
Glsl defines that the locations are sequential from the block base location.
2021-12-16 10:55:06 -05:00
João Capucho
049b48b319
spv-in: Remove if when both branches are equal
2021-12-15 23:55:20 -05:00
João Capucho
4334f0e6a9
Support bitwise And on booleans
2021-12-15 23:53:23 -05:00
João Capucho
c64d5eff50
Support bitwise Or on booleans
2021-12-15 23:53:23 -05:00
Dzmitry Malyshau
8ffd6ba929
Remove top_level property of structs
2021-12-15 09:33:33 -05:00
Jim Blandy
3867ef4f6c
[msl-out] Correctly construct out-of-bounds values for all types.
2021-12-14 23:00:03 -05:00
Jim Blandy
8a2fbd360d
[msl-out] Add log tracing for functions and entry points.
2021-12-14 23:00:03 -05:00
Markus
c4b331acb4
readme: list supported GLSL versions for glsl-in ( #1586 )
2021-12-11 21:29:49 -05:00
Lain-dono
e200e44ede
[spv-out] Fixing incorrect pack/unpack ( #1587 )
...
* [spv-out] Fixing incorrect pack/unpack
* [spv-out] Fixing incorrect pack/unpack: make tests happy
* [spv-out] Fixing incorrect pack/unpack: remove unexpected newline
2021-12-11 21:29:31 -05:00
Jim Blandy
f51f468a47
[msl-out] Implement index bounds check policies for non-texture accesses.
2021-12-06 15:53:41 -05:00
Jim Blandy
e8f564dc83
[spv-out] Add comment about AccessIndex on non-pointer values.
2021-12-06 15:53:41 -05:00
Jim Blandy
61e3af2989
[msl-out] Move Statement::Store handling into its own function.
2021-12-06 15:53:41 -05:00
Jim Blandy
17398e761f
[msl-out] Move Expression::Load handling into its own function.
...
No changes in behavior.
2021-12-06 15:53:41 -05:00
Jim Blandy
840bbaffcc
[msl-out] Rename put_dynamic_array_length, make it take a global.
2021-12-06 15:53:41 -05:00
Jim Blandy
89cc21ef43
[spv-out] BlockContext::write_expression_pointer doc fix.
2021-12-06 15:53:41 -05:00
Jim Blandy
6912cb3594
[spv-out] Move ExpressionPointer to back::spv::block, remove pub.
2021-12-06 15:53:41 -05:00