On 01/05/2012 07:53 AM, Marek Olšák wrote:
I think we can also set MAP_INVALIDATE_RANGE_BIT when mapping the dst
buffer. Looks good otherwise.

Right.  I'll add that before pushing.

-Brian


Marek

On Wed, Jan 4, 2012 at 10:55 PM, Brian Paul<bri...@vmware.com>  wrote:
We were wastefully mapping the whole source/dest buffers before.
---
  src/mesa/main/bufferobj.c |   12 ++++++------
  1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c
index 66957e4..c4a7b8d 100644
--- a/src/mesa/main/bufferobj.c
+++ b/src/mesa/main/bufferobj.c
@@ -502,19 +502,19 @@ _mesa_copy_buffer_subdata(struct gl_context *ctx,
                           GLintptr readOffset, GLintptr writeOffset,
                           GLsizeiptr size)
  {
-   GLubyte *srcPtr, *dstPtr;
+   void *srcPtr, *dstPtr;

    /* buffer should not already be mapped */
    assert(!_mesa_bufferobj_mapped(src));
    assert(!_mesa_bufferobj_mapped(dst));

-   srcPtr = (GLubyte *) ctx->Driver.MapBufferRange(ctx, 0, src->Size,
-                                                  GL_MAP_READ_BIT, src);
-   dstPtr = (GLubyte *) ctx->Driver.MapBufferRange(ctx, 0, dst->Size,
-                                                  GL_MAP_WRITE_BIT, dst);
+   srcPtr = ctx->Driver.MapBufferRange(ctx, readOffset, size,
+                                       GL_MAP_READ_BIT, src);
+   dstPtr = ctx->Driver.MapBufferRange(ctx, writeOffset, size,
+                                       GL_MAP_WRITE_BIT, dst);

    if (srcPtr&&  dstPtr)
-      memcpy(dstPtr + writeOffset, srcPtr + readOffset, size);
+      memcpy(dstPtr, srcPtr, size);

    ctx->Driver.UnmapBuffer(ctx, src);
    ctx->Driver.UnmapBuffer(ctx, dst);
--
1.7.3.4

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to