From bca5ef70a436380d1b6cb0f5bd84f1872cabc5e5 Mon Sep 17 00:00:00 2001 From: Lucas Stach Date: Wed, 8 Jan 2025 14:21:53 +0100 Subject: [PATCH] etnaviv: split dummy RT backing store from reloc The dummy BO used as backing store for the dummy render target can be reused for other usages where we don't care about the actual content of the buffer. Split it out from the dummy RT reloc to make this more clear. Signed-off-by: Lucas Stach Reviewed-by: Christian Gmeiner Part-of: --- src/gallium/drivers/etnaviv/etnaviv_screen.c | 10 +++++----- src/gallium/drivers/etnaviv/etnaviv_screen.h | 3 +++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/gallium/drivers/etnaviv/etnaviv_screen.c b/src/gallium/drivers/etnaviv/etnaviv_screen.c index a54c0a74303..2261d91a935 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_screen.c +++ b/src/gallium/drivers/etnaviv/etnaviv_screen.c @@ -91,8 +91,8 @@ etna_screen_destroy(struct pipe_screen *pscreen) { struct etna_screen *screen = etna_screen(pscreen); - if (screen->dummy_desc_reloc.bo) - etna_bo_del(screen->dummy_desc_reloc.bo); + if (screen->dummy_bo) + etna_bo_del(screen->dummy_bo); if (screen->dummy_rt_reloc.bo) etna_bo_del(screen->dummy_rt_reloc.bo); @@ -1166,11 +1166,11 @@ etna_screen_create(struct etna_device *dev, struct etna_gpu *gpu, /* create dummy RT buffer, used when rendering with no color buffer */ - screen->dummy_rt_reloc.bo = etna_bo_new(screen->dev, 64 * 64 * 4, - DRM_ETNA_GEM_CACHE_WC); - if (!screen->dummy_rt_reloc.bo) + screen->dummy_bo = etna_bo_new(screen->dev, 64 * 64 * 4, DRM_ETNA_GEM_CACHE_WC); + if (!screen->dummy_bo) goto fail; + screen->dummy_rt_reloc.bo = screen->dummy_bo; screen->dummy_rt_reloc.offset = 0; screen->dummy_rt_reloc.flags = ETNA_RELOC_READ | ETNA_RELOC_WRITE; diff --git a/src/gallium/drivers/etnaviv/etnaviv_screen.h b/src/gallium/drivers/etnaviv/etnaviv_screen.h index c2fddd968b4..18c6233ab9a 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_screen.h +++ b/src/gallium/drivers/etnaviv/etnaviv_screen.h @@ -67,6 +67,9 @@ struct etna_screen { struct etna_compiler *compiler; struct util_queue shader_compiler_queue; + /* dummy BO available to user that don't care about the content */ + struct etna_bo *dummy_bo; + /* dummy render target for GPUs that can't fully disable the color pipe */ struct etna_reloc dummy_rt_reloc;