Mesa (master): gallium/svga: Make use of u_upload_flush().

Thomas Hellstrom thomash at kemper.freedesktop.org
Fri Jul 1 11:32:03 UTC 2011


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

Author: Thomas Hellstrom <thellstrom at vmware.com>
Date:   Thu Mar 17 15:09:48 2011 +0100

gallium/svga: Make use of u_upload_flush().

This enables us to pack more data into single upload buffers.

Signed-off-by: Thomas Hellstrom <thellstrom at vmware.com>

---

 src/gallium/drivers/svga/svga_context.c |    8 ++++++++
 src/gallium/drivers/svga/svga_draw.c    |    4 ++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/svga/svga_context.c b/src/gallium/drivers/svga/svga_context.c
index dbbc249..cfb1b9d 100644
--- a/src/gallium/drivers/svga/svga_context.c
+++ b/src/gallium/drivers/svga/svga_context.c
@@ -207,6 +207,14 @@ void svga_context_flush( struct svga_context *svga,
 
    svga->curr.nr_fbs = 0;
 
+   /* Flush the upload managers to ensure recycling of upload buffers
+    * without throttling. This should really be conditioned on
+    * pipe_buffer_map_range not supporting PIPE_TRANSFER_UNSYNCHRONIZED.
+    */
+
+   u_upload_flush(svga->upload_vb);
+   u_upload_flush(svga->upload_ib);
+
    /* Ensure that texture dma uploads are processed
     * before submitting commands.
     */
diff --git a/src/gallium/drivers/svga/svga_draw.c b/src/gallium/drivers/svga/svga_draw.c
index d8af615..28ba470 100644
--- a/src/gallium/drivers/svga/svga_draw.c
+++ b/src/gallium/drivers/svga/svga_draw.c
@@ -145,7 +145,7 @@ svga_hwtnl_flush( struct svga_hwtnl *hwtnl )
       unsigned i;
 
       /* Unmap upload manager vertex buffers */
-      u_upload_flush(svga->upload_vb);
+      u_upload_unmap(svga->upload_vb);
 
       for (i = 0; i < hwtnl->cmd.vdecl_count; i++) {
          handle = svga_buffer_handle(svga, hwtnl->cmd.vdecl_vb[i]);
@@ -156,7 +156,7 @@ svga_hwtnl_flush( struct svga_hwtnl *hwtnl )
       }
 
       /* Unmap upload manager index buffers */
-      u_upload_flush(svga->upload_ib);
+      u_upload_unmap(svga->upload_ib);
 
       for (i = 0; i < hwtnl->cmd.prim_count; i++) {
          if (hwtnl->cmd.prim_ib[i]) {




More information about the mesa-commit mailing list