Hi Macros, Looks like it's not parsed in exactly right. It will parse something like
TESS_EVAL PROPERTY TES_PRIM_MODE 7 PROPERTY TES_SPACING 2 PROPERTY TES_VERTEX_ORDER_CW 0 PROPERTY TES_POINT_MODE 0 DCL IN[][0], GENERIC[0] DCL IN[][1], GENERIC[1] as TESS_EVAL PROPERTY TES_PRIM_MODE 7 PROPERTY TES_SPACING 2 PROPERTY TES_VERTEX_ORDER_CW 0 PROPERTY TES_POINT_MODE 0 DCL IN[][0][0], GENERIC[0] DCL IN[][0][1], GENERIC[1] Perhaps the same issue happens for geometry shaders, but that doesn't make it right :) You might have to look at the printing logic to get a better understanding of what's going wrong. Also you should send patches to nouveau separately from patches to the rest of the infra. Ideally this would have been 2 patches, e.g. tgsi: set implicit array size for tess stages nouveau: recognize tess stages in nouveau_compiler or something like that. On Wed, Aug 12, 2015 at 9:25 PM, Marcos Paulo de Souza <marcos.souza....@gmail.com> wrote: > From: Marcos Paulo de Souza <marcos.souza....@gmail.com> > > Signed-off-by: Marcos Paulo de Souza <marcos.souza.org> > Suggested-by: Ilia Mirkin <imir...@alum.mit.edu> > --- > src/gallium/auxiliary/tgsi/tgsi_text.c | 6 +++++- > src/gallium/drivers/nouveau/nouveau_compiler.c | 4 ++++ > 2 files changed, 9 insertions(+), 1 deletion(-) > > diff --git a/src/gallium/auxiliary/tgsi/tgsi_text.c > b/src/gallium/auxiliary/tgsi/tgsi_text.c > index a6675c5..8647e4e 100644 > --- a/src/gallium/auxiliary/tgsi/tgsi_text.c > +++ b/src/gallium/auxiliary/tgsi/tgsi_text.c > @@ -259,7 +259,7 @@ struct translate_ctx > struct tgsi_token *tokens_end; > struct tgsi_header *header; > unsigned processor : 4; > - int implied_array_size : 5; > + int implied_array_size : 6; > unsigned num_immediates; > }; > > @@ -1623,6 +1623,10 @@ static boolean translate( struct translate_ctx *ctx ) > if (!parse_header( ctx )) > return FALSE; > > + if (ctx->processor == TGSI_PROCESSOR_TESS_CTRL || > + ctx->processor == TGSI_PROCESSOR_TESS_EVAL) > + ctx->implied_array_size = 32 ; > + > while (*ctx->cur != '\0') { > uint label_val = 0; > if (!eat_white( &ctx->cur )) { > diff --git a/src/gallium/drivers/nouveau/nouveau_compiler.c > b/src/gallium/drivers/nouveau/nouveau_compiler.c > index 8660498..495450b 100644 > --- a/src/gallium/drivers/nouveau/nouveau_compiler.c > +++ b/src/gallium/drivers/nouveau/nouveau_compiler.c > @@ -190,6 +190,10 @@ main(int argc, char *argv[]) > type = PIPE_SHADER_GEOMETRY; > else if (!strncmp(text, "COMP", 4)) > type = PIPE_SHADER_COMPUTE; > + else if (!strncmp(text, "TESS_CTRL", 9)) > + type = PIPE_SHADER_TESS_CTRL; > + else if (!strncmp(text, "TESS_EVAL", 9)) > + type = PIPE_SHADER_TESS_EVAL; > else { > _debug_printf("Unrecognized TGSI header\n"); > return 1; > -- > 2.4.3 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev