[Mesa-dev] [PATCH] mesa: fix VIEWPORT_INDEX_PROVOKING_VERTEX and LAYER_PROVOKING_VERTEX queries

Brian Paul brianp at vmware.com
Tue Dec 1 11:35:53 PST 2015


On 12/01/2015 12:07 PM, sroland at vmware.com wrote:
> From: Roland Scheidegger <sroland at vmware.com>
>
> These are implementation-dependent queries, but so far we just returned the
> value of whatever the current provoking vertex convention was set to, which
> was clearly wrong.
> Just make this a variable in the context constants like for other things
> which are implementation dependent (I assume all drivers will want to set
> this to the same value for both queries), and set it to GL_UNDEFINED_VERTEX
> which is correct for everybody (and drivers can override it).
>
> Compile-tested only.
> ---
>   src/mesa/main/context.c          | 3 +++
>   src/mesa/main/get_hash_params.py | 4 ++--
>   src/mesa/main/mtypes.h           | 3 +++
>   3 files changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
> index be542dd..d6c14af 100644
> --- a/src/mesa/main/context.c
> +++ b/src/mesa/main/context.c
> @@ -654,6 +654,9 @@ _mesa_init_constants(struct gl_constants *consts, gl_api api)
>      /* GL_EXT_provoking_vertex */
>      consts->QuadsFollowProvokingVertexConvention = GL_TRUE;
>
> +   /** GL_ARB_viewport_array */
> +   consts->LayerAndVPIndexProvokingVertex = GL_UNDEFINED_VERTEX;
> +
>      /* GL_EXT_transform_feedback */
>      consts->MaxTransformFeedbackBuffers = MAX_FEEDBACK_BUFFERS;
>      consts->MaxTransformFeedbackSeparateComponents = 4 * MAX_FEEDBACK_ATTRIBS;
> diff --git a/src/mesa/main/get_hash_params.py b/src/mesa/main/get_hash_params.py
> index 9b22b91..3019533 100644
> --- a/src/mesa/main/get_hash_params.py
> +++ b/src/mesa/main/get_hash_params.py
> @@ -851,8 +851,8 @@ descriptor=[
>     [ "MAX_VIEWPORTS", "CONTEXT_INT(Const.MaxViewports), extra_ARB_viewport_array" ],
>     [ "VIEWPORT_SUBPIXEL_BITS", "CONTEXT_INT(Const.ViewportSubpixelBits), extra_ARB_viewport_array" ],
>     [ "VIEWPORT_BOUNDS_RANGE", "CONTEXT_FLOAT2(Const.ViewportBounds), extra_ARB_viewport_array" ],
> -  [ "LAYER_PROVOKING_VERTEX", "CONTEXT_ENUM(Light.ProvokingVertex), extra_ARB_viewport_array" ],
> -  [ "VIEWPORT_INDEX_PROVOKING_VERTEX", "CONTEXT_ENUM(Light.ProvokingVertex), extra_ARB_viewport_array" ],
> +  [ "LAYER_PROVOKING_VERTEX", "CONTEXT_ENUM(Const.LayerAndVPIndexProvokingVertex), extra_ARB_viewport_array" ],
> +  [ "VIEWPORT_INDEX_PROVOKING_VERTEX", "CONTEXT_ENUM(Const.LayerAndVPIndexProvokingVertex), extra_ARB_viewport_array" ],
>
>   # GL_ARB_gpu_shader5
>     [ "MAX_GEOMETRY_SHADER_INVOCATIONS", "CONST(MAX_GEOMETRY_SHADER_INVOCATIONS), extra_ARB_gpu_shader5" ],
> diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
> index d425571..6c8cc59 100644
> --- a/src/mesa/main/mtypes.h
> +++ b/src/mesa/main/mtypes.h
> @@ -3449,6 +3449,9 @@ struct gl_constants
>      /** GL_EXT_provoking_vertex */
>      GLboolean QuadsFollowProvokingVertexConvention;
>
> +   /** GL_ARB_viewport_array */
> +   GLenum LayerAndVPIndexProvokingVertex;
> +
>      /** OpenGL version 3.0 */
>      GLbitfield ContextFlags;  /**< Ex: GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT */
>
>

LGTM.  Though, I'm curious what other vendors are doing.

Reviewed-by: Brian Paul <brianp at vmware.com>

cc stable branch?




More information about the mesa-dev mailing list