Module: Mesa
Branch: main
Commit: 1764259ba8d0d2ba6d60f5c90b2b6da94ec523f8
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=1764259ba8d0d2ba6d60f5c90b2b6da94ec523f8

Author: Timur Kristóf <[email protected]>
Date:   Wed Oct  4 21:35:41 2023 +0200

radv: Disable DCC on exclusive images with transfer queue when SDMA doesn't 
support it.

Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Samuel Pitoiset <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25834>

---

 src/amd/vulkan/radv_image.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c
index 613583353b0..07d6dea71af 100644
--- a/src/amd/vulkan/radv_image.c
+++ b/src/amd/vulkan/radv_image.c
@@ -2411,6 +2411,12 @@ 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;
 
+   /* Don't compress exclusive images used on transfer queues when SDMA 
doesn't support DCC.
+    * Note that DCC is already disabled on concurrent images when not 
supported.
+    */
+   if (queue_mask == BITFIELD_BIT(RADV_QUEUE_TRANSFER) && 
!device->physical_device->rad_info.sdma_supports_compression)
+      return false;
+
    if (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.

Reply via email to