[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