diff options
author | Christopher Michael <cp.michael@samsung.com> | 2019-05-22 07:37:36 -0400 |
---|---|---|
committer | Christopher Michael <cp.michael@samsung.com> | 2019-05-22 07:44:00 -0400 |
commit | af70c4ff6d51a64bca4f11d7dd61bb29c96ef0b7 (patch) | |
tree | bb42617469fbc545b1d375c4db0c4c236d1419d6 | |
parent | ead88ff2ad67d5cef94b7095baba65a730659d07 (diff) | |
download | efl-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.c | 11 |
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); */ |