Commit Graph

681 Commits

Author SHA1 Message Date
Matúš Talčík
44a6c02cda spv-in: special-case a loop with true/false node == merge node
beautify

beautify #2
2021-04-09 17:17:02 -04:00
Dzmitry Malyshau
67e3e0a697 [spv-in] work around row-major matrices 2021-04-09 11:22:13 -04:00
Dzmitry Malyshau
0cc22c8c65 [spv-in] move the matrix decoration handling to structure parsing 2021-04-09 11:22:13 -04:00
Dzmitry Malyshau
425c75eb3f [msl-out] emit packed vectors if necessary 2021-04-09 00:48:18 -04:00
Dzmitry Malyshau
f3ba6e91c2 [msl-out] shorten the expression name 2021-04-09 00:48:18 -04:00
Dzmitry Malyshau
4ff5fa4568 [msl-out] add support for matrix value types 2021-04-09 00:48:18 -04:00
Dzmitry Malyshau
604e10e19b Rewrite IR to have member offsets, full structure span and alignment 2021-04-08 23:15:03 -04:00
Dzmitry Malyshau
7326ba6ddb New struct layout IR 2021-04-08 23:15:03 -04:00
Jim Blandy
5a0e3ad5ff [spv-out]: Add some local use declarations to the SPIR-V writer.
This adds `use` declarations for `spirv::Decoration` and `spirv::BuiltIn` local
to functions where those are used repeatedly.
2021-04-08 20:27:48 -04:00
LaughingMan
d0d9e09cdb [spv-in] Copy less bytes in parse_function
The initial intention was to make the code a little more elegant and match on
the Vec itself instead of its length, however there's also a - probably
minuscule - performance advantage:

`Vec::remove` internally copies the removed element onto the stack. In this case
that's a `StructMember` weighting 48 bytes. The `Binding` we are actually
interested in is only 8 bytes tough.

Cloning just the `Binding` saves us from copying 40 bytes for nothing.
2021-04-08 13:10:56 -04:00
Dzmitry Malyshau
6166b95b6a [msl] inline some of the constants 2021-04-08 12:36:43 -04:00
Dzmitry Malyshau
2774dcb403 [msl] inline some of the types 2021-04-08 11:10:52 -04:00
Dzmitry Malyshau
f1c5e04b89 [msl] fix select() arguments 2021-04-08 11:10:52 -04:00
Dzmitry Malyshau
e06451777e [msl] address review comments, rename SubOptions to PipelineOptions, add more inlined states 2021-04-07 22:49:13 -04:00
Dzmitry Malyshau
499f2e3cbe [msl] add a snapshot test for inline sampler 2021-04-07 22:49:13 -04:00
Dzmitry Malyshau
7c11759041 Re-use the MSL types in snapshot code 2021-04-07 22:49:13 -04:00
Dzmitry Malyshau
9e09c792dc [msl] write down inline samplers 2021-04-07 22:49:13 -04:00
Dzmitry Malyshau
dcbedd17d0 [msl] basic infrastructure for inline samplers
Also move out "allow_point_size" into SubOptions to allow
main Options to not be cloned.
2021-04-07 22:49:13 -04:00
Jim Blandy
2da7477322 [wgsl-in] Decorations are now called attributes. (#671)
Renames:

Error::UnknownDecoration => Error::UnknownAttribute
TypeDecoration => TypeAttributes
Scope::Decoration => Scope::Attribute

various argument names, string literals, comments
2021-04-07 22:45:38 -04:00
Zakarum
ccb6dc9088 Panic to prevent arena Handle overflow (#667)
* Panic to prevent arena Handle overflow

* Use `NonZeroU32::new` to detect overflow
2021-04-07 14:00:40 -04:00
adamnemecek
0058ce5a7d fixed bug where metal backend would make all switch cases fallthrough 2021-04-04 18:30:04 -04:00
Dzmitry Malyshau
0369ee181e [spv-out] fix sampling from depth textures 2021-04-04 10:25:46 -04:00
Dzmitry Malyshau
a9bde26785 [spv-out] fix incorrect dummy result 2021-04-04 10:25:46 -04:00
Dzmitry Malyshau
410c242daf [spv-out] add a flag to adjust the coordinate space 2021-04-03 11:27:21 -04:00
Dzmitry Malyshau
ead052b773 [spv-in] add a flag to adjust the coordinate space 2021-04-03 11:27:21 -04:00
Dzmitry Malyshau
100c2f42ed [spv-out] cache access index constants 2021-04-03 11:27:21 -04:00
Dzmitry Malyshau
5673603bab [spv-out] flip position Y 2021-04-03 11:27:21 -04:00
Dzmitry Malyshau
ab54f683be [spv-in] flip Y axis 2021-04-03 11:27:21 -04:00
Dzmitry Malyshau
4389a86787 Fix layout roundup 2021-04-03 00:41:32 -04:00
Dzmitry Malyshau
d4d9d7814f [msl-out] option to omit point size output 2021-04-02 00:19:52 -04:00
Dzmitry Malyshau
8ff27187d1 Fix matrix multiplication types 2021-04-01 15:49:37 -04:00
Dzmitry Malyshau
cbdfbed32e [msl-out] move return value statement into a function 2021-04-01 15:45:08 -04:00
Dzmitry Malyshau
13c9356873 [msl-out] track put_block stack sizes 2021-04-01 15:45:08 -04:00
Dzmitry Malyshau
f8b3c597ff [msl-out] move image size query into a separate method 2021-04-01 15:45:08 -04:00
Dzmitry Malyshau
db455af04b Add a snapshot for image load/store ops 2021-04-01 10:47:28 -04:00
Dzmitry Malyshau
6a5c7f10ad [msl-out] cast image load/store coordinates to unsigned 2021-04-01 10:47:28 -04:00
Dzmitry Malyshau
af4d989f55 [msl-out] copy array elements one by one 2021-04-01 10:26:59 -04:00
Dzmitry Malyshau
cf3a6da3ce [msl] clean up emitted expressions at the end of a block 2021-04-01 10:26:59 -04:00
Dzmitry Malyshau
62fe72be2e Enable all features for the docs 2021-04-01 10:26:00 -04:00
Dzmitry Malyshau
427d8dc1eb [spv-in] pre-emit constant expressions 2021-03-31 23:17:19 -04:00
Dzmitry Malyshau
7a17da195c [msl] use uint behind metal namespace only 2021-03-31 23:01:19 -04:00
Gordon-F
80a8243953 Fix Uint/Sint type conversion 2021-03-30 18:13:57 -04:00
Dzmitry Malyshau
7be524592a [msl] fix mutability of function parameters 2021-03-30 15:43:53 -04:00
Dzmitry Malyshau
fc7b79ddff [msl-out] make EntryPointError cloneable 2021-03-30 10:08:36 -04:00
Dzmitry Malyshau
c41f050312 [wgsl-in] ability to take a pointer to something 2021-03-30 01:01:28 -04:00
Dzmitry Malyshau
baccfc68f5 [msl] fix constant array initialization 2021-03-30 00:38:00 -04:00
Dzmitry Malyshau
057fa336a8 [spv-in] derivative ops 2021-03-29 11:07:33 -04:00
Dzmitry Malyshau
f06583ca7d [spv-in] change const indexes to signed int 2021-03-29 11:07:33 -04:00
Dzmitry Malyshau
ca6876b7a0 Validate math functions 2021-03-29 11:06:41 -04:00
Dzmitry Malyshau
50059740f7 [msl] prefix lod options with metal namespace 2021-03-27 10:58:01 -04:00