From c1968e54d981e22026f7270664a487ab89d39a2f Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Thu, 28 Sep 2023 13:22:55 -0700 Subject: [PATCH] freedreno: Add PIPE_CAP_HAS_CONST_BW support MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Allow for tiled layouts rather than having mesa/st force us back to linear. Signed-off-by: Rob Clark Reviewed-by: Marek Olšák Part-of: --- src/gallium/drivers/freedreno/freedreno_resource.c | 5 +++++ src/gallium/drivers/freedreno/freedreno_screen.c | 1 + 2 files changed, 6 insertions(+) diff --git a/src/gallium/drivers/freedreno/freedreno_resource.c b/src/gallium/drivers/freedreno/freedreno_resource.c index 63f9705c0a5..a57807071f7 100644 --- a/src/gallium/drivers/freedreno/freedreno_resource.c +++ b/src/gallium/drivers/freedreno/freedreno_resource.c @@ -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 diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c b/src/gallium/drivers/freedreno/freedreno_screen.c index 8ec300f8553..e101a3f7c5d 100644 --- a/src/gallium/drivers/freedreno/freedreno_screen.c +++ b/src/gallium/drivers/freedreno/freedreno_screen.c @@ -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: -- 2.34.1