From 93fa687808f799ff557a9e99511e5da96bb215d7 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Wed, 17 Aug 2022 15:21:09 +0200 Subject: [PATCH] radv: do not compress DCC in presence of render loops on GFX10+ DCC shouldn't be compressed for Vulkan feedback loops (ie. render pass with input attachments). It looks like it has always been broken... Note that GFX9 and earlier chips aren't affected because they don't compress DCC on GENERAL. This fixes dEQP-VK.rasterization.rasterization_order_attachment_access.format*. Signed-off-by: Samuel Pitoiset Reviewed-by: Joshua Ashton Reviewed-by: Bas Nieuwenhuizen Part-of: --- src/amd/ci/radv-navi10-aco-fails.txt | 6 ------ src/amd/ci/radv-navi10-aco-flakes.txt | 1 - src/amd/ci/radv-navi14-aco-fails.txt | 6 ------ src/amd/ci/radv-navi21-aco-fails.txt | 2 -- src/amd/ci/radv-navi21-llvm-fails.txt | 2 -- src/amd/ci/radv-navi22-aco-fails.txt | 2 -- src/amd/ci/radv-vangogh-aco-fails.txt | 6 ------ src/amd/vulkan/radv_image.c | 2 +- 8 files changed, 1 insertion(+), 26 deletions(-) diff --git a/src/amd/ci/radv-navi10-aco-fails.txt b/src/amd/ci/radv-navi10-aco-fails.txt index a96bcc317b7..a7917fd47e8 100644 --- a/src/amd/ci/radv-navi10-aco-fails.txt +++ b/src/amd/ci/radv-navi10-aco-fails.txt @@ -1,10 +1,4 @@ dEQP-VK.rasterization.rasterization_order_attachment_access.depth.samples_1.multi_draw_barriers,Fail -dEQP-VK.rasterization.rasterization_order_attachment_access.format_float.attachments_4_samples_8.multi_draw_barriers,Fail -dEQP-VK.rasterization.rasterization_order_attachment_access.format_float.attachments_8_samples_4.multi_draw_barriers,Fail -dEQP-VK.rasterization.rasterization_order_attachment_access.format_float.attachments_8_samples_8.multi_draw_barriers,Fail -dEQP-VK.rasterization.rasterization_order_attachment_access.format_integer.attachments_4_samples_8.multi_draw_barriers,Fail -dEQP-VK.rasterization.rasterization_order_attachment_access.format_integer.attachments_8_samples_4.multi_draw_barriers,Fail -dEQP-VK.rasterization.rasterization_order_attachment_access.format_integer.attachments_8_samples_8.multi_draw_barriers,Fail dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_1.multi_draw_barriers,Fail dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_2.multi_draw_barriers,Fail dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_4.multi_draw_barriers,Fail diff --git a/src/amd/ci/radv-navi10-aco-flakes.txt b/src/amd/ci/radv-navi10-aco-flakes.txt index 6e89fc0d2e2..3901479d677 100644 --- a/src/amd/ci/radv-navi10-aco-flakes.txt +++ b/src/amd/ci/radv-navi10-aco-flakes.txt @@ -1,3 +1,2 @@ dEQP-VK.dynamic_rendering.basic.* -dEQP-VK.rasterization.rasterization_order_attachment_access.format_float.attachments_8_samples_4.multi_draw_barriers dEQP-VK.texture.filtering.3d.combinations.nearest.linear.mirror_clamp_to_edge.mirror_clamp_to_edge.repeat diff --git a/src/amd/ci/radv-navi14-aco-fails.txt b/src/amd/ci/radv-navi14-aco-fails.txt index 6c59233bfb7..b692f21a974 100644 --- a/src/amd/ci/radv-navi14-aco-fails.txt +++ b/src/amd/ci/radv-navi14-aco-fails.txt @@ -1,11 +1,5 @@ # The following are a guess, based on navi10 dEQP-VK.rasterization.rasterization_order_attachment_access.depth.samples_1.multi_draw_barriers,Fail -dEQP-VK.rasterization.rasterization_order_attachment_access.format_float.attachments_4_samples_8.multi_draw_barriers,Fail -dEQP-VK.rasterization.rasterization_order_attachment_access.format_float.attachments_8_samples_4.multi_draw_barriers,Fail -dEQP-VK.rasterization.rasterization_order_attachment_access.format_float.attachments_8_samples_8.multi_draw_barriers,Fail -dEQP-VK.rasterization.rasterization_order_attachment_access.format_integer.attachments_4_samples_8.multi_draw_barriers,Fail -dEQP-VK.rasterization.rasterization_order_attachment_access.format_integer.attachments_8_samples_4.multi_draw_barriers,Fail -dEQP-VK.rasterization.rasterization_order_attachment_access.format_integer.attachments_8_samples_8.multi_draw_barriers,Fail dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_1.multi_draw_barriers,Fail dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_2.multi_draw_barriers,Fail dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_4.multi_draw_barriers,Fail diff --git a/src/amd/ci/radv-navi21-aco-fails.txt b/src/amd/ci/radv-navi21-aco-fails.txt index b4465c445cc..4e6ae9e93f0 100644 --- a/src/amd/ci/radv-navi21-aco-fails.txt +++ b/src/amd/ci/radv-navi21-aco-fails.txt @@ -1,6 +1,4 @@ dEQP-VK.rasterization.rasterization_order_attachment_access.depth.samples_1.multi_draw_barriers,Fail -dEQP-VK.rasterization.rasterization_order_attachment_access.format_float.attachments_8_samples_8.multi_draw_barriers,Fail -dEQP-VK.rasterization.rasterization_order_attachment_access.format_integer.attachments_8_samples_8.multi_draw_barriers,Fail dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_1.multi_draw_barriers,Fail dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_2.multi_draw_barriers,Fail dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_4.multi_draw_barriers,Fail diff --git a/src/amd/ci/radv-navi21-llvm-fails.txt b/src/amd/ci/radv-navi21-llvm-fails.txt index a2db4b35fb4..b41dc108817 100644 --- a/src/amd/ci/radv-navi21-llvm-fails.txt +++ b/src/amd/ci/radv-navi21-llvm-fails.txt @@ -1,6 +1,4 @@ dEQP-VK.rasterization.rasterization_order_attachment_access.depth.samples_1.multi_draw_barriers,Fail -dEQP-VK.rasterization.rasterization_order_attachment_access.format_float.attachments_8_samples_8.multi_draw_barriers,Fail -dEQP-VK.rasterization.rasterization_order_attachment_access.format_integer.attachments_8_samples_8.multi_draw_barriers,Fail dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_1.multi_draw_barriers,Fail dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_2.multi_draw_barriers,Fail dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_4.multi_draw_barriers,Fail diff --git a/src/amd/ci/radv-navi22-aco-fails.txt b/src/amd/ci/radv-navi22-aco-fails.txt index 386c9823dae..da9a620b064 100644 --- a/src/amd/ci/radv-navi22-aco-fails.txt +++ b/src/amd/ci/radv-navi22-aco-fails.txt @@ -1,7 +1,5 @@ # The following are a guess, based on navi21 dEQP-VK.rasterization.rasterization_order_attachment_access.depth.samples_1.multi_draw_barriers,Fail -dEQP-VK.rasterization.rasterization_order_attachment_access.format_float.attachments_8_samples_8.multi_draw_barriers,Fail -dEQP-VK.rasterization.rasterization_order_attachment_access.format_integer.attachments_8_samples_8.multi_draw_barriers,Fail dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_1.multi_draw_barriers,Fail dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_2.multi_draw_barriers,Fail dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_4.multi_draw_barriers,Fail diff --git a/src/amd/ci/radv-vangogh-aco-fails.txt b/src/amd/ci/radv-vangogh-aco-fails.txt index 0a731d58b16..4e6ae9e93f0 100644 --- a/src/amd/ci/radv-vangogh-aco-fails.txt +++ b/src/amd/ci/radv-vangogh-aco-fails.txt @@ -1,10 +1,4 @@ dEQP-VK.rasterization.rasterization_order_attachment_access.depth.samples_1.multi_draw_barriers,Fail -dEQP-VK.rasterization.rasterization_order_attachment_access.format_float.attachments_4_samples_8.multi_draw_barriers,Fail -dEQP-VK.rasterization.rasterization_order_attachment_access.format_float.attachments_8_samples_4.multi_draw_barriers,Fail -dEQP-VK.rasterization.rasterization_order_attachment_access.format_float.attachments_8_samples_8.multi_draw_barriers,Fail -dEQP-VK.rasterization.rasterization_order_attachment_access.format_integer.attachments_4_samples_8.multi_draw_barriers,Fail -dEQP-VK.rasterization.rasterization_order_attachment_access.format_integer.attachments_8_samples_4.multi_draw_barriers,Fail -dEQP-VK.rasterization.rasterization_order_attachment_access.format_integer.attachments_8_samples_8.multi_draw_barriers,Fail dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_1.multi_draw_barriers,Fail dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_2.multi_draw_barriers,Fail dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_4.multi_draw_barriers,Fail diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c index 107572019e2..fa3ff0d7b59 100644 --- a/src/amd/vulkan/radv_image.c +++ b/src/amd/vulkan/radv_image.c @@ -2308,7 +2308,7 @@ radv_layout_dcc_compressed(const struct radv_device *device, const struct radv_i (queue_mask & (1u << RADV_QUEUE_COMPUTE)) && !radv_image_use_dcc_image_stores(device, image)) return false; - if (layout == VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT) { + if (in_render_loop || layout == VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT) { /* Do not compress DCC with feedback loops because we can't read&write it without introducing * corruption. */