Commit Graph

1543 Commits

Author SHA1 Message Date
João Capucho
b42bf8768e glsl-out: Write correct argument name when skipping samplers 2022-01-16 00:47:35 -05:00
Noel Tautges
955e02eb17 Ignore .vscode 2022-01-14 21:47:14 -03:30
Dzmitry Malyshau
a89e248d68 layouter: let size() panic 2022-01-14 12:52:30 -05:00
Dzmitry Malyshau
d468e1512f Introduce BadHandle error 2022-01-14 12:44:27 -05:00
Dzmitry Malyshau
b12ed2cc9e Fix arbitrary for MSRV 2022-01-14 12:44:27 -05:00
Dzmitry Malyshau
0ec049fb94 typifier: handle non-existing constants 2022-01-14 12:44:27 -05:00
Dzmitry Malyshau
68b1ae1499 typifier: handle forward expression dependencies 2022-01-14 12:44:27 -05:00
Dzmitry Malyshau
be7df0d212 analyzer: skip invalid expressions 2022-01-14 12:44:27 -05:00
Dzmitry Malyshau
ab02ec7904 layouter: rich and careful errors 2022-01-14 12:44:27 -05:00
Dzmitry Malyshau
a069361bf4 validate: check local var type to be in range 2022-01-14 12:44:27 -05:00
Dzmitry Malyshau
fee69774a3 validate: check function argument type to be in range 2022-01-14 12:44:27 -05:00
Dzmitry Malyshau
ee0cb0d5d3 layouter: handle width multiplication overflows 2022-01-14 12:44:27 -05:00
Dzmitry Malyshau
c9f52bd651 validate: check global var type to be in range 2022-01-14 12:44:27 -05:00
Dzmitry Malyshau
a4ea9ce68d typifier: check local vars, global vars, and function arguments to exist 2022-01-14 12:44:27 -05:00
Dzmitry Malyshau
003ea29a3a validate: check constant composite type 2022-01-14 12:44:27 -05:00
Dzmitry Malyshau
bf0cb2b3a9 Fix multiplication overflow in span() computation 2022-01-14 12:44:27 -05:00
Dzmitry Malyshau
aedcc56b81 layouter: handle width=0 gracefully 2022-01-14 12:44:27 -05:00
Dzmitry Malyshau
58b4fd0f57 IR fuzz target with Arbitrary implementations 2022-01-14 12:44:27 -05:00
Benoît du Garreau
9f37624592 Don't pin indexmap version 2022-01-12 13:31:40 -05:00
Dzmitry Malyshau
c0b7ac7f54 WGSL: assignment binary operators 2022-01-11 11:01:24 -05:00
Dzmitry Malyshau
7555df952e Adjust the MSL stack size lower bound 2022-01-11 09:30:14 -05:00
Igor Shaposhnik
298a8c30bd [wgsl-in] Write a real type in type mismatch error 2022-01-10 10:02:05 -05:00
João Capucho
70b5ddaaad spv-out: use OpFRem instead of OpFMod 2022-01-07 20:19:15 -05:00
João Capucho
a8929603ac spv-in: OpVectorInsertDynamic allow unsigned index 2022-01-07 11:08:04 -05:00
João Capucho
eeb3de6f86 spv-in: sign agnostic unary operations 2022-01-07 11:03:44 -05:00
João Capucho
e2fc32387b spv-in: more sign agnostic binary operations 2022-01-07 11:03:44 -05:00
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