The above uses clock_gettime(CLOCK_MONOTONIC) (when available) rather than gettimeofday(). The former has greather precision and could help with the inconsintent results that people are getting.
Signed-off-by: Emil Velikov <emil.l.veli...@gmail.com> --- tests/spec/arb_timer_query/timestamp-get.c | 31 ++++-------------------------- 1 file changed, 4 insertions(+), 27 deletions(-) diff --git a/tests/spec/arb_timer_query/timestamp-get.c b/tests/spec/arb_timer_query/timestamp-get.c index e09a54c..6a7ee5a 100644 --- a/tests/spec/arb_timer_query/timestamp-get.c +++ b/tests/spec/arb_timer_query/timestamp-get.c @@ -24,10 +24,6 @@ #include "piglit-util-gl.h" #include <inttypes.h> /* for PRIu64 macro */ -#if !defined(_WIN32) && !defined(WIN32) -#include <unistd.h> -#include <sys/time.h> -#endif /** * @file timestamp-get.c @@ -62,25 +58,6 @@ get_gpu_time_via_get(GLuint q) return time; } -static GLint64 -get_cpu_time(void) -{ -#if defined(_WIN32) || defined(WIN32) - static LARGE_INTEGER frequency; - LARGE_INTEGER counter; - - if(!frequency.QuadPart) - QueryPerformanceFrequency(&frequency); - QueryPerformanceCounter(&counter); - return (GLint64)(counter.QuadPart * INT64_C(1000000000)/frequency.QuadPart); -#else - struct timeval tv; - - gettimeofday(&tv, 0); - return (GLint64)tv.tv_sec * 1000000000 + (GLint64)tv.tv_usec * 1000; -#endif -} - static void validate_times(GLint64 t1, GLint64 t2, GLint64 tolerance) { @@ -113,13 +90,13 @@ piglit_display(void) get_gpu_time_via_query(q); /* compute a reasonable tolerance based on driver overhead */ - t1 = get_cpu_time(); + t1 = piglit_time_get_nano(); get_gpu_time_via_query(q); - query_overhead = get_cpu_time() - t1; + query_overhead = piglit_time_get_nano() - t1; - t1 = get_cpu_time(); + t1 = piglit_time_get_nano(); get_gpu_time_via_get(q); - get_overhead = get_cpu_time() - t1; + get_overhead = piglit_time_get_nano() - t1; printf("glGet overhead: %" PRIu64 " us\n", (uint64_t) get_overhead / 1000); printf("glQuery overhead: %" PRIu64 " us\n", (uint64_t) query_overhead / 1000); -- 2.1.3 _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit