From 69df6ac27287bdc47d843da6dbd9bdbc6cb6a6fa Mon Sep 17 00:00:00 2001 From: Roland Scheidegger Date: Tue, 1 Dec 2015 20:06:59 +0100 Subject: [PATCH] mesa: fix VIEWPORT_INDEX_PROVOKING_VERTEX and LAYER_PROVOKING_VERTEX queries 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). Reviewed-by: Brian Paul CC: (cherry picked from commit 09f74e6ef45859a3b595e2932e2be3e7d7ab6ca0) --- 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 be542dd6797..d6c14afe265 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 9b22b91ac1b..3019533caae 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 d425571ba1e..6c8cc5925f1 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 */