Mesa (master): i965: Make sure we always compute valid index bounds before drawing.

Kenneth Graunke kwg at kemper.freedesktop.org
Fri Mar 28 16:05:03 UTC 2014


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

Author: Iago Toral Quiroga <itoral at igalia.com>
Date:   Fri Mar 28 08:14:02 2014 +0100

i965: Make sure we always compute valid index bounds before drawing.

When doing software rendering (i.e. rendering to the selection buffer) we need
to make sure that we have valid index bounds before calling _tnl_draw_prims(),
otherwise we can crash.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=59455
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

---

 src/mesa/drivers/dri/i965/brw_draw.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/brw_draw.c b/src/mesa/drivers/dri/i965/brw_draw.c
index d684c17..ef0f273 100644
--- a/src/mesa/drivers/dri/i965/brw_draw.c
+++ b/src/mesa/drivers/dri/i965/brw_draw.c
@@ -554,7 +554,8 @@ void brw_draw_prims( struct gl_context *ctx,
     * get the minimum and maximum of their index buffer so we know what range
     * to upload.
     */
-   if (!vbo_all_varyings_in_vbos(arrays) && !index_bounds_valid) {
+   if (!index_bounds_valid &&
+       (ctx->RenderMode != GL_RENDER || !vbo_all_varyings_in_vbos(arrays))) {
       perf_debug("Scanning index buffer to compute index buffer bounds.  "
                  "Use glDrawRangeElements() to avoid this.\n");
       vbo_get_minmax_indices(ctx, prims, ib, &min_index, &max_index, nr_prims);




More information about the mesa-commit mailing list