Mesa (9.2): svga: fix incorrect memcpy src in svga_buffer_upload_piecewise( )

Carl Worth cworth at kemper.freedesktop.org
Wed Oct 16 22:10:51 UTC 2013


Module: Mesa
Branch: 9.2
Commit: 9eae0c95f821b2eab722ff35c7d600f7b03d8479
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9eae0c95f821b2eab722ff35c7d600f7b03d8479

Author: Brian Paul <brianp at vmware.com>
Date:   Thu Oct  3 11:51:14 2013 -0600

svga: fix incorrect memcpy src in svga_buffer_upload_piecewise()

As we march over the source buffer we're uploading in pieces, we
need to memcpy from the current offset, not the start of the buffer.
Fixes graphical corruption when drawing very large vertex buffers.

Cc: "9.2" <mesa-stable at lists.freedesktop.org>
Reviewed-by: Matthew McClure <mcclurem at vmware.com>
(cherry picked from commit a50c5f8d24e860baa15dd75b44b9a20af60cebf8)

---

 .../drivers/svga/svga_resource_buffer_upload.c     |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/gallium/drivers/svga/svga_resource_buffer_upload.c b/src/gallium/drivers/svga/svga_resource_buffer_upload.c
index 55e6613..e6bbc00 100644
--- a/src/gallium/drivers/svga/svga_resource_buffer_upload.c
+++ b/src/gallium/drivers/svga/svga_resource_buffer_upload.c
@@ -502,7 +502,7 @@ svga_buffer_upload_piecewise(struct svga_screen *ss,
                                PIPE_TRANSFER_DISCARD_RANGE);
          assert(map);
          if (map) {
-            memcpy(map, sbuf->swbuf, size);
+            memcpy(map, (const char *) sbuf->swbuf + offset, size);
             sws->buffer_unmap(sws, hwbuf);
          }
 




More information about the mesa-commit mailing list