From: Kenneth Graunke Date: Thu, 21 Mar 2013 22:01:34 +0000 (-0700) Subject: i965: Use the proper element of the prim array in brw_try_draw_prims. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b8211ab3edb1bb9f414e8b4913609f48326e202e;p=mesa.git i965: Use the proper element of the prim array in brw_try_draw_prims. The VBO module actually calls us with an array of _mesa_prim objects. For example, it may break up a DrawArrays() call into multiple primitives when primitive restart is enabled. Previously, we treated prim like a pointer, always accessing element 0. This worked because all of the primitive objects in a single draw call have the same value for num_instances and basevertex. However, accessing an array as a pointer and using the wrong object's fields is misleading. For stylistic reasons alone, we should use the right object. Signed-off-by: Kenneth Graunke Reviewed-by: Eric Anholt Reviewed-by: Paul Berry --- diff --git a/src/mesa/drivers/dri/i965/brw_draw.c b/src/mesa/drivers/dri/i965/brw_draw.c index 0b115666eda..dec17db87d1 100644 --- a/src/mesa/drivers/dri/i965/brw_draw.c +++ b/src/mesa/drivers/dri/i965/brw_draw.c @@ -390,12 +390,12 @@ static bool brw_try_draw_prims( struct gl_context *ctx, intel_batchbuffer_require_space(brw, estimated_max_prim_size, false); intel_batchbuffer_save_state(brw); - if (brw->num_instances != prim->num_instances) { - brw->num_instances = prim->num_instances; + if (brw->num_instances != prim[i].num_instances) { + brw->num_instances = prim[i].num_instances; brw->state.dirty.brw |= BRW_NEW_VERTICES; } - if (brw->basevertex != prim->basevertex) { - brw->basevertex = prim->basevertex; + if (brw->basevertex != prim[i].basevertex) { + brw->basevertex = prim[i].basevertex; brw->state.dirty.brw |= BRW_NEW_VERTICES; } if (brw->gen < 6)