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