summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2018-01-23 14:57:12 +1000
committerEmil Velikov <[email protected]>2018-01-26 19:53:01 +0000
commit62803e022eae6d3b173600c5849cf512c75e89e2 (patch)
tree11567faf6a98edca44bad89caeee1cca97410dbb
parente76f0abed8a7f3a3539d9507e327cf3d2cc76ad4 (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]> (cherry picked from commit 4df414bbd2f1a44840c982198f4c8353f242ca15)
-rw-r--r--src/amd/vulkan/radv_meta_resolve.c5
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) {