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 <l.stach@pengutronix.de> Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32947>
This commit is contained in:
@@ -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;
|
||||
|
||||
|
@@ -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;
|
||||
|
||||
|
Reference in New Issue
Block a user