summaryrefslogtreecommitdiffstats
path: root/src/mesa/vbo
diff options
context:
space:
mode:
authorXiang, Haihao <haihao.xiang@intel.com>2007-08-07 08:21:28 +0800
committerXiang, Haihao <haihao.xiang@intel.com>2007-08-07 08:21:28 +0800
commitd05b72154319041dad38f24696638396753e0da3 (patch)
treeac6739683f25e7d2c1709bf98bbfc1cf0d11c8fe /src/mesa/vbo
parent75a88e908242c555b3916bbf61d371e83e6a6dd0 (diff)
downloadexternal_mesa3d-d05b72154319041dad38f24696638396753e0da3.zip
external_mesa3d-d05b72154319041dad38f24696638396753e0da3.tar.gz
external_mesa3d-d05b72154319041dad38f24696638396753e0da3.tar.bz2
fix vbo_split_copy related bug 9962
Diffstat (limited to 'src/mesa/vbo')
-rw-r--r--src/mesa/vbo/vbo_split_copy.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/mesa/vbo/vbo_split_copy.c b/src/mesa/vbo/vbo_split_copy.c
index e5c4429..685cc0f 100644
--- a/src/mesa/vbo/vbo_split_copy.c
+++ b/src/mesa/vbo/vbo_split_copy.c
@@ -129,6 +129,13 @@ static GLuint attr_size( const struct gl_client_array *array )
*/
static GLboolean check_flush( struct copy_context *copy )
{
+ GLenum mode = copy->dstprim[copy->dstprim_nr].mode;
+
+ if (GL_TRIANGLE_STRIP == mode &&
+ copy->dstelt_nr & 1) { /* see bug9962 */
+ return GL_FALSE;
+ }
+
if (copy->dstbuf_nr + 4 > copy->dstbuf_size)
return GL_TRUE;
@@ -458,7 +465,7 @@ static void replay_init( struct copy_context *copy )
dst->StrideB = copy->vertex_size;
dst->Ptr = copy->dstbuf + offset;
dst->Enabled = GL_TRUE;
- dst->Normalized = GL_TRUE;
+ dst->Normalized = src->Normalized;
dst->BufferObj = ctx->Array.NullBufferObj;
dst->_MaxElement = copy->dstbuf_size; /* may be less! */