Module: Mesa
Branch: main
Commit: f9af3b368a761cd0ffac45e7740f7d3d331b95b4
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f9af3b368a761cd0ffac45e7740f7d3d331b95b4

Author: Lucas Stach <[email protected]>
Date:   Fri Nov 18 17:08:41 2022 +0100

etnaviv: add helper to transfer resource level age to another

Add a small helper to transfer the age (seqno) from one resource level
to another.

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_clear_blit.c | 4 ++--
 src/gallium/drivers/etnaviv/etnaviv_resource.h   | 7 +++++++
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c 
b/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c
index 2277cd2009a..9393a1caf00 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c
+++ b/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c
@@ -245,7 +245,7 @@ etna_copy_resource(struct pipe_context *pctx, struct 
pipe_resource *dst,
       if (src == dst)
          etna_resource_level_mark_flushed(&dst_priv->levels[level]);
       else
-         dst_priv->levels[level].seqno = src_priv->levels[level].seqno;
+         etna_resource_level_copy_seqno(&dst_priv->levels[level], 
&src_priv->levels[level]);
    }
 }
 
@@ -282,7 +282,7 @@ etna_copy_resource_box(struct pipe_context *pctx, struct 
pipe_resource *dst,
    if (src == dst)
       etna_resource_level_mark_flushed(&dst_priv->levels[level]);
    else
-      dst_priv->levels[level].seqno = src_priv->levels[level].seqno;
+      etna_resource_level_copy_seqno(&dst_priv->levels[level], 
&src_priv->levels[level]);
 }
 
 void
diff --git a/src/gallium/drivers/etnaviv/etnaviv_resource.h 
b/src/gallium/drivers/etnaviv/etnaviv_resource.h
index 7c1a5deed90..e972cb06adc 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_resource.h
+++ b/src/gallium/drivers/etnaviv/etnaviv_resource.h
@@ -113,6 +113,13 @@ etna_resource_level_mark_changed(struct 
etna_resource_level *lvl)
    lvl->seqno++;
 }
 
+static inline void
+etna_resource_level_copy_seqno(struct etna_resource_level *dst,
+                               struct etna_resource_level *src)
+{
+   dst->seqno = src->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. */

Reply via email to