From a318f3c8b75919c7afa49b55cbb634464e7c57d4 Mon Sep 17 00:00:00 2001 From: Lucas Stach Date: Thu, 17 Nov 2022 15:50:59 +0100 Subject: [PATCH] etnaviv: blt: use correct TS offset in clear operations Using the ts_offset from the level means we are always clearing the TS region of layer 0 of the level. Use the correct offset which takes into account the layer offset. Cc: mesa-stable Signed-off-by: Lucas Stach Reviewed-by: Christian Gmeiner Part-of: (cherry picked from commit d9e2a7d6adace0a794c7147f0a5bab43277e5fa6) --- .pick_status.json | 2 +- src/gallium/drivers/etnaviv/etnaviv_blt.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index a9dd479b1fb..3cc3219e35d 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1120,7 +1120,7 @@ "description": "etnaviv: blt: use correct TS offset in clear operations", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null }, diff --git a/src/gallium/drivers/etnaviv/etnaviv_blt.c b/src/gallium/drivers/etnaviv/etnaviv_blt.c index 8ec41e1d915..bbb8e28e06d 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_blt.c +++ b/src/gallium/drivers/etnaviv/etnaviv_blt.c @@ -235,7 +235,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 = surf->level->ts_offset; + clr.dest.ts_addr.offset = surf->surf.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; @@ -318,7 +318,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 = surf->level->ts_offset; + clr.dest.ts_addr.offset = surf->surf.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;