diff options
author | Christopher Michael <cp.michael@samsung.com> | 2019-05-22 07:35:45 -0400 |
---|---|---|
committer | Christopher Michael <cp.michael@samsung.com> | 2019-05-22 07:44:00 -0400 |
commit | ead88ff2ad67d5cef94b7095baba65a730659d07 (patch) | |
tree | 0cd22db9650ae3b18832274cf6bbde7d87dd2fd6 /src/lib/ecore_drm2/ecore_drm2_device.c | |
parent | 3081d9b8ea5c411fe0dd75b08a65d556103e1409 (diff) |
ecore-drm2: Add API to check if vblank is supported
This patch adds a small API that we can use to check if the current
video driver supports the usage of drmWaitVBlank. This check is
required for certain drivers (like vbox) which do not support
drmWaitVBlank and thus are causing our animators in ecore_evas to
freeze. We can now use this API from within Ecore_Evas to disable
vsync'd animators and fall back to timer based ones.
@feature
Diffstat (limited to '')
-rw-r--r-- | src/lib/ecore_drm2/ecore_drm2_device.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/lib/ecore_drm2/ecore_drm2_device.c b/src/lib/ecore_drm2/ecore_drm2_device.c index b95a5a7d9e..c86df1a271 100644 --- a/src/lib/ecore_drm2/ecore_drm2_device.c +++ b/src/lib/ecore_drm2/ecore_drm2_device.c | |||
@@ -891,6 +891,23 @@ ecore_drm2_device_fd_get(Ecore_Drm2_Device *device) | |||
891 | return device->fd; | 891 | return device->fd; |
892 | } | 892 | } |
893 | 893 | ||
894 | EAPI Eina_Bool | ||
895 | ecore_drm2_vblank_supported(Ecore_Drm2_Device *dev) | ||
896 | { | ||
897 | drmVBlank tmp; | ||
898 | int ret = 0; | ||
899 | |||
900 | EINA_SAFETY_ON_NULL_RETURN_VAL(dev, EINA_FALSE); | ||
901 | |||
902 | memset(&tmp, 0, sizeof(drmVBlank)); | ||
903 | tmp.request.type = DRM_VBLANK_RELATIVE; | ||
904 | |||
905 | ret = sym_drmWaitVBlank(dev->fd, &tmp); | ||
906 | |||
907 | if (ret != 0) return EINA_FALSE; | ||
908 | return EINA_TRUE; | ||
909 | } | ||
910 | |||
894 | /* prevent crashing with old apps compiled against these functions */ | 911 | /* prevent crashing with old apps compiled against these functions */ |
895 | EAPI void ecore_drm2_device_keyboard_cached_context_set(){}; | 912 | EAPI void ecore_drm2_device_keyboard_cached_context_set(){}; |
896 | EAPI void ecore_drm2_device_keyboard_cached_keymap_set(){}; | 913 | EAPI void ecore_drm2_device_keyboard_cached_keymap_set(){}; |