summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Michael <cp.michael@samsung.com>2019-05-22 07:37:36 -0400
committerChristopher Michael <cp.michael@samsung.com>2019-05-22 07:44:00 -0400
commitaf70c4ff6d51a64bca4f11d7dd61bb29c96ef0b7 (patch)
treebb42617469fbc545b1d375c4db0c4c236d1419d6
parentead88ff2ad67d5cef94b7095baba65a730659d07 (diff)
downloadefl-af70c4ff6d51a64bca4f11d7dd61bb29c96ef0b7.tar.gz
ecore-evas-drm: Check if vblank is supported
Small patch to check if the video driver supports drmWaitVBlank. If not, we can fall back to timer based animators and avoid freezing (due to usage of vsync'd animators). @fix
-rw-r--r--src/modules/ecore_evas/engines/drm/ecore_evas_drm.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
index 2a79e6b7f1..a843f26589 100644
--- a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
+++ b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
@@ -1031,6 +1031,17 @@ _ecore_evas_new_internal(const char *device, int x, int y, int w, int h, Eina_Bo
ee->engine.func = (Ecore_Evas_Engine_Func *)&_ecore_evas_drm_engine_func;
ee->engine.data = edata;
+ if (!ecore_drm2_vblank_supported(edata->dev))
+ {
+ ee->engine.func->fn_animator_register = NULL;
+ ee->engine.func->fn_animator_unregister = NULL;
+ }
+ else
+ {
+ ee->engine.func->fn_animator_register = _drm_animator_register;
+ ee->engine.func->fn_animator_unregister = _drm_animator_unregister;
+ }
+
/* FIXME */
/* if (edata->device) ee->name = strdup(edata->device); */