diff options
author | Dave Airlie <[email protected]> | 2018-01-23 14:57:12 +1000 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2018-01-24 08:53:18 +1000 |
commit | 4df414bbd2f1a44840c982198f4c8353f242ca15 (patch) | |
tree | 961d9f78b2269e23edc581749fa6395273211ad2 | |
parent | 316d762186f0bfc225b82794fdae520275a448db (diff) |
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 <[email protected]>
Fixes: 2a04f5481d (radv/meta: select resolve paths)
Signed-off-by: Dave Airlie <[email protected]>
-rw-r--r-- | src/amd/vulkan/radv_meta_resolve.c | 5 |
1 files changed, 5 insertions, 0 deletions
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) { |