From 4df414bbd2f1a44840c982198f4c8353f242ca15 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 23 Jan 2018 14:57:12 +1000 Subject: [PATCH] radv: don't use hw resolve for integer image formats From reading AMDVLK it currently never uses hw resolve paths. This patch takes from radeonsi which doesn't use hw resolve for integer formats, and does the same for radv. This fixes: dEQP-VK.renderpass.suballocation.multisample*uint tests. Reviewed-by: Bas Nieuwenhuizen Fixes: 2a04f5481d (radv/meta: select resolve paths) Signed-off-by: Dave Airlie --- src/amd/vulkan/radv_meta_resolve.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/amd/vulkan/radv_meta_resolve.c b/src/amd/vulkan/radv_meta_resolve.c index 855bf982039..bf33dfdfabd 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" @@ -351,6 +352,10 @@ 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)) + *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.30.2