Add a small helper to mark a resource level as flushed so the
seqno handling is hidden.
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/19964>
}
if (src == dst)
- dst_priv->levels[level].flush_seqno = src_priv->levels[level].seqno;
+ etna_resource_level_mark_flushed(&dst_priv->levels[level]);
else
dst_priv->levels[level].seqno = src_priv->levels[level].seqno;
}
}
if (src == dst)
- dst_priv->levels[level].flush_seqno = src_priv->levels[level].seqno;
+ etna_resource_level_mark_flushed(&dst_priv->levels[level]);
else
dst_priv->levels[level].seqno = src_priv->levels[level].seqno;
}
return lvl->ts_valid && ((int)(lvl->seqno - lvl->flush_seqno) > 0);
}
+static inline void
+etna_resource_level_mark_flushed(struct etna_resource_level *lvl)
+{
+ lvl->flush_seqno = 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. */
if (ptrans->usage & PIPE_MAP_WRITE) {
if (etna_resource_level_needs_flush(res_level)) {
if (ptrans->usage & PIPE_MAP_DISCARD_WHOLE_RESOURCE)
- res_level->flush_seqno = res_level->seqno;
+ etna_resource_level_mark_flushed(res_level);
else
etna_copy_resource(pctx, &rsc->base, &rsc->base, ptrans->level, ptrans->level);
}