summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>2017-07-31 14:07:07 +0200
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>2017-07-31 19:08:44 +0200
commit56bea2a26681967c415a8643bfc87a283a437f03 (patch)
treebb764ad9f4801c763dfb80f1c201242f26ace753
parentc6ba70297992aaee4fa31ad3b1c4c0b6a1305177 (diff)
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>
-rw-r--r--src/mesa/main/points.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/mesa/main/points.c b/src/mesa/main/points.c
index 30bd7b8952..095e2a3d70 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);
}