Mesa (master): vbo: replace assertion with conditional in vbo_compute_max_verts()

Brian Paul brianp at kemper.freedesktop.org
Wed Oct 28 17:04:52 UTC 2015


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

Author: Brian Paul <brianp at vmware.com>
Date:   Tue Oct 27 13:50:10 2015 -0600

vbo: replace assertion with conditional in vbo_compute_max_verts()

With just the right sequence of per-vertex commands and state changes,
it's possible for this assertion to fail (such as with viewperf11's
lightwave-06-1 test).  Instead of asserting, return 0 so that the
caller knows the VBO is full and needs to be flushed.

Reviewed-by: Charmaine Lee <charmainel at vmware.com>

---

 src/mesa/vbo/vbo_context.h |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/mesa/vbo/vbo_context.h b/src/mesa/vbo/vbo_context.h
index e6b9d89..6293a8b 100644
--- a/src/mesa/vbo/vbo_context.h
+++ b/src/mesa/vbo/vbo_context.h
@@ -207,7 +207,8 @@ vbo_compute_max_verts(const struct vbo_exec_context *exec)
 {
    unsigned n = (VBO_VERT_BUFFER_SIZE - exec->vtx.buffer_used) /
       (exec->vtx.vertex_size * sizeof(GLfloat));
-   assert(n > 0);
+   if (n == 0)
+      return 0;
    /* Subtract one so we're always sure to have room for an extra
     * vertex for GL_LINE_LOOP -> GL_LINE_STRIP conversion.
     */




More information about the mesa-commit mailing list