Mesa (master): meta: Fix the BufferSubData in meta clear to be BufferData.

Eric Anholt anholt at kemper.freedesktop.org
Tue Oct 20 20:07:37 UTC 2009


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

Author: Eric Anholt <eric at anholt.net>
Date:   Mon Oct 19 17:54:42 2009 -0700

meta: Fix the BufferSubData in meta clear to be BufferData.

Fixes a 3.4% +/- 1.3% performance regression in my GL demo (n=3).  The
other meta code could probably also use the same treatment.

---

 src/mesa/drivers/common/meta.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index ceb929f..b38f22e 100644
--- a/src/mesa/drivers/common/meta.c
+++ b/src/mesa/drivers/common/meta.c
@@ -1346,8 +1346,6 @@ _mesa_meta_Clear(GLcontext *ctx, GLbitfield buffers)
       /* create vertex array buffer */
       _mesa_GenBuffersARB(1, &clear->VBO);
       _mesa_BindBufferARB(GL_ARRAY_BUFFER_ARB, clear->VBO);
-      _mesa_BufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(verts),
-                          NULL, GL_DYNAMIC_DRAW_ARB);
 
       /* setup vertex arrays */
       _mesa_VertexPointer(3, GL_FLOAT, sizeof(struct vertex), OFFSET(x));
@@ -1423,7 +1421,8 @@ _mesa_meta_Clear(GLcontext *ctx, GLbitfield buffers)
       }
 
       /* upload new vertex data */
-      _mesa_BufferSubDataARB(GL_ARRAY_BUFFER_ARB, 0, sizeof(verts), verts);
+      _mesa_BufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(verts), verts,
+			  GL_DYNAMIC_DRAW_ARB);
    }
 
    /* draw quad */




More information about the mesa-commit mailing list