[Mesa-dev] [PATCH 06/19] gallium: add tessellation shader properties

Glenn Kennard glenn.kennard at gmail.com
Sun May 3 03:18:58 PDT 2015


On Sat, 02 May 2015 22:16:30 +0200, Ilia Mirkin <imirkin at alum.mit.edu>  
wrote:

> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
> ---
>  src/gallium/auxiliary/tgsi/tgsi_strings.c  |  7 ++++++-
>  src/gallium/docs/source/tgsi.rst           | 33  
> ++++++++++++++++++++++++++++++
>  src/gallium/include/pipe/p_defines.h       |  7 +++++++
>  src/gallium/include/pipe/p_shader_tokens.h |  7 ++++++-
>  4 files changed, 52 insertions(+), 2 deletions(-)
>
> diff --git a/src/gallium/auxiliary/tgsi/tgsi_strings.c  
> b/src/gallium/auxiliary/tgsi/tgsi_strings.c
> index dad503e..6781248 100644
> --- a/src/gallium/auxiliary/tgsi/tgsi_strings.c
> +++ b/src/gallium/auxiliary/tgsi/tgsi_strings.c
> @@ -131,7 +131,12 @@ const char  
> *tgsi_property_names[TGSI_PROPERTY_COUNT] =
>     "FS_DEPTH_LAYOUT",
>     "VS_PROHIBIT_UCPS",
>     "GS_INVOCATIONS",
> -   "VS_WINDOW_SPACE_POSITION"
> +   "VS_WINDOW_SPACE_POSITION",
> +   "TCS_VERTICES_OUT",
> +   "TES_PRIM_MODE",
> +   "TES_SPACING",
> +   "TES_VERTEX_ORDER_CW",
> +   "TES_POINT_MODE",

Stray comma

>  };
> const char *tgsi_return_type_names[TGSI_RETURN_TYPE_COUNT] =
> diff --git a/src/gallium/docs/source/tgsi.rst  
> b/src/gallium/docs/source/tgsi.rst
> index 0116842..f77702a 100644
> --- a/src/gallium/docs/source/tgsi.rst
> +++ b/src/gallium/docs/source/tgsi.rst
> @@ -3071,6 +3071,39 @@ Naturally, clipping is not performed on window  
> coordinates either.
>  The effect of this property is undefined if a geometry or tessellation  
> shader
>  are in use.
> +TCS_VERTICES_OUT
> +""""""""""""""""
> +
> +The number of vertices written by the tessellation control shader. This
> +effectively defines the patch input size of the tessellation evaluation  
> shader
> +as well.
> +
> +TES_PRIM_MODE
> +"""""""""""""
> +
> +This sets the tessellation primitive mode, one of  
> ``PIPE_PRIM_TRIANGLES``,
> +``PIPE_PRIM_QUADS``, or ``PIPE_PRIM_LINES``. (Unlike in GL, there is no
> +separate isolines settings, the regular lines is assumed to mean  
> isolines.)
> +
> +TES_SPACING
> +"""""""""""
> +
> +This sets the spacing mode of the tessellation generator, one of
> +``PIPE_TESS_SPACING_*``.
> +
> +TES_VERTEX_ORDER_CW
> +"""""""""""""""""""
> +
> +This sets the vertex order to be clockwise if the value is 1, or
> +counter-clockwise if set to 0.
> +
> +TES_POINT_MODE
> +""""""""""""""
> +
> +If set to a non-zero value, this turns on point mode for the  
> tessellator,
> +which means that points will be generated instead of primitives.
> +
> +
>  Texture Sampling and Texture Formats
>  ------------------------------------
> diff --git a/src/gallium/include/pipe/p_defines.h  
> b/src/gallium/include/pipe/p_defines.h
> index 59b7486..14e0db3 100644
> --- a/src/gallium/include/pipe/p_defines.h
> +++ b/src/gallium/include/pipe/p_defines.h
> @@ -432,6 +432,13 @@ enum pipe_flush_flags
> /**
> + * Tessellator spacing types
> + */
> +#define PIPE_TESS_SPACING_FRACT_ODD      0
> +#define PIPE_TESS_SPACING_FRACT_EVEN     1

GL spec types out the FRACTIONAL which is easier to grep the spec for.

> +#define PIPE_TESS_SPACING_EQUAL          2
> +
> +/**
>   * Query object types
>   */
>  #define PIPE_QUERY_OCCLUSION_COUNTER     0
> diff --git a/src/gallium/include/pipe/p_shader_tokens.h  
> b/src/gallium/include/pipe/p_shader_tokens.h
> index c6ab899..ff1f7d6 100644
> --- a/src/gallium/include/pipe/p_shader_tokens.h
> +++ b/src/gallium/include/pipe/p_shader_tokens.h
> @@ -262,7 +262,12 @@ union tgsi_immediate_data
>  #define TGSI_PROPERTY_VS_PROHIBIT_UCPS       7
>  #define TGSI_PROPERTY_GS_INVOCATIONS         8
>  #define TGSI_PROPERTY_VS_WINDOW_SPACE_POSITION 9
> -#define TGSI_PROPERTY_COUNT                  10
> +#define TGSI_PROPERTY_TCS_VERTICES_OUT       10
> +#define TGSI_PROPERTY_TES_PRIM_MODE          11
> +#define TGSI_PROPERTY_TES_SPACING            12
> +#define TGSI_PROPERTY_TES_VERTEX_ORDER_CW    13
> +#define TGSI_PROPERTY_TES_POINT_MODE         14
> +#define TGSI_PROPERTY_COUNT                  15
> struct tgsi_property {
>     unsigned Type         : 4;  /**< TGSI_TOKEN_TYPE_PROPERTY */

With above niggles fixed
Reviewed-by: Glenn Kennard <glenn.kennard at gmail.com>


More information about the mesa-dev mailing list