Am 01.12.2015 um 20:35 schrieb Brian Paul: > On 12/01/2015 12:07 PM, srol...@vmware.com wrote: >> From: Roland Scheidegger <srol...@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. nvidia returns GL_PROVOKING_VERTEX (for both queries).
Roland > > Reviewed-by: Brian Paul <bri...@vmware.com> > > cc stable branch? Yes, makes sense. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev