[Mesa-dev] [PATCH 1/9] compiler: Add new system value SYSTEM_VALUE_BASE_VERTEX_ID
Kenneth Graunke
kenneth at whitecape.org
Thu Nov 30 19:38:49 UTC 2017
On Friday, November 10, 2017 9:53:29 AM PST Antia Puentes wrote:
> This VS system value will contain the value passed as <basevertex>
> for indexed draw calls or the value passed as <first> for non-indexed
> draw calls. It will be used to calculate the gl_VertexID as
> SYSTEM_VALUE_VERTEX_ID_ZERO_BASE plus SYSTEM_VALUE_BASE_VERTEX_ID.
> Note that the current calculation which uses SYSTEM_VALUE_BASE_VERTEX
> is not right, as gl_BaseVertex should be zero for non-indexed calls.
>
> Reviewed-by: Neil Roberts <nroberts at igalia.com>
> ---
> src/compiler/shader_enums.c | 1 +
> src/compiler/shader_enums.h | 15 +++++++++++++++
> 2 files changed, 16 insertions(+)
>
> diff --git a/src/compiler/shader_enums.c b/src/compiler/shader_enums.c
> index b2ca80b49c2..cd8c256f227 100644
> --- a/src/compiler/shader_enums.c
> +++ b/src/compiler/shader_enums.c
> @@ -215,6 +215,7 @@ gl_system_value_name(gl_system_value sysval)
> ENUM(SYSTEM_VALUE_INSTANCE_ID),
> ENUM(SYSTEM_VALUE_INSTANCE_INDEX),
> ENUM(SYSTEM_VALUE_VERTEX_ID_ZERO_BASE),
> + ENUM(SYSTEM_VALUE_BASE_VERTEX_ID),
> ENUM(SYSTEM_VALUE_BASE_VERTEX),
> ENUM(SYSTEM_VALUE_BASE_INSTANCE),
> ENUM(SYSTEM_VALUE_DRAW_ID),
> diff --git a/src/compiler/shader_enums.h b/src/compiler/shader_enums.h
> index 9d229d4199e..7437cccdd0a 100644
> --- a/src/compiler/shader_enums.h
> +++ b/src/compiler/shader_enums.h
> @@ -474,6 +474,21 @@ typedef enum
> */
> SYSTEM_VALUE_BASE_VERTEX,
>
> +
> + /**
> + * Depending on the type of the draw call (indexed or non-indexed),
> + * is the value of \c basevertex passed to \c glDrawElementsBaseVertex and
> + * similar, or is the value of \c first passed to \c glDrawArrays and
> + * similar.
> + *
> + * \note
> + * It can be used to calculate the \c SYSTEM_VALUE_VERTEX_ID as
> + * \c SYSTEM_VALUE_VERTEX_ID_ZERO_BASE plus \c SYSTEM_VALUE_BASE_VERTEX_ID.
> + *
> + * \sa SYSTEM_VALUE_VERTEX_ID_ZERO_BASE, SYSTEM_VALUE_VERTEX_ID
> + */
> + SYSTEM_VALUE_BASE_VERTEX_ID,
> +
We have a number of similar names now:
SYSTEM_VALUE_BASE_VERTEX
SYSTEM_VALUE_BASE_VERTEX_ID
SYSTEM_VALUE_VERTEX_ID
SYSTEM_VALUE_VERTEX_ID_ZERO_BASE
BASE_VERTEX and BASE_VERTEX_ID are really similar names, and honestly
either one seems like it could be the name for gl_BaseVertex. I'm
afraid it would be easy to mix them up by mistake. IMHO, it would be
nice to pick a different word, just to keep some distinction between
the two fairly related concepts...
Perhaps SYSTEM_VALUE_FIRST_VERTEX...? That's only half the meaning,
but it at least uses a different word, and makes you think "do I want
BASE_VERTEX or FIRST_VERTEX?"
> /**
> * Value of \c baseinstance passed to instanced draw entry points
> *
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part.
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20171130/867daeb1/attachment.sig>
More information about the mesa-dev
mailing list