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