aboutsummaryrefslogtreecommitdiff
path: root/mesalib/src/mesa/vbo/vbo_exec_array.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2013-08-30 15:40:11 +0200
committermarha <marha@users.sourceforge.net>2013-08-30 15:40:11 +0200
commit22bc825e9931f718cc0564aa55915961abaffce4 (patch)
treef53ea31eb5368d3f60860d3e8911fa83a7fd851a /mesalib/src/mesa/vbo/vbo_exec_array.c
parentac46cfda36d6dbe8d5c092124a66ffe3f2bad15f (diff)
parent5ebbc3a366287b631775ed3e17537580d380db8a (diff)
downloadvcxsrv-22bc825e9931f718cc0564aa55915961abaffce4.tar.gz
vcxsrv-22bc825e9931f718cc0564aa55915961abaffce4.tar.bz2
vcxsrv-22bc825e9931f718cc0564aa55915961abaffce4.zip
Merge remote-tracking branch 'origin/released'
* origin/released: fontconfig mesa xserver xkeyboard-config xkbcomp git update 30 aug 2013
Diffstat (limited to 'mesalib/src/mesa/vbo/vbo_exec_array.c')
-rw-r--r--mesalib/src/mesa/vbo/vbo_exec_array.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/mesalib/src/mesa/vbo/vbo_exec_array.c b/mesalib/src/mesa/vbo/vbo_exec_array.c
index bd05cd0c3..1670409d4 100644
--- a/mesalib/src/mesa/vbo/vbo_exec_array.c
+++ b/mesalib/src/mesa/vbo/vbo_exec_array.c
@@ -1334,6 +1334,16 @@ vbo_validated_multidrawelements(struct gl_context *ctx, GLenum mode,
}
}
+ /* Draw primitives individually if one count is zero, so we can easily skip
+ * that primitive.
+ */
+ for (i = 0; i < primcount; i++) {
+ if (count[i] == 0) {
+ fallback = GL_TRUE;
+ break;
+ }
+ }
+
/* If the index buffer isn't in a VBO, then treating the application's
* subranges of the index buffer as one large index buffer may lead to
* us reading unmapped memory.
@@ -1370,6 +1380,8 @@ vbo_validated_multidrawelements(struct gl_context *ctx, GLenum mode,
} else {
/* render one prim at a time */
for (i = 0; i < primcount; i++) {
+ if (count[i] == 0)
+ continue;
ib.count = count[i];
ib.type = type;
ib.obj = ctx->Array.ArrayObj->ElementArrayBufferObj;