freedreno: Add PIPE_CAP_HAS_CONST_BW support
authorRob Clark <robdclark@chromium.org>
Thu, 28 Sep 2023 20:22:55 +0000 (13:22 -0700)
committerMarge Bot <emma+marge@anholt.net>
Sat, 14 Oct 2023 17:28:28 +0000 (17:28 +0000)
Allow for tiled layouts rather than having mesa/st force us back to
linear.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25464>

src/gallium/drivers/freedreno/freedreno_resource.c
src/gallium/drivers/freedreno/freedreno_screen.c

index 63f9705c0a5501a9eb2bb56fd801cb6fbf063cac..a57807071f725d9d4adf49788082ffc51e833d10 100644 (file)
@@ -1283,6 +1283,11 @@ get_best_layout(struct fd_screen *screen,
    if (tmpl->bind & PIPE_BIND_USE_FRONT_RENDERING)
       ubwc_ok = false;
 
+   /* Disallow UBWC when asked not to use data dependent bandwidth compression:
+    */
+   if (tmpl->bind & PIPE_BIND_CONST_BW)
+      ubwc_ok = false;
+
    if (ubwc_ok && !can_implicit &&
        !drm_find_modifier(DRM_FORMAT_MOD_QCOM_COMPRESSED, modifiers, count)) {
       perf_debug("%" PRSC_FMT
index 8ec300f855327c8a39af1f2d4463fe210a7d879f..e101a3f7c5dc0ad7d3826b28168ed72981c5945e 100644 (file)
@@ -249,6 +249,7 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
    case PIPE_CAP_TEXTURE_MIRROR_CLAMP_TO_EDGE:
    case PIPE_CAP_GL_SPIRV:
    case PIPE_CAP_FBFETCH_COHERENT:
+   case PIPE_CAP_HAS_CONST_BW:
       return 1;
 
    case PIPE_CAP_COPY_BETWEEN_COMPRESSED_AND_PLAIN_FORMATS: