Commit Graph

1565 Commits

Author SHA1 Message Date
Taylor Holliday
f63003cd36 WGSL storage address space should always correspond to MSL device add… (#1711)
* WGSL storage address space should always correspond to MSL device address space.

See MSL spec section 4.2.

* Update baselines

* Add error for storage address space if MSL version < 2.

* Update default MSL version to 2.0.
2022-02-03 13:00:04 -05:00
Dzmitry Malyshau
9b89c5fa89 Improve error messages about address space 2022-02-02 12:42:29 -05:00
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
rhysd
f98053aa3c cli: Include file path in WGSL parse error 2022-01-29 08:52:15 -05:00
rhysd
0afa8fcb4f cli: Add --version flag 2022-01-28 12:16:00 -05:00
rhysd
6842db4432 cli: Support reading input from stdin 2022-01-27 12:59:01 -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
a1840beb1a glsl-out: Add test for push constants 2022-01-16 19:32:51 -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
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