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.pitoi...@gmail.com>
---
 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 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);
 }
 
 
-- 
2.13.3

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to