From: Samuel Pitoiset Date: Mon, 31 Jul 2017 12:07:07 +0000 (+0200) Subject: mesa: only check errors when the state change in glPointSize() X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=56bea2a26681967c415a8643bfc87a283a437f03;p=mesa.git mesa: only check errors when the state change in glPointSize() 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 --- 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); }