From 029ccd773d01a5f801c809c499516d7b0c4cc3f8 Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Fri, 28 Mar 2014 08:14:02 +0100 Subject: [PATCH] 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 --- 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 d684c172212..ef0f2737ca1 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); -- 2.30.2