[Mesa-dev] [PATCH 08/17] st/mesa: simplify code due to unification to st_common_program

Marek Olšák maraeo at gmail.com
Tue May 2 16:46:03 UTC 2017


>>      switch (shader->Stage) {
>>      case MESA_SHADER_VERTEX:
>>         stvp = (struct st_vertex_program *)prog;
>>         stvp->glsl_to_tgsi = v;
>>         break;
>>      case MESA_SHADER_FRAGMENT:
>>         stfp = (struct st_fragment_program *)prog;
>>         stfp->glsl_to_tgsi = v;
>>         break;
>> -   case MESA_SHADER_GEOMETRY:
>> -      stgp = (struct st_common_program *)prog;
>> -      stgp->glsl_to_tgsi = v;
>> -      break;
>>      case MESA_SHADER_TESS_CTRL:
>> -      sttcp = (struct st_common_program *)prog;
>> -      sttcp->glsl_to_tgsi = v;
>> -      break;
>>      case MESA_SHADER_TESS_EVAL:
>> -      sttep = (struct st_common_program *)prog;
>> -      sttep->glsl_to_tgsi = v;
>> +   case MESA_SHADER_GEOMETRY:
>> +      stp = (struct st_common_program *)prog;
>> +      stp->glsl_to_tgsi = v;
>>         break;
>>      case MESA_SHADER_COMPUTE:
>>         stcp = (struct st_compute_program *)prog;
>>         stcp->glsl_to_tgsi = v;
>>         break;
>
>
> The TESS_CTRL, TESS_EVAL cases are no longer needed?  Maybe there should be
> a comment about that?

The cases are still there, just merged with GS.

>
>
>>      default:
>>         assert(!"should not be reached");
>>         return NULL;
>>      }
>>
>> diff --git a/src/mesa/state_tracker/st_program.c
>> b/src/mesa/state_tracker/st_program.c
>> index 943b7d1..41ffac4 100644
>> --- a/src/mesa/state_tracker/st_program.c
>> +++ b/src/mesa/state_tracker/st_program.c
>> @@ -1898,30 +1898,25 @@ destroy_program_variants(struct st_context *st,
>> struct gl_program *target)
>>               }
>>               fpv = next;
>>            }
>>         }
>>         break;
>>      case GL_GEOMETRY_PROGRAM_NV:
>>      case GL_TESS_CONTROL_PROGRAM_NV:
>>      case GL_TESS_EVALUATION_PROGRAM_NV:
>>      case GL_COMPUTE_PROGRAM_NV:
>>         {
>> -         struct st_common_program *gp = (struct
>> st_common_program*)target;
>> -         struct st_common_program *tcp = (struct
>> st_common_program*)target;
>> -         struct st_common_program *tep = (struct
>> st_common_program*)target;
>> +         struct st_common_program *p = (struct st_common_program*)target;
>
>
> st_common_program() cast wrapper?

Yes. I'll also switch all the other manual typecasts to the helper.

Marek


More information about the mesa-dev mailing list