From: Marek Olšák <marek.ol...@amd.com>

---
 src/amd/common/ac_gpu_info.c                      | 8 ++++++++
 src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c | 4 ++++
 2 files changed, 12 insertions(+)

diff --git a/src/amd/common/ac_gpu_info.c b/src/amd/common/ac_gpu_info.c
index d890172227c..c53335bbb7d 100644
--- a/src/amd/common/ac_gpu_info.c
+++ b/src/amd/common/ac_gpu_info.c
@@ -451,20 +451,28 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev,
        ib_align = MAX2(ib_align, dma.ib_start_alignment);
        ib_align = MAX2(ib_align, uvd.ib_start_alignment);
        ib_align = MAX2(ib_align, uvd_enc.ib_start_alignment);
        ib_align = MAX2(ib_align, vce.ib_start_alignment);
        ib_align = MAX2(ib_align, vcn_dec.ib_start_alignment);
        ib_align = MAX2(ib_align, vcn_enc.ib_start_alignment);
        ib_align = MAX2(ib_align, vcn_jpeg.ib_start_alignment);
        assert(ib_align);
        info->ib_start_alignment = ib_align;
 
+       if (info->drm_minor >= 31 &&
+           (info->family == CHIP_RAVEN ||
+            info->family == CHIP_RAVEN2)) {
+               if (info->num_render_backends == 1)
+                       info->use_display_dcc_unaligned = true;
+               else
+                       info->use_display_dcc_with_retile_blit = true;
+       }
        return true;
 }
 
 void ac_compute_driver_uuid(char *uuid, size_t size)
 {
        char amd_uuid[] = "AMD-MESA-DRV";
 
        assert(size >= sizeof(amd_uuid));
 
        memset(uuid, 0, size);
diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c 
b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c
index d3a57f6b4f3..35a585a5693 100644
--- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c
+++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c
@@ -38,20 +38,24 @@
 #include "radv_amdgpu_cs.h"
 #include "radv_amdgpu_bo.h"
 #include "radv_amdgpu_surface.h"
 
 static bool
 do_winsys_init(struct radv_amdgpu_winsys *ws, int fd)
 {
        if (!ac_query_gpu_info(fd, ws->dev, &ws->info, &ws->amdinfo))
                return false;
 
+       /* temporary */
+       ws->info.use_display_dcc_unaligned = false;
+       ws->info.use_display_dcc_with_retile_blit = false;
+
        ws->addrlib = amdgpu_addr_create(&ws->info, &ws->amdinfo, 
&ws->info.max_alignment);
        if (!ws->addrlib) {
                fprintf(stderr, "amdgpu: Cannot create addrlib.\n");
                return false;
        }
 
        ws->info.num_sdma_rings = MIN2(ws->info.num_sdma_rings, 
MAX_RINGS_PER_TYPE);
        ws->info.num_compute_rings = MIN2(ws->info.num_compute_rings, 
MAX_RINGS_PER_TYPE);
 
        ws->use_ib_bos = ws->info.chip_class >= CIK;
-- 
2.17.1

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to