Hans-Kristian Arntzen
e32c474911
MSL: Handle masking of TESC IO block members.
2021-04-19 12:10:49 +02:00
Hans-Kristian Arntzen
dc54f75eec
MSL: Fixup gl_PerVertex names if we're emitting masked builtins.
2021-04-19 12:10:49 +02:00
Hans-Kristian Arntzen
46c48ee6b5
MSL: Rewrite how IO blocks are emitted in multi-patch mode.
...
Firstly, never flatten inputs or outputs in multi-patch mode.
The main scenario where we do need to care is Block IO.
In this case, we should only flatten the top-level member, and after
that we use access chains as normal.
Using structs in Input storage class is now possible as well. We don't
need to consider per-location fixups at all here. In Vulkan, IO structs
must match exactly. Only plain vectors can have smaller vector sizes as
a special case.
2021-04-19 12:10:49 +02:00
Hans-Kristian Arntzen
ff3f5bcba5
MSL: Handle masking of builtin control points.
2021-04-19 12:10:49 +02:00
Hans-Kristian Arntzen
436b1250da
MSL: Do not perform scalar fixups for control-point outputs.
2021-04-19 12:10:49 +02:00
Hans-Kristian Arntzen
74b2acab9b
MSL: Always emit block variable for block types.
2021-04-19 12:10:49 +02:00
Hans-Kristian Arntzen
ae7bb41ef4
MSL: Test that we can mask location writes in TESC.
2021-04-19 12:10:49 +02:00
Hans-Kristian Arntzen
ba93b6518d
MSL: Fix masking of vertex block outputs.
2021-04-19 12:10:49 +02:00
Hans-Kristian Arntzen
857295a9ab
MSL: Add tests for masking with --for-tess.
2021-04-19 12:10:49 +02:00
Hans-Kristian Arntzen
43b6ea2c9a
MSL: Remove position mask tests. They will fail compilation.
2021-04-19 12:10:49 +02:00
Hans-Kristian Arntzen
50a6bc058a
MSL: Force builtin arrays for builtin array types.
...
Handles argument_decl() correctly.
2021-04-19 12:10:49 +02:00
Hans-Kristian Arntzen
88b54f5dab
MSL: Add tests for vertex output masking.
2021-04-19 12:10:49 +02:00