[virglrenderer-devel] [PATCH] shader: refactor out the input/output prefix code.

Elie Tournier tournier.elie at gmail.com
Mon Jun 4 07:55:09 UTC 2018


On Mon, Jun 04, 2018 at 01:07:09PM +1000, Dave Airlie wrote:
> From: Dave Airlie <airlied at redhat.com>
Reviewed-by: Elie Tournier <elie.tournier at collabora.com>
> 
> This just cleans this out to a separate fn
> ---
>  src/vrend_shader.c | 72 +++++++++++++++++++++++++++-------------------
>  1 file changed, 43 insertions(+), 29 deletions(-)
> 
> diff --git a/src/vrend_shader.c b/src/vrend_shader.c
> index 19e5a4b..286101d 100644
> --- a/src/vrend_shader.c
> +++ b/src/vrend_shader.c
> @@ -286,6 +286,47 @@ static inline bool fs_emit_layout(struct dump_ctx *ctx)
>     return false;
>  }
>  
> +static const char *get_stage_input_name_prefix(struct dump_ctx *ctx, int processor)
> +{
> +   const char *name_prefix;
> +   switch (processor) {
> +   case TGSI_PROCESSOR_FRAGMENT:
> +      if (ctx->key->gs_present)
> +         name_prefix = "gso";
> +      else
> +         name_prefix = "vso";
> +      break;
> +   case TGSI_PROCESSOR_GEOMETRY:
> +      name_prefix = "vso";
> +      break;
> +   case TGSI_PROCESSOR_VERTEX:
> +   default:
> +      name_prefix = "in";
> +      break;
> +   }
> +   return name_prefix;
> +}
> +
> +static const char *get_stage_output_name_prefix(int processor)
> +{
> +   const char *name_prefix;
> +   switch (processor) {
> +   case TGSI_PROCESSOR_FRAGMENT:
> +      name_prefix = "fsout";
> +      break;
> +   case TGSI_PROCESSOR_GEOMETRY:
> +      name_prefix = "gso";
> +      break;
> +   case TGSI_PROCESSOR_VERTEX:
> +      name_prefix = "vso";
> +      break;
> +   default:
> +      name_prefix = "out";
> +      break;
> +   }
> +   return name_prefix;
> +}
> +
>  static void require_glsl_ver(struct dump_ctx *ctx, int glsl_ver)
>  {
>     if (glsl_ver > ctx->glsl_ver_required)
> @@ -557,21 +598,7 @@ iter_declaration(struct tgsi_iterate_context *iter,
>              }
>           }
>        default:
> -         switch (iter->processor.Processor) {
> -         case TGSI_PROCESSOR_FRAGMENT:
> -            if (ctx->key->gs_present)
> -               name_prefix = "gso";
> -            else
> -               name_prefix = "vso";
> -            break;
> -         case TGSI_PROCESSOR_GEOMETRY:
> -            name_prefix = "vso";
> -            break;
> -         case TGSI_PROCESSOR_VERTEX:
> -         default:
> -            name_prefix = "in";
> -            break;
> -         }
> +         name_prefix = get_stage_input_name_prefix(ctx, iter->processor.Processor);
>           break;
>        }
>  
> @@ -740,20 +767,7 @@ iter_declaration(struct tgsi_iterate_context *iter,
>              if (ctx->outputs[i].name == TGSI_SEMANTIC_GENERIC)
>                 color_offset = -1;
>        default:
> -         switch (iter->processor.Processor) {
> -         case TGSI_PROCESSOR_FRAGMENT:
> -            name_prefix = "fsout";
> -            break;
> -         case TGSI_PROCESSOR_GEOMETRY:
> -            name_prefix = "gso";
> -            break;
> -         case TGSI_PROCESSOR_VERTEX:
> -            name_prefix = "vso";
> -            break;
> -         default:
> -            name_prefix = "out";
> -            break;
> -         }
> +         name_prefix = get_stage_output_name_prefix(iter->processor.Processor);
>           break;
>        }
>  
> -- 
> 2.17.0
> 
> _______________________________________________
> virglrenderer-devel mailing list
> virglrenderer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/virglrenderer-devel


More information about the virglrenderer-devel mailing list