Looks reasonable, 
Reviewed-By: Gert Wollny <gert.wol...@collabora.com> 

Am Donnerstag, den 19.07.2018, 14:42 +1000 schrieb Dave Airlie:
> From: Dave Airlie <airl...@redhat.com>
> 
> There might be a nicer way to do this, but this is at least correct.
> 
> This fixes:
> KHR-GL44.tessellation_shader.single.max_patch_vertices
> KHR-
> GL44.tessellation_shader.tessellation_control_to_tessellation_evaluat
> ion.gl_PatchVerticesIn
> ---
>  src/gallium/drivers/r600/r600_shader.c | 20 ++++++--------------
>  1 file changed, 6 insertions(+), 14 deletions(-)
> 
> diff --git a/src/gallium/drivers/r600/r600_shader.c
> b/src/gallium/drivers/r600/r600_shader.c
> index 4b91dacccc3..6effa31be7b 100644
> --- a/src/gallium/drivers/r600/r600_shader.c
> +++ b/src/gallium/drivers/r600/r600_shader.c
> @@ -1673,19 +1673,11 @@ static void tgsi_src(struct r600_shader_ctx
> *ctx,
>               } else if (ctx-
> >info.system_value_semantic_name[tgsi_src->Register.Index] ==
> TGSI_SEMANTIC_TESSOUTER) {
>                       r600_src->sel = 2;
>               } else if (ctx-
> >info.system_value_semantic_name[tgsi_src->Register.Index] ==
> TGSI_SEMANTIC_VERTICESIN) {
> -                     if (ctx->type == PIPE_SHADER_TESS_CTRL) {
> -                             r600_src->sel = ctx-
> >tess_input_info;
> -                             r600_src->swizzle[0] = 2;
> -                             r600_src->swizzle[1] = 2;
> -                             r600_src->swizzle[2] = 2;
> -                             r600_src->swizzle[3] = 2;
> -                     } else {
> -                             r600_src->sel = ctx-
> >tess_input_info;
> -                             r600_src->swizzle[0] = 3;
> -                             r600_src->swizzle[1] = 3;
> -                             r600_src->swizzle[2] = 3;
> -                             r600_src->swizzle[3] = 3;
> -                     }
> +                     r600_src->sel = ctx->tess_input_info;
> +                     r600_src->swizzle[0] = 2;
> +                     r600_src->swizzle[1] = 2;
> +                     r600_src->swizzle[2] = 2;
> +                     r600_src->swizzle[3] = 2;
>               } else if (ctx->type == PIPE_SHADER_TESS_CTRL &&
> ctx->info.system_value_semantic_name[tgsi_src->Register.Index] ==
> TGSI_SEMANTIC_PRIMID) {
>                       r600_src->sel = 0;
>                       r600_src->swizzle[0] = 0;
> @@ -3559,7 +3551,7 @@ static int r600_shader_from_tgsi(struct
> r600_context *rctx,
>               ctx.tess_input_info = ++regno;
>               ctx.tess_output_info = ++regno;
>       } else if (ctx.type == PIPE_SHADER_TESS_EVAL) {
> -             ctx.tess_input_info = 0;
> +             ctx.tess_input_info = ++regno;
>               ctx.tess_output_info = ++regno;
>       } else if (ctx.type == PIPE_SHADER_GEOMETRY) {
>               ctx.gs_export_gpr_tregs[0] = ++regno;
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to