From: Dave Airlie <airl...@redhat.com> 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. radeonsi actually has the no-int and no-depth rules already so port those. I've also added a >= 16 color format component bit size, to avoid what radeonsi says is buggy behaviour. I wonder if we should be doing meta format key for resolves. This still leaves depth resolves and 16-bit formats at 8-bit samples failing. Signed-off-by: Dave Airlie <airl...@redhat.com> --- src/amd/vulkan/radv_meta_resolve.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/amd/vulkan/radv_meta_resolve.c b/src/amd/vulkan/radv_meta_resolve.c index 49326fe..4c74027 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,12 @@ 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_is_depth_or_stencil(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 mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev