diff options
author | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2021-02-03 02:26:54 +0000 |
---|---|---|
committer | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2021-02-03 02:26:54 +0000 |
commit | 90e5fd831d11a0d378999b90a3c24e6ecef2a284 (patch) | |
tree | 838cdf87bf0aa0ee8745f5186498c340a6bf3ce4 | |
parent | 4013c98af15779e71d3a86ac03dd18796cbdf0e6 (diff) | |
download | efl-90e5fd831d11a0d378999b90a3c24e6ecef2a284.tar.gz |
ecore-x - vsync - also log the direct device timestamp if it goes back
-rw-r--r-- | src/lib/ecore_x/ecore_x_vsync.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/lib/ecore_x/ecore_x_vsync.c b/src/lib/ecore_x/ecore_x_vsync.c index 26454a2ae9..5ad828d0fe 100644 --- a/src/lib/ecore_x/ecore_x_vsync.c +++ b/src/lib/ecore_x/ecore_x_vsync.c @@ -384,12 +384,20 @@ _drm_vblank_handler(int fd EINA_UNUSED, if (pframe != frame) { #define DELTA_COUNT 10 - double t = (double)sec + ((double)usec / 1000000); double tnow = ecore_time_get(); + double t = (double)sec + ((double)usec / 1000000); + unsigned long long tusec, ptusec; static double tdelta[DELTA_COUNT]; static double tdelta_avg = 0.0; static int tdelta_n = 0; + static unsigned int psec = 0, pusec = 0; + tusec = ((unsigned long long)sec) * 1000000 + usec; + ptusec = ((unsigned long long)psec) * 1000000 + pusec; + if (tusec <= ptusec) + fprintf(stderr, + "EEEEEEK! drm time went backwards! %u.%06u -> %u.%06u\n", + psec, pusec, sec, usec); if (t > tnow) { if (tdelta_n > DELTA_COUNT) @@ -420,6 +428,8 @@ _drm_vblank_handler(int fd EINA_UNUSED, _drm_fail_count = 0; _drm_send_time(t); pframe = frame; + psec = sec; + pusec = usec; } } else |