[Piglit] [PATCH] ext_timer_query-time-elapsed: make results more reliable
Vadim Girlin
vadimgirlin at gmail.com
Fri Aug 31 19:08:39 PDT 2012
Sorry, it seems the patch is wrong, please ignore it.
Vadim
>
On Sat, 2012-09-01 at 00:01 +0400, Vadim Girlin wrote:
> The test results aren't very reliable depending on the current cpu/gpu load
> etc, so it fails sometimes with r600g. AFAICS it's not expected to be running
> concurrently with other apps/tests.
>
> We can decrease the effect of high cpu load by using clock() instead of
> gettimeofday().
> ---
>
> The problem is reproducible for me with r600g and ~10 of
> "vblank_mode=0 glxgears" running in parallel - 10 of 10 test runs failed.
> With this patch 10 of 10 test runs passed.
>
> tests/spec/ext_timer_query/time-elapsed.c | 21 +++------------------
> 1 file changed, 3 insertions(+), 18 deletions(-)
>
> diff --git a/tests/spec/ext_timer_query/time-elapsed.c b/tests/spec/ext_timer_query/time-elapsed.c
> index ce27ce0..9350ca9 100644
> --- a/tests/spec/ext_timer_query/time-elapsed.c
> +++ b/tests/spec/ext_timer_query/time-elapsed.c
> @@ -29,7 +29,7 @@
> * Test TIME_ELAPSED and TIMESTAMP queries.
> */
>
> -#include <sys/time.h>
> +#include <time.h>
>
> PIGLIT_GL_TEST_MAIN(
> 128 /*window_width*/,
> @@ -44,23 +44,8 @@ enum {
> static float
> get_time(void)
> {
> - static bool inited = false;
> - static time_t base_sec = 0;
> - struct timeval tv;
> -
> - gettimeofday(&tv, NULL);
> -
> - /* Return a value that is roughly seconds since program
> - * startup, to avoid large tv_sec reducing precision of the
> - * return value.
> - */
> - if (!inited) {
> - inited = true;
> - base_sec = tv.tv_sec;
> - }
> - tv.tv_sec -= base_sec;
> -
> - return (double)tv.tv_sec + tv.tv_usec / 1000000.0;
> + clock_t clk = clock();
> + return ((double)clk) / CLOCKS_PER_SEC;
> }
>
> static float
More information about the Piglit
mailing list