[Mesa-dev] [PATCH 2/3] i965: Set dirty state for brw_draw_upload.c when num_instances changes.

Eric Anholt eric at anholt.net
Wed Oct 31 18:13:11 PDT 2012


Kenneth Graunke <kenneth at whitecape.org> writes:

> On 10/31/2012 02:26 PM, Eric Anholt wrote:
>> Otherwise, if we had a set of prims passed in with a num_instances varying
>> between them, we wouldn't upload enough (or too much!) from user vertex
>> arrays.
>> ---
>>   src/mesa/drivers/dri/i965/brw_draw.c |    5 ++++-
>>   1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/mesa/drivers/dri/i965/brw_draw.c b/src/mesa/drivers/dri/i965/brw_draw.c
>> index 1cfba29..22d18f9 100644
>> --- a/src/mesa/drivers/dri/i965/brw_draw.c
>> +++ b/src/mesa/drivers/dri/i965/brw_draw.c
>> @@ -474,7 +474,10 @@ static bool brw_try_draw_prims( struct gl_context *ctx,
>>         intel_batchbuffer_require_space(intel, estimated_max_prim_size, false);
>>         intel_batchbuffer_save_state(intel);
>>
>> -      brw->num_instances = prim->num_instances;
>> +      if (brw->num_instances != prim->num_instances) {
>> +         brw->num_instances = prim->num_instances;
>> +         brw->state.dirty.brw |= BRW_NEW_VERTICES;
>> +      }
>>         if (intel->gen < 6)
>>   	 brw_set_prim(brw, &prim[i]);
>>         else
>
> I agree that BRW_NEW_VERTICES needs to be changed when num_instances 
> changes.  However, it's already unconditionally flagged above:
>
>     brw->vb.min_index = min_index;
>     brw->vb.max_index = max_index;
>     brw->state.dirty.brw |= BRW_NEW_VERTICES;
>
> So I don't think you'll be able to observe any problems.  That said, I 
> approve of this change anyway, because it's self-documentating and 
> guards against potential problems.

That's outside the per-prim loop, though.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20121031/497b32cc/attachment-0001.pgp>


More information about the mesa-dev mailing list