[Mesa-dev] [PATCH 2/4] gallium: add new properties for clip and cull distance usage

Roland Scheidegger sroland at vmware.com
Mon Oct 19 14:02:52 PDT 2015


I don't have anything against new properties but why exactly is it
needed? As far as I can tell, clip/cull distances aren't declared as
arrays but just (up to two each) ordinary outputs, thus using the usage
masks should work just fine. Or is this handled differently by some
shader stages?

Roland

Am 18.10.2015 um 19:14 schrieb Marek Olšák:
> From: Marek Olšák <marek.olsak at amd.com>
> 
> The TGSI usage mask can't be used, because these are declared as an output
> array of 2 elements.
> ---
>  src/gallium/auxiliary/tgsi/tgsi_strings.c  |  2 ++
>  src/gallium/docs/source/tgsi.rst           | 10 ++++++++++
>  src/gallium/include/pipe/p_shader_tokens.h |  4 +++-
>  3 files changed, 15 insertions(+), 1 deletion(-)
> 
> diff --git a/src/gallium/auxiliary/tgsi/tgsi_strings.c b/src/gallium/auxiliary/tgsi/tgsi_strings.c
> index 8271ea0..89369d6 100644
> --- a/src/gallium/auxiliary/tgsi/tgsi_strings.c
> +++ b/src/gallium/auxiliary/tgsi/tgsi_strings.c
> @@ -137,6 +137,8 @@ const char *tgsi_property_names[TGSI_PROPERTY_COUNT] =
>     "TES_SPACING",
>     "TES_VERTEX_ORDER_CW",
>     "TES_POINT_MODE",
> +   "NUM_CLIPDIST_ENABLED",
> +   "NUM_CULLDIST_ENABLED",
>  };
>  
>  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 314fe1b..01e18f3 100644
> --- a/src/gallium/docs/source/tgsi.rst
> +++ b/src/gallium/docs/source/tgsi.rst
> @@ -3126,6 +3126,16 @@ 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.
>  
> +NUM_CLIPDIST_ENABLED
> +""""""""""""""""
> +
> +How many clip distance scalar outputs are enabled.
> +
> +NUM_CULLDIST_ENABLED
> +""""""""""""""""
> +
> +How many cull distance scalar outputs are enabled.
> +
>  
>  Texture Sampling and Texture Formats
>  ------------------------------------
> diff --git a/src/gallium/include/pipe/p_shader_tokens.h b/src/gallium/include/pipe/p_shader_tokens.h
> index b36e0a3..e0ab901 100644
> --- a/src/gallium/include/pipe/p_shader_tokens.h
> +++ b/src/gallium/include/pipe/p_shader_tokens.h
> @@ -267,7 +267,9 @@ union tgsi_immediate_data
>  #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
> +#define TGSI_PROPERTY_NUM_CLIPDIST_ENABLED   15
> +#define TGSI_PROPERTY_NUM_CULLDIST_ENABLED   16
> +#define TGSI_PROPERTY_COUNT                  17
>  
>  struct tgsi_property {
>     unsigned Type         : 4;  /**< TGSI_TOKEN_TYPE_PROPERTY */
> 



More information about the mesa-dev mailing list