[Mesa-dev] [PATCH] r600: enable tess_input_info for TES
Gert Wollny
gert.wollny at collabora.com
Mon Jul 23 18:03:55 UTC 2018
Looks reasonable,
Reviewed-By: Gert Wollny <gert.wollny at collabora.com>
Am Donnerstag, den 19.07.2018, 14:42 +1000 schrieb Dave Airlie:
> From: Dave Airlie <airlied at 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;
More information about the mesa-dev
mailing list