[Mesa-dev] [PATCH 3/3] st/mesa: use vertex id lowering according to pipe cap bit.

Marek Olšák maraeo at gmail.com
Wed Dec 10 13:40:26 PST 2014


Patches 1 & 3:

Reviewed-by: Marek Olšák <marek.olsak at amd.com>

Marek

On Wed, Dec 10, 2014 at 10:22 PM,  <sroland at vmware.com> wrote:
> From: Roland Scheidegger <sroland at vmware.com>
>
> Tested with llvmpipe, seems to work, though no driver requests it for now.
> ---
>  src/mesa/state_tracker/st_extensions.c     | 4 ++++
>  src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 8 ++++++--
>  2 files changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
> index 20a6845..1a0261b 100644
> --- a/src/mesa/state_tracker/st_extensions.c
> +++ b/src/mesa/state_tracker/st_extensions.c
> @@ -674,6 +674,10 @@ void st_init_extensions(struct pipe_screen *screen,
>        consts->NativeIntegers = GL_TRUE;
>        consts->MaxClipPlanes = 8;
>
> +      if (screen->get_param(screen, PIPE_CAP_VERTEXID_NOOFFSET)) {
> +         consts->VertexID_is_zero_based = GL_TRUE;
> +      }
> +
>        /* Extensions that either depend on GLSL 1.30 or are a subset thereof. */
>        extensions->ARB_conservative_depth = GL_TRUE;
>        extensions->ARB_shading_language_packing = GL_TRUE;
> diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> index 80dd102..dda3985 100644
> --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> @@ -4195,8 +4195,8 @@ const unsigned _mesa_sysval_to_semantic[SYSTEM_VALUE_MAX] = {
>      */
>     TGSI_SEMANTIC_VERTEXID,
>     TGSI_SEMANTIC_INSTANCEID,
> -   0,
> -   0,
> +   TGSI_SEMANTIC_VERTEXID_ZEROBASE,
> +   TGSI_SEMANTIC_BASEVERTEX,
>
>     /* Geometry shader
>      */
> @@ -4907,6 +4907,10 @@ st_translate_program(
>            TGSI_SEMANTIC_SAMPLEMASK);
>     assert(_mesa_sysval_to_semantic[SYSTEM_VALUE_INVOCATION_ID] ==
>            TGSI_SEMANTIC_INVOCATIONID);
> +   assert(_mesa_sysval_to_semantic[SYSTEM_VALUE_VERTEX_ID_ZERO_BASE] ==
> +          TGSI_SEMANTIC_VERTEXID_ZEROBASE);
> +   assert(_mesa_sysval_to_semantic[SYSTEM_VALUE_BASE_VERTEX] ==
> +          TGSI_SEMANTIC_BASEVERTEX);
>
>     t = CALLOC_STRUCT(st_translate);
>     if (!t) {
> --
> 1.9.1
>
> _______________________________________________
> 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