summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoland Scheidegger <[email protected]>2015-12-01 20:06:59 +0100
committerRoland Scheidegger <[email protected]>2015-12-02 18:20:57 +0100
commit09f74e6ef45859a3b595e2932e2be3e7d7ab6ca0 (patch)
tree0ce024685198c2b642462dfc87d56346203a444a
parent56aff6bb4eafe35ba301f5d60027377abc4cfd9f (diff)
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 <[email protected]> CC: <[email protected]>
-rw-r--r--src/mesa/main/context.c3
-rw-r--r--src/mesa/main/get_hash_params.py4
-rw-r--r--src/mesa/main/mtypes.h3
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 0c58b302481..7a48ed2f414 100644
--- a/src/mesa/main/get_hash_params.py
+++ b/src/mesa/main/get_hash_params.py
@@ -847,8 +847,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 c1b18a409c5..1eb1e21edeb 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -3452,6 +3452,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 */