[Mesa-dev] [PATCH 01/11] vbo: lift common code out of switch cases

Ian Romanick idr at freedesktop.org
Wed Jan 17 17:13:15 UTC 2018


I sent one other tiny nit on patch 7.  With or without that, the series is

Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

On 01/17/2018 09:08 AM, Ian Romanick wrote:
> Should probably also change the assert(0) to unreachable().  It's
> possible that will help the compiler generate slightly better code in
> release builds.
> 
> On 01/16/2018 09:17 PM, Brian Paul wrote:
>> Both switch cases began with the same code.
>> ---
>>  src/mesa/vbo/vbo_exec_draw.c | 15 ++++++---------
>>  src/mesa/vbo/vbo_save_draw.c | 15 ++++++---------
>>  2 files changed, 12 insertions(+), 18 deletions(-)
>>
>> diff --git a/src/mesa/vbo/vbo_exec_draw.c b/src/mesa/vbo/vbo_exec_draw.c
>> index 34cb4ff..de17322 100644
>> --- a/src/mesa/vbo/vbo_exec_draw.c
>> +++ b/src/mesa/vbo/vbo_exec_draw.c
>> @@ -180,14 +180,14 @@ vbo_exec_bind_arrays( struct gl_context *ctx )
>>     GLbitfield varying_inputs = 0x0;
>>     bool swap_pos = false;
>>  
>> -   /* Install the default (ie Current) attributes first, then overlay
>> -    * all active ones.
>> -    */
>> +   /* Install the default (ie Current) attributes first */
>> +   for (attr = 0; attr < VERT_ATTRIB_FF_MAX; attr++) {
>> +      exec->vtx.inputs[attr] = &vbo->currval[VBO_ATTRIB_POS+attr];
>> +   }
>> +
>> +   /* Overlay other active attributes */
>>     switch (get_program_mode(exec->ctx)) {
>>     case VP_NONE:
>> -      for (attr = 0; attr < VERT_ATTRIB_FF_MAX; attr++) {
>> -         exec->vtx.inputs[attr] = &vbo->currval[VBO_ATTRIB_POS+attr];
>> -      }
>>        for (attr = 0; attr < MAT_ATTRIB_MAX; attr++) {
>>           assert(VERT_ATTRIB_GENERIC(attr) < ARRAY_SIZE(exec->vtx.inputs));
>>           exec->vtx.inputs[VERT_ATTRIB_GENERIC(attr)] =
>> @@ -196,9 +196,6 @@ vbo_exec_bind_arrays( struct gl_context *ctx )
>>        map = vbo->map_vp_none;
>>        break;
>>     case VP_ARB:
>> -      for (attr = 0; attr < VERT_ATTRIB_FF_MAX; attr++) {
>> -         exec->vtx.inputs[attr] = &vbo->currval[VBO_ATTRIB_POS+attr];
>> -      }
>>        for (attr = 0; attr < VERT_ATTRIB_GENERIC_MAX; attr++) {
>>           assert(VERT_ATTRIB_GENERIC(attr) < ARRAY_SIZE(exec->vtx.inputs));
>>           exec->vtx.inputs[VERT_ATTRIB_GENERIC(attr)] =
>> diff --git a/src/mesa/vbo/vbo_save_draw.c b/src/mesa/vbo/vbo_save_draw.c
>> index b63a9a8..4101022 100644
>> --- a/src/mesa/vbo/vbo_save_draw.c
>> +++ b/src/mesa/vbo/vbo_save_draw.c
>> @@ -158,14 +158,14 @@ bind_vertex_list(struct gl_context *ctx,
>>        buffer_offset = 0;
>>     }
>>  
>> -   /* Install the default (ie Current) attributes first, then overlay
>> -    * all active ones.
>> -    */
>> +   /* Install the default (ie Current) attributes first */
>> +   for (attr = 0; attr < VERT_ATTRIB_FF_MAX; attr++) {
>> +      save->inputs[attr] = &vbo->currval[VBO_ATTRIB_POS+attr];
>> +   }
>> +
>> +   /* Overlay other active attributes */
>>     switch (get_program_mode(ctx)) {
>>     case VP_NONE:
>> -      for (attr = 0; attr < VERT_ATTRIB_FF_MAX; attr++) {
>> -         save->inputs[attr] = &vbo->currval[VBO_ATTRIB_POS+attr];
>> -      }
>>        for (attr = 0; attr < MAT_ATTRIB_MAX; attr++) {
>>           save->inputs[VERT_ATTRIB_GENERIC(attr)] =
>>              &vbo->currval[VBO_ATTRIB_MAT_FRONT_AMBIENT+attr];
>> @@ -173,9 +173,6 @@ bind_vertex_list(struct gl_context *ctx,
>>        map = vbo->map_vp_none;
>>        break;
>>     case VP_ARB:
>> -      for (attr = 0; attr < VERT_ATTRIB_FF_MAX; attr++) {
>> -         save->inputs[attr] = &vbo->currval[VBO_ATTRIB_POS+attr];
>> -      }
>>        for (attr = 0; attr < VERT_ATTRIB_GENERIC_MAX; attr++) {
>>           save->inputs[VERT_ATTRIB_GENERIC(attr)] =
>>              &vbo->currval[VBO_ATTRIB_GENERIC0+attr];
>>
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> 



More information about the mesa-dev mailing list