From 559f31e202fd8bdb984a6bbf8c03d65dd1e93d57 Mon Sep 17 00:00:00 2001 From: Jesse Natalie Date: Tue, 30 Jan 2024 09:06:52 -0800 Subject: [PATCH] dzn: Use blits for all non-averaging resolves Trying to do min/max resolves on depth/stencil is failing for me on hardware, just simplify things and always use a manual resolve for modes that aren't average. Part-of: --- src/microsoft/vulkan/dzn_cmd_buffer.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/microsoft/vulkan/dzn_cmd_buffer.c b/src/microsoft/vulkan/dzn_cmd_buffer.c index 770132415cc..9e40a01197d 100644 --- a/src/microsoft/vulkan/dzn_cmd_buffer.c +++ b/src/microsoft/vulkan/dzn_cmd_buffer.c @@ -4726,11 +4726,10 @@ dzn_cmd_buffer_resolve_rendering_attachment(struct dzn_cmd_buffer *cmdbuf, } if (force_blit_resolve || - att->resolve.mode == VK_RESOLVE_MODE_SAMPLE_ZERO_BIT || + /* Resolve modes other than average are poorly tested / buggy */ + att->resolve.mode != VK_RESOLVE_MODE_AVERAGE_BIT || /* D3D resolve API can't go from (e.g.) D32S8X24 to D32 */ - src->vk.view_format != dst->vk.view_format || - (att->resolve.mode != VK_RESOLVE_MODE_AVERAGE_BIT && - pdev->options2.ProgrammableSamplePositionsTier == D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED)) { + src->vk.view_format != dst->vk.view_format) { dzn_cmd_buffer_resolve_rendering_attachment_via_blit(cmdbuf, att, aspect, &src_range, &dst_range); return; }