From: Marek Olšák Date: Sun, 19 Jun 2011 17:38:48 +0000 (+0200) Subject: u_vbuf_mgr: fix uploading if format size is greater than stride X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0d58723cde31703f13f2e8e0747cde30b9e5d6de;p=mesa.git u_vbuf_mgr: fix uploading if format size is greater than stride --- diff --git a/src/gallium/auxiliary/util/u_vbuf_mgr.c b/src/gallium/auxiliary/util/u_vbuf_mgr.c index 04149525ea7..fdfa9fcca3d 100644 --- a/src/gallium/auxiliary/util/u_vbuf_mgr.c +++ b/src/gallium/auxiliary/util/u_vbuf_mgr.c @@ -537,6 +537,11 @@ static void u_vbuf_upload_buffers(struct u_vbuf_mgr_priv *mgr, } else if (vb->stride) { first = vb->stride * min_index; size = vb->stride * count; + + /* Unusual case when stride is smaller than the format size. + * XXX This won't work with interleaved arrays. */ + if (mgr->ve->native_format_size[i] > vb->stride) + size += mgr->ve->native_format_size[i] - vb->stride; } else { first = 0; size = mgr->ve->native_format_size[i];