tests: Mark an early depth stencil test as buggy on MoltenVK.

On MoltenVK it seems that all draws are always executed,
independently of the early depth stencil test. The problem doesn't
seem to belong to vkd3d or MoltenVK, because the generated Metal
commands look correct. I tried looking at a GPU capture with Xcode,
which was not very conclusive because it doesn't state clearly
whether early fragment tests were passed or not. Sometimes it
says that a fragment shader execution had no thread execution
data, which I interpret as the early fragment tests having
prevented the fragment shader from running, but it's not really
consistent, and it's never clear which results are based on
software simulation and which on the hardware run.

However taking everything into account I think the most likely
explanation is some incorrect optimization at the Metal level.
This commit is contained in:
Giovanni Mascellani 2025-03-14 21:03:26 +01:00 committed by Henri Verbeet
parent 05f7f03dab
commit 803bf59654
Notes: Henri Verbeet 2025-03-18 16:04:59 +01:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1433

View File

@ -35343,6 +35343,7 @@ static void test_early_depth_stencil_tests(void)
D3D12_RESOURCE_STATE_UNORDERED_ACCESS, D3D12_RESOURCE_STATE_COPY_SOURCE);
check_sub_resource_float(ds.texture, 0, queue, command_list, 0.6f, 1);
reset_command_list(command_list, context.allocator);
bug_if(is_mvk_device(context.device))
check_sub_resource_uint(texture, 0, queue, command_list, 2, 1);
reset_command_list(command_list, context.allocator);
@ -35379,6 +35380,7 @@ static void test_early_depth_stencil_tests(void)
D3D12_RESOURCE_STATE_UNORDERED_ACCESS, D3D12_RESOURCE_STATE_COPY_SOURCE);
check_sub_resource_float(ds.texture, 0, queue, command_list, 0.5f, 1);
reset_command_list(command_list, context.allocator);
bug_if(is_mvk_device(context.device))
check_sub_resource_uint(texture, 0, queue, command_list, 4, 1);
ID3D12Resource_Release(texture);