Module: Mesa Branch: main Commit: c1968e54d981e22026f7270664a487ab89d39a2f URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c1968e54d981e22026f7270664a487ab89d39a2f
Author: Rob Clark <[email protected]> Date: Thu Sep 28 13:22:55 2023 -0700 freedreno: Add PIPE_CAP_HAS_CONST_BW support Allow for tiled layouts rather than having mesa/st force us back to linear. Signed-off-by: Rob Clark <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25464> --- 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:
