raster pushed a commit to branch master.
commit 604fac41662a945b89086a79815af829faa562fd
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date: Tue Jul 16 19:39:10 2013 +0900
ecore-x: vsync_animator_tick_source_set fail if drmWaitVBlank fails
---
src/lib/ecore_x/xlib/ecore_x_vsync.c | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/src/lib/ecore_x/xlib/ecore_x_vsync.c
b/src/lib/ecore_x/xlib/ecore_x_vsync.c
index a316a33..429f1fe 100644
--- a/src/lib/ecore_x/xlib/ecore_x_vsync.c
+++ b/src/lib/ecore_x/xlib/ecore_x_vsync.c
@@ -117,7 +117,7 @@ static void *drm_lib = NULL;
static Window dri_drm_vsync_root = 0;
-static void
+static Eina_Bool
_dri_drm_tick_schedule(void)
{
drmVBlank vbl;
@@ -125,7 +125,8 @@ _dri_drm_tick_schedule(void)
vbl.request.type = DRM_VBLANK_RELATIVE | DRM_VBLANK_EVENT;
vbl.request.sequence = drm_animators_interval;
vbl.request.signal = 0;
- sym_drmWaitVBlank(drm_fd, &vbl);
+ if (sym_drmWaitVBlank(drm_fd, &vbl) < 0) return EINA_FALSE;
+ return EINA_TRUE;
}
static void
@@ -148,8 +149,11 @@ _dri_drm_vblank_handler(int fd EINA_UNUSED,
unsigned int usec EINA_UNUSED,
void *data EINA_UNUSED)
{
- ecore_animator_custom_tick();
- if (drm_event_is_busy) _dri_drm_tick_schedule();
+ if (drm_event_is_busy)
+ {
+ ecore_animator_custom_tick();
+ _dri_drm_tick_schedule();
+ }
}
static Eina_Bool
@@ -271,6 +275,13 @@ _dri_drm_init(void)
drm_evctx.vblank_handler = _dri_drm_vblank_handler;
drm_evctx.page_flip_handler = NULL;
+ if (!_dri_drm_tick_schedule())
+ {
+ close(drm_fd);
+ drm_fd = -1;
+ return 0;
+ }
+
dri_drm_fdh = ecore_main_fd_handler_add(drm_fd, ECORE_FD_READ,
_dri_drm_cb, NULL, NULL, NULL);
if (!dri_drm_fdh)
--
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk