[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