etnaviv: trigger TS derivation after slow clear

Now that we switch dynamically between fast (TS) and slow (regular)
clears on TS enabled surfaces, we must trigger reevaluation of the
current TS state also after a slow clear, as otherwise the PE might
continue to use the invalidated TS state.

Fixes: df63f188e8 ("etnaviv: fix separate depth/stencil clears")
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/28696>
This commit is contained in:
Lucas Stach
2024-04-11 16:52:50 +02:00
committed by Marge Bot
parent f2f486a7eb
commit 06ce243a73
+2 -1
View File
@@ -409,7 +409,7 @@ etna_blit_clear_zs_rs(struct pipe_context *pctx, struct pipe_surface *dst,
}
etna_resource_level_ts_mark_valid(surf->level);
ctx->dirty |= ETNA_DIRTY_TS | ETNA_DIRTY_DERIVE_TS;
ctx->dirty |= ETNA_DIRTY_TS;
} else {
/* If the level has valid TS state we need to flush it, as the regular
* clear will not update the state and we must therefore invalidate it. */
@@ -431,6 +431,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);
etna_resource_level_mark_changed(surf->level);
ctx->dirty |= ETNA_DIRTY_DERIVE_TS;
}
static void