Mesa (master): vbo: fix node_attrsz[] usage in vbo_bind_vertex_list()

Brian Paul brianp at kemper.freedesktop.org
Wed Feb 1 20:53:28 UTC 2012


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

Author: Brian Paul <brianp at vmware.com>
Date:   Wed Feb  1 08:42:48 2012 -0700

vbo: fix node_attrsz[] usage in vbo_bind_vertex_list()

The node_attrsz[] array is initially copied from the node->attrsz[]
array but some values get rewritten.  Thereafter, we need to use the
node_attrsz[] values.

Fixes a bug when replaying a display list that uses generic vertex
array[16] (at least).

NOTE: This is a candidate for the 8.0 branch.

Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

---

 src/mesa/vbo/vbo_save_draw.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/mesa/vbo/vbo_save_draw.c b/src/mesa/vbo/vbo_save_draw.c
index 9f02905..b903757 100644
--- a/src/mesa/vbo/vbo_save_draw.c
+++ b/src/mesa/vbo/vbo_save_draw.c
@@ -191,7 +191,7 @@ static void vbo_bind_vertex_list(struct gl_context *ctx,
          save->inputs[attr] = &arrays[attr];
 
 	 arrays[attr].Ptr = (const GLubyte *) NULL + buffer_offset;
-	 arrays[attr].Size = node->attrsz[src];
+	 arrays[attr].Size = node_attrsz[src];
 	 arrays[attr].StrideB = node->vertex_size * sizeof(GLfloat);
 	 arrays[attr].Stride = node->vertex_size * sizeof(GLfloat);
 	 arrays[attr].Type = GL_FLOAT;
@@ -205,7 +205,7 @@ static void vbo_bind_vertex_list(struct gl_context *ctx,
 	 
 	 assert(arrays[attr].BufferObj->Name);
 
-	 buffer_offset += node->attrsz[src] * sizeof(GLfloat);
+	 buffer_offset += node_attrsz[src] * sizeof(GLfloat);
          varying_inputs |= VERT_BIT(attr);
          ctx->NewState |= _NEW_ARRAY;
       }




More information about the mesa-commit mailing list