From: Iago Toral Quiroga Date: Fri, 28 Mar 2014 07:14:02 +0000 (+0100) Subject: i965: Make sure we always compute valid index bounds before drawing. X-Git-Tag: upstream/10.3~2880 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=029ccd773d01a5f801c809c499516d7b0c4cc3f8;p=platform%2Fupstream%2Fmesa.git 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 --- 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);