From 30a1dd0ee6ca6c89fe7c89996e399298ee1eef5c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Tue, 27 Aug 2019 20:32:46 -0400 Subject: [PATCH] radeonsi: handle NO_DCC early Acked-by: Pierre-Eric Pelloux-Prayer --- src/gallium/drivers/radeonsi/si_texture.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_texture.c b/src/gallium/drivers/radeonsi/si_texture.c index 1f7cab6b2f3..baa34d0b408 100644 --- a/src/gallium/drivers/radeonsi/si_texture.c +++ b/src/gallium/drivers/radeonsi/si_texture.c @@ -298,6 +298,13 @@ static int si_init_surface(struct si_screen *sscreen, ptex->nr_storage_samples >= 2) flags |= RADEON_SURF_DISABLE_DCC; + /* Shared textures must always set up DCC. + * If it's not present, it will be disabled by + * si_get_opaque_metadata later. + */ + if (!is_imported && (sscreen->debug_flags & DBG(NO_DCC))) + flags |= RADEON_SURF_DISABLE_DCC; + if (ptex->bind & PIPE_BIND_SCANOUT || is_scanout) { /* This should catch bugs in gallium users setting incorrect flags. */ assert(ptex->nr_samples <= 1 && @@ -1384,12 +1391,7 @@ si_texture_create_object(struct pipe_screen *screen, tex->cmask_buffer = &tex->buffer; } - /* Shared textures must always set up DCC here. - * If it's not present, it will be disabled by - * si_get_opaque_metadata later. - */ if (tex->surface.dcc_size && - (buf || !(sscreen->debug_flags & DBG(NO_DCC))) && (sscreen->info.use_display_dcc_unaligned || sscreen->info.use_display_dcc_with_retile_blit || !(tex->surface.flags & RADEON_SURF_SCANOUT))) { -- 2.30.2