From: Dave Airlie <[email protected]> From reading AMDVLK it currently never uses hw resolve paths.
This patch limits the paths we used the hw resolve for, and fixes a larger number of the: dEQP-VK.renderpass.suballocation.multisample* tests. It currently doesn't do hw resolves for integer or >= 16-bit formats. This still leaves depth resolves and 16-bit formats at 8-bit samples failing. Signed-off-by: Dave Airlie <[email protected]> --- src/amd/vulkan/radv_meta_resolve.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/amd/vulkan/radv_meta_resolve.c b/src/amd/vulkan/radv_meta_resolve.c index 49326fe..66d5fe4 100644 --- a/src/amd/vulkan/radv_meta_resolve.c +++ b/src/amd/vulkan/radv_meta_resolve.c @@ -26,6 +26,7 @@ #include "radv_meta.h" #include "radv_private.h" +#include "vk_format.h" #include "nir/nir_builder.h" #include "sid.h" @@ -323,6 +324,11 @@ static void radv_pick_resolve_method_images(struct radv_image *src_image, uint32_t queue_mask = radv_image_queue_family_mask(dest_image, cmd_buffer->queue_family_index, cmd_buffer->queue_family_index); + + if (vk_format_is_int(src_image->vk_format) || + vk_format_get_component_bits(src_image->vk_format, VK_FORMAT_COLORSPACE_RGB, 0) >= 16) + *method = RESOLVE_COMPUTE; + if (radv_layout_dcc_compressed(dest_image, dest_image_layout, queue_mask)) { *method = RESOLVE_FRAGMENT; } else if (dest_image->surface.micro_tile_mode != src_image->surface.micro_tile_mode) { -- 2.9.5 _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
