Commit Graph

1398 Commits

Author SHA1 Message Date
Dzmitry Malyshau
75692d3795 Allow non-structure buffer types 2022-02-02 10:08:20 -05:00
glalonde
bb604fd6a3 Mitigation for MSL atomic bounds check. (#1703)
[msl-out] Correct output for bounds-checked atomic accesses.
2022-02-01 16:37:09 -08:00
Dzmitry Malyshau
2ddc8d1929 Rename StorageClass to AddressSpace 2022-01-31 16:25:06 -05:00
rhysd
d6f8958b34 wgsl: Do not make error output colorful when the terminal is dumb 2022-01-29 08:52:36 -05:00
Connor Fitzgerald
f5d97cae84 Adjust MSL version invariant needs 2022-01-25 13:25:48 -05:00
Dzmitry Malyshau
a782592af3 msl: emit point size even when there is no struct 2022-01-25 11:24:58 -05:00
Dzmitry Malyshau
4c91abe5b3 wgsl: remove stride 2022-01-24 16:44:12 -05:00
Jim Blandy
f61ac3e73e Document proc::layouter.
Rename `TypeLayoutError` to `LayoutErrorInner`, for consistency. It makes no
sense to have 'Type' in the name of one of the error types but not the other.
The 'Inner' convention is used by the module types.

Cite the layout rules in the WGSL spec, not a GitHub issue.
2022-01-24 16:43:54 -05:00
Connor Fitzgerald
f36cfb93dc glsl: floatBitsToUint spelling 2022-01-24 10:36:26 -05:00
Dzmitry Malyshau
aea427fa92 msl: add invariance if supported 2022-01-24 09:59:45 -05:00
João Capucho
81dc67402a glsl-out: push constants use anonymous uniforms
Previously this was done with UBOs but this posed some problems when
integrating with wgpu (see https://github.com/gfx-rs/wgpu/pull/2400)
2022-01-21 21:13:12 -05:00
francesco-cattoglio
8647e06b72 glsl-out: Call proper memory barrier functions (#1680)
* glsl-out: Call proper memory barrier functions

* glsl-out: Change test for control flow

* Removed two unnecessary calls
2022-01-21 15:34:44 +00:00
Dzmitry Malyshau
4bd1efc34d wgsl: declare attribtues with @ 2022-01-20 19:44:05 -05:00
Dávid Kocsis
adc6821751 implement block comments (#1675) 2022-01-19 19:48:04 +00:00
Dzmitry Malyshau
76814a83a2 msl: inject point size if needed 2022-01-19 11:33:14 -05:00
João Capucho
91ca923553 glsl-out: Add support for push constant emulation 2022-01-16 19:32:51 -05:00
João Capucho
b42bf8768e glsl-out: Write correct argument name when skipping samplers 2022-01-16 00:47:35 -05:00
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
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