From 4be46c7d9dbeaff9dede941ee6518f68ad0c5f75 Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Mon, 6 Jun 2016 01:42:46 +0200 Subject: radeonsi: don't allocate DCC for the temporary MSAA resolve surface MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Allocating it has no effect, but it adds overhead (useless DCC clear). Reviewed-by: Nicolai Hähnle Reviewed-by: Bas Nieuwenhuizen --- src/gallium/drivers/radeon/r600_pipe_common.h | 1 + src/gallium/drivers/radeon/r600_texture.c | 3 ++- src/gallium/drivers/radeonsi/si_blit.c | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) (limited to 'src/gallium/drivers') diff --git a/src/gallium/drivers/radeon/r600_pipe_common.h b/src/gallium/drivers/radeon/r600_pipe_common.h index a9175492bfa..bb090d65d16 100644 --- a/src/gallium/drivers/radeon/r600_pipe_common.h +++ b/src/gallium/drivers/radeon/r600_pipe_common.h @@ -48,6 +48,7 @@ #define R600_RESOURCE_FLAG_TRANSFER (PIPE_RESOURCE_FLAG_DRV_PRIV << 0) #define R600_RESOURCE_FLAG_FLUSHED_DEPTH (PIPE_RESOURCE_FLAG_DRV_PRIV << 1) #define R600_RESOURCE_FLAG_FORCE_TILING (PIPE_RESOURCE_FLAG_DRV_PRIV << 2) +#define R600_RESOURCE_FLAG_DISABLE_DCC (PIPE_RESOURCE_FLAG_DRV_PRIV << 3) #define R600_CONTEXT_STREAMOUT_FLUSH (1u << 0) /* Pipeline & streamout query controls. */ diff --git a/src/gallium/drivers/radeon/r600_texture.c b/src/gallium/drivers/radeon/r600_texture.c index 9daad65a04c..b0f375e4b1f 100644 --- a/src/gallium/drivers/radeon/r600_texture.c +++ b/src/gallium/drivers/radeon/r600_texture.c @@ -263,7 +263,8 @@ static int r600_init_surface(struct r600_common_screen *rscreen, } if (rscreen->chip_class >= VI && - ptex->format == PIPE_FORMAT_R9G9B9E5_FLOAT) + (ptex->flags & R600_RESOURCE_FLAG_DISABLE_DCC || + ptex->format == PIPE_FORMAT_R9G9B9E5_FLOAT)) surface->flags |= RADEON_SURF_DISABLE_DCC; if (ptex->bind & PIPE_BIND_SCANOUT) { diff --git a/src/gallium/drivers/radeonsi/si_blit.c b/src/gallium/drivers/radeonsi/si_blit.c index 2059d9d018c..dee3c2f32d3 100644 --- a/src/gallium/drivers/radeonsi/si_blit.c +++ b/src/gallium/drivers/radeonsi/si_blit.c @@ -928,7 +928,8 @@ static bool do_hardware_msaa_resolve(struct pipe_context *ctx, templ.depth0 = 1; templ.array_size = 1; templ.usage = PIPE_USAGE_DEFAULT; - templ.flags = R600_RESOURCE_FLAG_FORCE_TILING; + templ.flags = R600_RESOURCE_FLAG_FORCE_TILING | + R600_RESOURCE_FLAG_DISABLE_DCC; tmp = ctx->screen->resource_create(ctx->screen, &templ); if (!tmp) -- cgit v1.2.3