SPIRV-Cross/shaders-msl
Chip Davis f3c0942d10 MSL: Use vectors for the tessellation level builtins in tese shaders.
The tessellation levels in Metal are stored as a densely-packed array of
half-precision floating point values. But, stage-in attributes in Metal
have to have offsets and strides aligned to a multiple of four, so we
can't add them individually. Luckily for us, the arrays have lengths
less than 4. So, let's use vectors for them!

Triangles get a single attribute with a `float4`, where the outer levels
are in `.xyz` and the inner levels are in `.w`. The arrays are unpacked
as though we had added the elements individually. Quads get two: a
`float4` with the outer levels and a `float2` with the inner levels.
Further, since vectors can be indexed as arrays, there's no need to
unpack them in this case.

This also saves on precious vertex attributes. Before, we were using up
to 6 of them. Now we need two at most.
2019-02-22 12:18:51 -06:00
..
asm MSL: Fix textures which are sampled and compared against. 2019-02-22 12:27:40 +01:00
comp Merge pull request #831 from cdavis5e/force-recompile-hooks 2019-01-17 19:42:05 +01:00
desktop-only MSL: Don't bother fixing up triangle tess coords. 2019-02-20 14:30:44 -06:00
flatten Use declared binding in SPIR-V as a fallback for explicit MSL binds. 2018-04-04 12:25:11 +02:00
frag MSL: Fix another test incompatibility. 2019-01-30 17:22:38 +01:00
legacy/vert Enhance MSL testing and add numerous MSL test cases. 2017-01-30 22:55:21 -05:00
tesc MSL: Add support for tessellation control shaders. 2019-02-07 08:51:22 -06:00
tese MSL: Use vectors for the tessellation level builtins in tese shaders. 2019-02-22 12:18:51 -06:00
vert Test that out variables still work in leaf functions with capture on. 2019-02-06 10:49:25 -06:00
vulkan Add support for 8- and 16-bit types to GLSL and MSL. 2018-11-01 10:20:57 -05:00