[Mesa-dev] [PATCH] i965: Make sure we always compute valid index bounds before drawing.

Iago Toral Quiroga itoral at igalia.com
Thu Mar 27 02:18:14 PDT 2014


Calling _tnl_draw_prims() with invalid index bounds can crash and
in some cases where vbo_all_varyings_in_vbos() is TRUE but we
don't have valid index bounds, this happens. This was producing
a crash in Blender when rendering to the selection buffer.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=59455
---
 src/mesa/drivers/dri/i965/brw_draw.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/brw_draw.c b/src/mesa/drivers/dri/i965/brw_draw.c
index d684c17..967923b 100644
--- a/src/mesa/drivers/dri/i965/brw_draw.c
+++ b/src/mesa/drivers/dri/i965/brw_draw.c
@@ -554,7 +554,7 @@ 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) {
       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);
-- 
1.8.3.2



More information about the mesa-dev mailing list