Commit Graph

1511 Commits

Author SHA1 Message Date
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
Igor Shaposhnik
9cc2b730b7 [glsl-out] Add note about supported GLSL versions 2021-12-06 12:31:31 -05:00
João Capucho
14719553a6 glsl-in: fix pre/postfix ops on swizzles 2021-12-05 22:16:28 -05:00
Dzmitry Malyshau
c69f676609 glsl: reflect textures without samplers 2021-12-04 12:19:36 -05:00
Dzmitry Malyshau
6fbd668bd3 Add missing GLSL tests 2021-12-02 13:11:23 -05:00
João Capucho
9fac7c48a6 glsl-in: Allow vector/matrix in vector constructor
The glsl spec defines that vector constructors flatten their arguments
and consume them in order, ignoring the remaining arguments if there are
more than needed
2021-11-29 11:06:18 -05:00
Igor Shaposhnik
dba6beb941 [wgsl-in] Don't allow redefinition of module scope identifiers 2021-11-28 21:23:22 -05:00