From c9e73624022a482ffe0a41d0cae007e04cc61dc4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Mon, 4 May 2020 07:53:38 -0400 Subject: [PATCH] ac/surface: override all offsets including metadata offsets Reviewed-by: Bas Nieuwenhuizen Reviewed-by: Samuel Pitoiset Part-of: --- src/amd/common/ac_surface.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/amd/common/ac_surface.c b/src/amd/common/ac_surface.c index 577b2d487eb..86519f216e1 100644 --- a/src/amd/common/ac_surface.c +++ b/src/amd/common/ac_surface.c @@ -2204,6 +2204,8 @@ void ac_surface_override_offset_stride(const struct radeon_info *info, (uint64_t)pitch * surf->u.gfx9.surf_height * surf->bpe; } surf->u.gfx9.surf_offset = offset; + if (surf->u.gfx9.stencil_offset) + surf->u.gfx9.stencil_offset += offset; } else { surf->u.legacy.level[0].nblk_x = pitch; surf->u.legacy.level[0].slice_size_dw = @@ -2214,4 +2216,17 @@ void ac_surface_override_offset_stride(const struct radeon_info *info, surf->u.legacy.level[i].offset += offset; } } + + if (surf->htile_offset) + surf->htile_offset += offset; + if (surf->fmask_offset) + surf->fmask_offset += offset; + if (surf->cmask_offset) + surf->cmask_offset += offset; + if (surf->dcc_offset) + surf->dcc_offset += offset; + if (surf->display_dcc_offset) + surf->display_dcc_offset += offset; + if (surf->dcc_retile_map_offset) + surf->dcc_retile_map_offset += offset; } -- 2.30.2