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 <samuel.pitoiset@gmail.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
Samuel Pitoiset 2017-07-31 14:07:07 +02:00
parent c6ba702979
commit 56bea2a266

View file

@ -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);
}