summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/util/rounding.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/util/rounding.h b/src/util/rounding.h
index dfc691eaf13..fd343ab929b 100644
--- a/src/util/rounding.h
+++ b/src/util/rounding.h
@@ -129,4 +129,20 @@ _mesa_lroundeven(double x)
#endif
}
+/**
+ * \brief Rounds \c x to the nearest integer, with ties to the even integer,
+ * and returns the value as an int64_t.
+ */
+static inline int64_t
+_mesa_i64roundevenf(float x)
+{
+#if LONG_MAX == INT64_MAX
+ return _mesa_lroundevenf(x);
+#elif LONG_MAX == INT32_MAX
+ return llrintf(x);
+#else
+#error "Unsupported long size"
+#endif
+}
+
#endif