KhronosGroup / MoltenVK

MoltenVK is a Vulkan Portability implementation. It layers a subset of the high-performance, industry-standard Vulkan graphics and compute API over Apple's Metal graphics framework, enabling Vulkan applications to run on macOS, iOS and tvOS.
Apache License 2.0
4.73k stars 411 forks source link

Fix `shaderTessellationInputOutputNesting` CTS failures #1731

Closed cdavis5e closed 1 year ago

cdavis5e commented 1 year ago

This is in support of a Khronos contract to reduce CTS failures in MoltenVK, leading up to certification as a Vulkan Portability implementation.

These failures are caused by the lack of support for nested arrays and structures as input to a tessellation evaluation shader. The easiest way to fix this is to simply use raw buffer input instead of vertex-style input. Then we get the support "for free" with no clumsy workarounds required in SPIRV-Cross.

66 CTS failures will be fixed by this change.

cdavis5e commented 1 year ago

Fixed in #1755.