Mesa (master): etnaviv: stop repeatedly resolving an unchanged resource into its scanout prime buffer

Christian Gmeiner austriancoder at kemper.freedesktop.org
Fri Apr 14 22:15:41 UTC 2017


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

Author: Philipp Zabel <p.zabel at pengutronix.de>
Date:   Wed Apr 12 16:13:36 2017 +0200

etnaviv: stop repeatedly resolving an unchanged resource into its scanout prime buffer

Before resolving a resource into its scanout prime buffer, check that
the prime resource is actually older. If it is not, the resolve is an
expensive no-op, and we better skip it.

Signed-off-by: Philipp Zabel <p.zabel at pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner at gmail.com>

---

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

diff --git a/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c b/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c
index d555884d3f..a089fed13c 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c
+++ b/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c
@@ -593,8 +593,11 @@ etna_flush_resource(struct pipe_context *pctx, struct pipe_resource *prsc)
 {
    struct etna_resource *rsc = etna_resource(prsc);
 
-   if (rsc->scanout)
+   if (rsc->scanout &&
+       etna_resource_older(etna_resource(rsc->scanout->prime), rsc)) {
       etna_copy_resource(pctx, rsc->scanout->prime, prsc, 0, 0);
+      etna_resource(rsc->scanout->prime)->seqno = rsc->seqno;
+   }
 }
 
 void




More information about the mesa-commit mailing list