tests: Mark interface packing pipeline creation as todo on MoltenVK.

Most Vulkan drivers are happy to compile a pipeline with interstage
interface mismatches, even if the pipeline will be broken. Metal,
and therefore MoltenVK, instead doesn't and errors out immediately.
This commit is contained in:
Giovanni Mascellani
2024-10-19 11:13:07 +02:00
committed by Henri Verbeet
parent b411086398
commit dff7c0e7b8
Notes: Henri Verbeet 2024-10-22 20:55:14 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1203
5 changed files with 78 additions and 15 deletions

View File

@@ -986,6 +986,12 @@ static void d3d12_runner_init_caps(struct d3d12_shader_runner *runner,
"d3d12",
};
static const char *const mvk_tags[] =
{
"d3d12",
"mvk",
};
static const enum DXGI_FORMAT formats[] =
{
DXGI_FORMAT_R32_FLOAT,
@@ -1028,8 +1034,17 @@ static void d3d12_runner_init_caps(struct d3d12_shader_runner *runner,
runner->caps.rov = options.ROVsSupported;
runner->caps.wave_ops = options1.WaveOps;
runner->caps.depth_bounds = options2.DepthBoundsTestSupported;
runner->caps.tags = tags;
runner->caps.tag_count = ARRAY_SIZE(tags);
if (is_mvk_device(device))
{
runner->caps.tags = mvk_tags;
runner->caps.tag_count = ARRAY_SIZE(mvk_tags);
}
else
{
runner->caps.tags = tags;
runner->caps.tag_count = ARRAY_SIZE(tags);
}
for (unsigned int i = 0; i < ARRAY_SIZE(formats); ++i)
{