Module: Mesa Branch: main Commit: d97427f41c1603db2f657b5d9c3f91a97f74b1c0 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d97427f41c1603db2f657b5d9c3f91a97f74b1c0
Author: Rob Clark <[email protected]> Date: Tue Oct 3 14:33:32 2023 -0700 radeonsi: Add PIPE_CAP_HAS_CONST_BW support 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/radeonsi/si_get.c | 1 + src/gallium/drivers/radeonsi/si_texture.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/src/gallium/drivers/radeonsi/si_get.c b/src/gallium/drivers/radeonsi/si_get.c index 8de9124c0c1..3d0215fe585 100644 --- a/src/gallium/drivers/radeonsi/si_get.c +++ b/src/gallium/drivers/radeonsi/si_get.c @@ -161,6 +161,7 @@ static int si_get_param(struct pipe_screen *pscreen, enum pipe_cap param) case PIPE_CAP_TEXTURE_MULTISAMPLE: case PIPE_CAP_ALLOW_GLTHREAD_BUFFER_SUBDATA_OPT: /* TODO: remove if it's slow */ case PIPE_CAP_NULL_TEXTURES: + case PIPE_CAP_HAS_CONST_BW: return 1; case PIPE_CAP_TEXTURE_TRANSFER_MODES: diff --git a/src/gallium/drivers/radeonsi/si_texture.c b/src/gallium/drivers/radeonsi/si_texture.c index 47a1ffdfb3e..57bf0f6a5ed 100644 --- a/src/gallium/drivers/radeonsi/si_texture.c +++ b/src/gallium/drivers/radeonsi/si_texture.c @@ -261,6 +261,10 @@ static int si_init_surface(struct si_screen *sscreen, struct radeon_surf *surfac ptex->format == PIPE_FORMAT_R9G9B9E5_FLOAT) flags |= RADEON_SURF_DISABLE_DCC; + /* If constant (non-data-dependent) format is requested, disable DCC: */ + if (ptex->bind & PIPE_BIND_CONST_BW) + flags |= RADEON_SURF_DISABLE_DCC; + switch (sscreen->info.gfx_level) { case GFX8: /* Stoney: 128bpp MSAA textures randomly fail piglit tests with DCC. */
