Mesa (master): etnaviv: don' t read back resource if transfer discards contents

Lucas Stach lynxeye at kemper.freedesktop.org
Thu Jun 8 16:30:14 UTC 2017


Module: Mesa
Branch: master
Commit: 6e628ee3f3cd250d58f1b49fc0b53db58cd8eeea
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6e628ee3f3cd250d58f1b49fc0b53db58cd8eeea

Author: Lucas Stach <l.stach at pengutronix.de>
Date:   Thu May 18 16:30:02 2017 +0200

etnaviv: don't read back resource if transfer discards contents

Reduces bandwidth usage of transfers which discard the buffer contents,
as well as skipping unnecessary command stream flushes and CPU/GPU
synchronization.

Signed-off-by: Lucas Stach <l.stach at pengutronix.de>
Reviewed-by: Wladimir J. van der Laan <laanwj at gmail.com>

---

 src/gallium/drivers/etnaviv/etnaviv_transfer.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/etnaviv/etnaviv_transfer.c b/src/gallium/drivers/etnaviv/etnaviv_transfer.c
index 4ead6dff7f..707029865a 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_transfer.c
+++ b/src/gallium/drivers/etnaviv/etnaviv_transfer.c
@@ -197,7 +197,9 @@ etna_transfer_map(struct pipe_context *pctx, struct pipe_resource *prsc,
          return NULL;
       }
 
-      etna_copy_resource(pctx, trans->rsc, prsc, level, trans->rsc->last_level);
+      if (!(usage & PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE))
+         etna_copy_resource(pctx, trans->rsc, prsc, level,
+                            trans->rsc->last_level);
 
       /* Switch to using the temporary resource instead */
       rsc = etna_resource(trans->rsc);




More information about the mesa-commit mailing list