From 3ba753d9f58aee0bd1e72e835953560fb1fbbe46 Mon Sep 17 00:00:00 2001 From: Lucas Stach Date: Tue, 27 Oct 2020 15:34:13 +0100 Subject: [PATCH] etnaviv: blt: properly program surface TS offset for clears We clear the wrong TS region for != level 0 surfaces or TS buffers with a internal offset. Cc: Signed-off-by: Lucas Stach Reviewed-by: Christian Gmeiner Part-of: --- src/gallium/drivers/etnaviv/etnaviv_blt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/etnaviv/etnaviv_blt.c b/src/gallium/drivers/etnaviv/etnaviv_blt.c index 63fcb8c649b..ec762024573 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_blt.c +++ b/src/gallium/drivers/etnaviv/etnaviv_blt.c @@ -229,7 +229,7 @@ etna_blit_clear_color_blt(struct pipe_context *pctx, struct pipe_surface *dst, if (surf->surf.ts_size) { clr.dest.use_ts = 1; clr.dest.ts_addr.bo = res->ts_bo; - clr.dest.ts_addr.offset = 0; + clr.dest.ts_addr.offset = surf->level->ts_offset; clr.dest.ts_addr.flags = ETNA_RELOC_WRITE; clr.dest.ts_clear_value[0] = new_clear_value; clr.dest.ts_clear_value[1] = new_clear_value >> 32; @@ -308,7 +308,7 @@ etna_blit_clear_zs_blt(struct pipe_context *pctx, struct pipe_surface *dst, if (surf->surf.ts_size) { clr.dest.use_ts = 1; clr.dest.ts_addr.bo = res->ts_bo; - clr.dest.ts_addr.offset = 0; + clr.dest.ts_addr.offset = surf->level->ts_offset; clr.dest.ts_addr.flags = ETNA_RELOC_WRITE; clr.dest.ts_clear_value[0] = surf->level->clear_value; clr.dest.ts_clear_value[1] = surf->level->clear_value;