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: