summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2021-02-03 02:26:54 +0000
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2021-02-03 02:26:54 +0000
commit90e5fd831d11a0d378999b90a3c24e6ecef2a284 (patch)
tree838cdf87bf0aa0ee8745f5186498c340a6bf3ce4
parent4013c98af15779e71d3a86ac03dd18796cbdf0e6 (diff)
downloadefl-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.c12
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