[Mesa-dev] [PATCH 5/5] st/mesa: clean up min/max_index handling in st_draw_vbo

Marek Olšák maraeo at gmail.com
Mon Apr 24 13:31:02 UTC 2017


On Mon, Apr 24, 2017 at 12:01 PM, Nicolai Hähnle <nhaehnle at gmail.com> wrote:
> On 23.04.2017 01:10, Marek Olšák wrote:
>>
>> From: Marek Olšák <marek.olsak at amd.com>
>>
>> There is no reason to check for ~0.
>> Also remove the incorrect comment.
>> ---
>>  src/mesa/state_tracker/st_draw.c | 9 ++-------
>>  1 file changed, 2 insertions(+), 7 deletions(-)
>>
>> diff --git a/src/mesa/state_tracker/st_draw.c
>> b/src/mesa/state_tracker/st_draw.c
>> index d710284..e510d43 100644
>> --- a/src/mesa/state_tracker/st_draw.c
>> +++ b/src/mesa/state_tracker/st_draw.c
>> @@ -200,28 +200,23 @@ st_draw_vbo(struct gl_context *ctx,
>>     if (ib) {
>>        /* Get index bounds for user buffers. */
>>        if (!index_bounds_valid)
>>           if (!all_varyings_in_vbos(arrays))
>>              vbo_get_minmax_indices(ctx, prims, ib, &min_index,
>> &max_index,
>>                                     nr_prims);
>>
>>        setup_index_buffer(st, ib);
>>
>>        info.indexed = TRUE;
>> -      if (min_index != ~0U && max_index != ~0U) {
>> -         info.min_index = min_index;
>> -         info.max_index = max_index;
>> -      }
>> +      info.min_index = min_index;
>> +      info.max_index = max_index;
>
>
> For this and the previous patch, I think it would be cleaner to keep the
> semantics of pipe_draw_info::min_index/max_index to always make sense. This
> would mean dropping the previous patch, and changing this patch to only set
> the min_index/max_index if index_bounds_valid (rather than the ~0U check).

The old code didn't check index_bounds_valid, and u_vbuf already
treats max_index == ~0 as invalid range. Instead of starting to use
index_bounds_valid here, I'd prefer it if we removed
index_bounds_valid and only rely on max_index == ~0 from vbo.

Marek


More information about the mesa-dev mailing list