On 08/16/2017 04:42 PM, Jose Fonseca wrote:
On 16/08/17 23:37, Jose Fonseca wrote:
On 16/08/17 14:22, Brian Paul wrote:
From: Frank Richter <[email protected]>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102241
Cc: [email protected]
Reviewed-by: Brian Paul <[email protected]>
---
src/gallium/auxiliary/os/os_time.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/gallium/auxiliary/os/os_time.c
b/src/gallium/auxiliary/os/os_time.c
index e169139..e4a1cae 100644
--- a/src/gallium/auxiliary/os/os_time.c
+++ b/src/gallium/auxiliary/os/os_time.c
@@ -69,10 +69,17 @@ os_time_get_nano(void)
static LARGE_INTEGER frequency;
LARGE_INTEGER counter;
+ int64_t secs, nanosecs;
if(!frequency.QuadPart)
QueryPerformanceFrequency(&frequency);
QueryPerformanceCounter(&counter);
- return counter.QuadPart*INT64_C(1000000000)/frequency.QuadPart;
+ /* Compute seconds and nanoseconds parts separately to
+ * reduce severity of precision loss.
+ */
+ secs = counter.QuadPart / frequency.QuadPart;
+ nanosecs = (counter.QuadPart % frequency.QuadPart) *
INT64_C(1000000000)
+ / frequency.QuadPart;
+ return secs*INT64_C(1000000000) + nanosecs;
#else
Series looks great.
Thanks!
Reviewed-by: Jose Fonseca <[email protected]>
BTW, I wonder if we would win by using lldiv(). Because this is often
use for performance measurements, so these extra division might add some
impact.
Frank, do you want to look into that? In the mean time, I'll push the
patches as-is.
-Brian
_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev