From 4717022cb0f0831cee921d1b51039280ca51449c Mon Sep 17 00:00:00 2001 From: Lucas Stach Date: Fri, 11 Apr 2025 21:59:48 +0200 Subject: [PATCH] etnaviv: drop ts_offset from etna_surface TS is only allocated for single layer surfaces, so there is no need to cache a ts_offset taking into account the layer offset in etna_surface. Signed-off-by: Lucas Stach Reviewed-by: Christian Gmeiner Part-of: --- src/gallium/drivers/etnaviv/etnaviv_blt.c | 4 ++-- src/gallium/drivers/etnaviv/etnaviv_surface.c | 6 ++---- src/gallium/drivers/etnaviv/etnaviv_surface.h | 1 - 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/gallium/drivers/etnaviv/etnaviv_blt.c b/src/gallium/drivers/etnaviv/etnaviv_blt.c index a0f9f0f3298..b66ed0e107b 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_blt.c +++ b/src/gallium/drivers/etnaviv/etnaviv_blt.c @@ -245,7 +245,7 @@ etna_blit_clear_color_blt(struct pipe_context *pctx, unsigned idx, if (surf->level->ts_size) { clr.dest.use_ts = 1; clr.dest.ts_addr.bo = res->ts_bo; - clr.dest.ts_addr.offset = surf->ts_offset; + 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; @@ -340,7 +340,7 @@ etna_blit_clear_zs_blt(struct pipe_context *pctx, struct pipe_surface *dst, if (surf->level->ts_size) { clr.dest.use_ts = 1; clr.dest.ts_addr.bo = res->ts_bo; - clr.dest.ts_addr.offset = surf->ts_offset; + 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; diff --git a/src/gallium/drivers/etnaviv/etnaviv_surface.c b/src/gallium/drivers/etnaviv/etnaviv_surface.c index 8c69df7fa79..321407f767b 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_surface.c +++ b/src/gallium/drivers/etnaviv/etnaviv_surface.c @@ -146,10 +146,8 @@ etna_create_surface(struct pipe_context *pctx, struct pipe_resource *prsc, if (surf->level->ts_size) { assert(layer == 0); - surf->ts_offset = surf->level->ts_offset; - surf->ts_reloc.bo = rsc->ts_bo; - surf->ts_reloc.offset = surf->ts_offset; + surf->ts_reloc.offset = surf->level->ts_offset; surf->ts_reloc.flags = 0; if (!screen->specs.use_blt) { @@ -161,7 +159,7 @@ etna_create_surface(struct pipe_context *pctx, struct pipe_resource *prsc, .source_format = RS_FORMAT_A8R8G8B8, .dest_format = RS_FORMAT_A8R8G8B8, .dest = ts_bo, - .dest_offset = surf->ts_offset, + .dest_offset = surf->level->ts_offset, .dest_stride = 0x40, .dest_tiling = ETNA_LAYOUT_TILED, .dither = {0xffffffff, 0xffffffff}, diff --git a/src/gallium/drivers/etnaviv/etnaviv_surface.h b/src/gallium/drivers/etnaviv/etnaviv_surface.h index fb91c417d29..4f6b1d91ac2 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_surface.h +++ b/src/gallium/drivers/etnaviv/etnaviv_surface.h @@ -42,7 +42,6 @@ struct etna_surface { struct etna_reloc reloc[ETNA_MAX_PIXELPIPES]; struct etna_reloc ts_reloc; uint32_t offset; /* pre-calculated level + layer offset */ - uint32_t ts_offset; /* pre-calculated level + layer TS offset */ /* keep pointer to original resource (for when a render compatible resource is used) */ struct pipe_resource *prsc; };