From 56bea2a26681967c415a8643bfc87a283a437f03 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Mon, 31 Jul 2017 14:07:07 +0200 Subject: [PATCH] mesa: only check errors when the state change in glPointSize() MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit When this GL call is a no-op, it should be a little faster in the errors path only. Signed-off-by: Samuel Pitoiset Reviewed-by: Nicolai Hähnle --- src/mesa/main/points.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/mesa/main/points.c b/src/mesa/main/points.c index 30bd7b89522..095e2a3d707 100644 --- a/src/mesa/main/points.c +++ b/src/mesa/main/points.c @@ -40,12 +40,17 @@ * \param size point diameter in pixels * \sa glPointSize(). */ -static void -point_size(struct gl_context *ctx, GLfloat size) +static ALWAYS_INLINE void +point_size(struct gl_context *ctx, GLfloat size, bool no_error) { if (ctx->Point.Size == size) return; + if (!no_error && size <= 0.0F) { + _mesa_error(ctx, GL_INVALID_VALUE, "glPointSize"); + return; + } + FLUSH_VERTICES(ctx, _NEW_POINT); ctx->Point.Size = size; @@ -58,7 +63,7 @@ void GLAPIENTRY _mesa_PointSize_no_error(GLfloat size) { GET_CURRENT_CONTEXT(ctx); - point_size(ctx, size); + point_size(ctx, size, true); } @@ -66,13 +71,7 @@ void GLAPIENTRY _mesa_PointSize( GLfloat size ) { GET_CURRENT_CONTEXT(ctx); - - if (size <= 0.0F) { - _mesa_error( ctx, GL_INVALID_VALUE, "glPointSize" ); - return; - } - - point_size(ctx, size); + point_size(ctx, size, false); } -- 2.11.0