Mesa (master): broadcom/vc4: Scissor blits performed using the rendering engine.

Eric Anholt anholt at kemper.freedesktop.org
Tue Jul 25 21:56:01 UTC 2017


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

Author: Eric Anholt <eric at anholt.net>
Date:   Mon Jul 24 14:45:49 2017 -0700

broadcom/vc4: Scissor blits performed using the rendering engine.

Without this, a BlitFramebuffer would mark the whole framebuffer as being
changed (so we emit loads/stores of all of it) rather than just the
modified subset.

---

 src/gallium/drivers/vc4/vc4_blit.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/gallium/drivers/vc4/vc4_blit.c b/src/gallium/drivers/vc4/vc4_blit.c
index 0e4ab5bfa0..7f4c76968e 100644
--- a/src/gallium/drivers/vc4/vc4_blit.c
+++ b/src/gallium/drivers/vc4/vc4_blit.c
@@ -195,6 +195,15 @@ vc4_render_blit(struct pipe_context *ctx, struct pipe_blit_info *info)
                 return false;
         }
 
+        /* Enable the scissor, so we get a minimal set of tiles rendered. */
+        if (!info->scissor_enable) {
+                info->scissor_enable = true;
+                info->scissor.minx = info->dst.box.x;
+                info->scissor.miny = info->dst.box.y;
+                info->scissor.maxx = info->dst.box.x + info->dst.box.width;
+                info->scissor.maxy = info->dst.box.y + info->dst.box.height;
+        }
+
         vc4_blitter_save(vc4);
         util_blitter_blit(vc4->blitter, info);
 




More information about the mesa-commit mailing list