Module: Mesa Branch: main Commit: 2d2d0e803dbc522bb66d9c9a9f407aedc9d95abf URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2d2d0e803dbc522bb66d9c9a9f407aedc9d95abf
Author: Lucas Stach <[email protected]> Date: Fri Nov 18 17:04:46 2022 +0100 etnaviv: add helper to mark resource level as changed Add a small helper to mark a resource level as changed so the seqno handling is hidden. Signed-off-by: Lucas Stach <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19964> --- src/gallium/drivers/etnaviv/etnaviv_blt.c | 6 +++--- src/gallium/drivers/etnaviv/etnaviv_context.c | 4 ++-- src/gallium/drivers/etnaviv/etnaviv_resource.c | 2 +- src/gallium/drivers/etnaviv/etnaviv_resource.h | 6 ++++++ src/gallium/drivers/etnaviv/etnaviv_rs.c | 6 +++--- src/gallium/drivers/etnaviv/etnaviv_transfer.c | 2 +- 6 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/gallium/drivers/etnaviv/etnaviv_blt.c b/src/gallium/drivers/etnaviv/etnaviv_blt.c index 2814e76d1ae..c76980ad0d5 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_blt.c +++ b/src/gallium/drivers/etnaviv/etnaviv_blt.c @@ -270,7 +270,7 @@ etna_blit_clear_color_blt(struct pipe_context *pctx, struct pipe_surface *dst, surf->level->clear_value = new_clear_value; resource_written(ctx, surf->base.texture); - surf->level->seqno++; + etna_resource_level_mark_changed(surf->level); } static void @@ -351,7 +351,7 @@ etna_blit_clear_zs_blt(struct pipe_context *pctx, struct pipe_surface *dst, } resource_written(ctx, surf->base.texture); - surf->level->seqno++; + etna_resource_level_mark_changed(surf->level); } static void @@ -578,7 +578,7 @@ etna_try_blt_blit(struct pipe_context *pctx, resource_read(ctx, &src->base); resource_written(ctx, &dst->base); - dst_lev->seqno++; + etna_resource_level_mark_changed(dst_lev); dst_lev->ts_valid = false; return true; diff --git a/src/gallium/drivers/etnaviv/etnaviv_context.c b/src/gallium/drivers/etnaviv/etnaviv_context.c index feb6d7c0e9e..baf9c17b699 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_context.c +++ b/src/gallium/drivers/etnaviv/etnaviv_context.c @@ -419,9 +419,9 @@ etna_draw_vbo(struct pipe_context *pctx, const struct pipe_draw_info *info, pctx->flush(pctx, NULL, 0); if (ctx->framebuffer_s.cbufs[0]) - etna_surface(ctx->framebuffer_s.cbufs[0])->level->seqno++; + etna_resource_level_mark_changed(etna_surface(ctx->framebuffer_s.cbufs[0])->level); if (ctx->framebuffer_s.zsbuf) - etna_surface(ctx->framebuffer_s.zsbuf)->level->seqno++; + etna_resource_level_mark_changed(etna_surface(ctx->framebuffer_s.zsbuf)->level); if (info->index_size && indexbuf != info->index.resource) pipe_resource_reference(&indexbuf, NULL); } diff --git a/src/gallium/drivers/etnaviv/etnaviv_resource.c b/src/gallium/drivers/etnaviv/etnaviv_resource.c index 8e1d5fbcae6..5ef3839574e 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_resource.c +++ b/src/gallium/drivers/etnaviv/etnaviv_resource.c @@ -570,7 +570,7 @@ etna_resource_changed(struct pipe_screen *pscreen, struct pipe_resource *prsc) struct etna_resource *rsc = etna_resource(prsc); for (int level = 0; level <= prsc->last_level; level++) - rsc->levels[level].seqno++; + etna_resource_level_mark_changed(&rsc->levels[level]); } static void diff --git a/src/gallium/drivers/etnaviv/etnaviv_resource.h b/src/gallium/drivers/etnaviv/etnaviv_resource.h index 2793f148755..7c1a5deed90 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_resource.h +++ b/src/gallium/drivers/etnaviv/etnaviv_resource.h @@ -107,6 +107,12 @@ etna_resource_level_mark_flushed(struct etna_resource_level *lvl) lvl->flush_seqno = lvl->seqno; } +static inline void +etna_resource_level_mark_changed(struct etna_resource_level *lvl) +{ + lvl->seqno++; +} + /* status of queued up but not flushed reads and write operations. * In _transfer_map() we need to know if queued up rendering needs * to be flushed to preserve the order of cpu and gpu access. */ diff --git a/src/gallium/drivers/etnaviv/etnaviv_rs.c b/src/gallium/drivers/etnaviv/etnaviv_rs.c index f607550dee9..80c90991c0e 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_rs.c +++ b/src/gallium/drivers/etnaviv/etnaviv_rs.c @@ -359,7 +359,7 @@ etna_blit_clear_color_rs(struct pipe_context *pctx, struct pipe_surface *dst, surf->level->clear_value = new_clear_value; resource_written(ctx, surf->base.texture); - surf->level->seqno++; + etna_resource_level_mark_changed(surf->level); } static void @@ -422,7 +422,7 @@ etna_blit_clear_zs_rs(struct pipe_context *pctx, struct pipe_surface *dst, surf->level->clear_value = new_clear_value; resource_written(ctx, surf->base.texture); - surf->level->seqno++; + etna_resource_level_mark_changed(surf->level); } static void @@ -806,7 +806,7 @@ etna_try_rs_blit(struct pipe_context *pctx, etna_submit_rs_state(ctx, ©_to_screen); resource_read(ctx, &src->base); resource_written(ctx, &dst->base); - dst_lev->seqno++; + etna_resource_level_mark_changed(dst_lev); dst_lev->ts_valid = false; ctx->dirty |= ETNA_DIRTY_DERIVE_TS; diff --git a/src/gallium/drivers/etnaviv/etnaviv_transfer.c b/src/gallium/drivers/etnaviv/etnaviv_transfer.c index b3be2452d39..0a9a704c361 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_transfer.c +++ b/src/gallium/drivers/etnaviv/etnaviv_transfer.c @@ -165,7 +165,7 @@ etna_transfer_unmap(struct pipe_context *pctx, struct pipe_transfer *ptrans) } res_level->ts_valid = false; - res_level->seqno++; + etna_resource_level_mark_changed(res_level); if (rsc->base.bind & PIPE_BIND_SAMPLER_VIEW) { ctx->dirty |= ETNA_DIRTY_TEXTURE_CACHES;
