summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2011-09-26 16:22:17 -0700
committerEric Anholt <[email protected]>2011-10-01 22:16:07 -0700
commit42769c2da5c986e38a1bd4ef7dbcb6623968ce88 (patch)
tree6ad1ae8c8a0101f3fdbc3233cc8d3006c884287c
parentddc348d83eff8c12ff0e6c245c32fa65120e7f4a (diff)
Revert "vbo: Don't discount stride == 0 for testing all varyings in VBOs."
This reverts commit d631c19db47181129811080bfa772b210d762d4d. The commit was broken, and ended up returning false all the time because nobody in the world binds every single possible vertex array. On further reflection, we don't want to discount stride == 0: This function is just used for deciding to calculate whether to compute the bonuds on the index, and there's no sense in computing index bounds when stride == 0. For the separate question of "how much data do I upload for this vertex element?", the i965 driver was fixed to upload the data. Fixes a regression of about 2x in 3DMMES, and most importantly, makes Hammerfight playable.
-rw-r--r--src/mesa/vbo/vbo_rebase.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/mesa/vbo/vbo_rebase.c b/src/mesa/vbo/vbo_rebase.c
index a1eab752ad6..97c8d1297a2 100644
--- a/src/mesa/vbo/vbo_rebase.c
+++ b/src/mesa/vbo/vbo_rebase.c
@@ -78,7 +78,8 @@ GLboolean vbo_all_varyings_in_vbos( const struct gl_client_array *arrays[] )
GLuint i;
for (i = 0; i < VERT_ATTRIB_MAX; i++)
- if (arrays[i]->BufferObj->Name == 0)
+ if (arrays[i]->StrideB &&
+ arrays[i]->BufferObj->Name == 0)
return GL_FALSE;
return GL_TRUE;