On 01/04/2012 01:55 PM, Brian Paul 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);
LGTM. Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev