[Mesa-dev] [PATCH 01/19] gallium: add tessellation shader types

Fredrik Höglund fredrik at kde.org
Sun May 3 06:26:42 PDT 2015


On Sunday 03 May 2015, Glenn Kennard wrote:
> On Sat, 02 May 2015 22:16:25 +0200, Ilia Mirkin <imirkin at alum.mit.edu>  
> wrote:
> 
> > Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
> > ---
> >  src/gallium/auxiliary/tgsi/tgsi_info.c     | 4 ++++
> >  src/gallium/auxiliary/tgsi/tgsi_strings.c  | 4 +++-
> >  src/gallium/auxiliary/tgsi/tgsi_strings.h  | 2 +-
> >  src/gallium/include/pipe/p_defines.h       | 6 ++++--
> >  src/gallium/include/pipe/p_shader_tokens.h | 4 +++-
> >  5 files changed, 15 insertions(+), 5 deletions(-)
> >
> > diff --git a/src/gallium/auxiliary/tgsi/tgsi_info.c  
> > b/src/gallium/auxiliary/tgsi/tgsi_info.c
> > index 3cab86e..eb447cb 100644
> > --- a/src/gallium/auxiliary/tgsi/tgsi_info.c
> > +++ b/src/gallium/auxiliary/tgsi/tgsi_info.c
> > @@ -302,6 +302,10 @@ tgsi_get_processor_name( uint processor )
> >        return "fragment shader";
> >     case TGSI_PROCESSOR_GEOMETRY:
> >        return "geometry shader";
> > +   case TGSI_PROCESSOR_TESSCTRL:
> > +      return "tessellation control shader";
> > +   case TGSI_PROCESSOR_TESSEVAL:
> > +      return "tessellation evaluation shader";
> >     default:
> >        return "unknown shader type!";
> >     }
> > diff --git a/src/gallium/auxiliary/tgsi/tgsi_strings.c  
> > b/src/gallium/auxiliary/tgsi/tgsi_strings.c
> > index 9b727cf..e712f30 100644
> > --- a/src/gallium/auxiliary/tgsi/tgsi_strings.c
> > +++ b/src/gallium/auxiliary/tgsi/tgsi_strings.c
> > @@ -32,11 +32,13 @@
> >  #include "tgsi_strings.h"
> > -const char *tgsi_processor_type_names[4] =
> > +const char *tgsi_processor_type_names[6] =
> 
> Don't forget to update the declaration in tgsi_strings.h
> 
> >  {
> >     "FRAG",
> >     "VERT",
> >     "GEOM",
> > +   "TESSC",
> > +   "TESSE",
> 
> A bit silly to shorten these when the dumps dedicate an entire line for  
> printing the name.
> 
> >     "COMP"
> >  };
> > diff --git a/src/gallium/auxiliary/tgsi/tgsi_strings.h  
> > b/src/gallium/auxiliary/tgsi/tgsi_strings.h
> > index 90014a2..71e7437 100644
> > --- a/src/gallium/auxiliary/tgsi/tgsi_strings.h
> > +++ b/src/gallium/auxiliary/tgsi/tgsi_strings.h
> > @@ -38,7 +38,7 @@ extern "C" {
> >  #endif
> > -extern const char *tgsi_processor_type_names[4];
> > +extern const char *tgsi_processor_type_names[6];
> > extern const char *tgsi_semantic_names[TGSI_SEMANTIC_COUNT];
> > diff --git a/src/gallium/include/pipe/p_defines.h  
> > b/src/gallium/include/pipe/p_defines.h
> > index 67f48e4..48c182f 100644
> > --- a/src/gallium/include/pipe/p_defines.h
> > +++ b/src/gallium/include/pipe/p_defines.h
> > @@ -404,8 +404,10 @@ enum pipe_flush_flags
> >  #define PIPE_SHADER_VERTEX   0
> >  #define PIPE_SHADER_FRAGMENT 1
> >  #define PIPE_SHADER_GEOMETRY 2
> > -#define PIPE_SHADER_COMPUTE  3
> > -#define PIPE_SHADER_TYPES    4
> > +#define PIPE_SHADER_TESSCTRL 3
> > +#define PIPE_SHADER_TESSEVAL 4
> 
> Most of the gallium names are typed out without contractions, ie  
> PIPE_SHADER_TESSELLATION_CONTROL/EVALUATION

Another option, if the length is a concern, is to use the D3D names,
i.e. PIPE_SHADER_HULL and PIPE_SHADER_DOMAIN.

> > +#define PIPE_SHADER_COMPUTE  5
> > +#define PIPE_SHADER_TYPES    6
> > /**
> > diff --git a/src/gallium/include/pipe/p_shader_tokens.h  
> > b/src/gallium/include/pipe/p_shader_tokens.h
> > index c14bcbc..776b0d4 100644
> > --- a/src/gallium/include/pipe/p_shader_tokens.h
> > +++ b/src/gallium/include/pipe/p_shader_tokens.h
> > @@ -43,7 +43,9 @@ struct tgsi_header
> >  #define TGSI_PROCESSOR_FRAGMENT  0
> >  #define TGSI_PROCESSOR_VERTEX    1
> >  #define TGSI_PROCESSOR_GEOMETRY  2
> > -#define TGSI_PROCESSOR_COMPUTE   3
> > +#define TGSI_PROCESSOR_TESSCTRL  3
> > +#define TGSI_PROCESSOR_TESSEVAL  4
> > +#define TGSI_PROCESSOR_COMPUTE   5
> > struct tgsi_processor
> >  {
> 
> With above niggles fixed
> Reviewed-by: Glenn Kennard <glenn.kennard at gmail.com>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> 



More information about the mesa-dev mailing list