This is an automated email from the git hooks/post-receive script.
git pushed a commit to branch devs/devilhorns/apos
in repository efl.
View the commit online.
commit 038b8c154a2c74dce9c856d7e0de770a39465ee2
Author: Christopher Michael <[email protected]>
AuthorDate: Tue Aug 26 07:33:21 2025 -0500
ecore_drm2: Add API to return if a given device supports vblank
---
src/lib/ecore_drm2/Ecore_Drm2.h | 1 +
src/lib/ecore_drm2/ecore_drm2_device.c | 8 ++++++++
src/lib/ecore_drm2/ecore_drm2_private.h | 1 +
3 files changed, 10 insertions(+)
diff --git a/src/lib/ecore_drm2/Ecore_Drm2.h b/src/lib/ecore_drm2/Ecore_Drm2.h
index c0466efa49..52906cb3e8 100644
--- a/src/lib/ecore_drm2/Ecore_Drm2.h
+++ b/src/lib/ecore_drm2/Ecore_Drm2.h
@@ -99,6 +99,7 @@ EAPI void ecore_drm2_device_pointer_xy_get(Ecore_Drm2_Device *dev, int *x, int *
EAPI void ecore_drm2_device_pointer_warp(Ecore_Drm2_Device *dev, int x, int y);
EAPI int ecore_drm2_device_fd_get(Ecore_Drm2_Device *dev);
EAPI void ecore_drm2_device_window_set(Ecore_Drm2_Device *dev, unsigned int window);
+EAPI Eina_Bool ecore_drm2_device_vblank_supported(Ecore_Drm2_Device *dev);
/* Display API functions */
EAPI char *ecore_drm2_display_name_get(Ecore_Drm2_Display *disp);
diff --git a/src/lib/ecore_drm2/ecore_drm2_device.c b/src/lib/ecore_drm2/ecore_drm2_device.c
index c40d081654..2c4f79aec5 100644
--- a/src/lib/ecore_drm2/ecore_drm2_device.c
+++ b/src/lib/ecore_drm2/ecore_drm2_device.c
@@ -203,6 +203,7 @@ _ecore_drm2_device_kms_caps_get(Ecore_Drm2_Device *dev)
/* NB: This is NOT necessarily needed for ATOMIC support */
ret = sym_drmGetCap(dev->fd, DRM_CAP_CRTC_IN_VBLANK_EVENT, &cap);
if (ret != 0) cap = 0;
+ dev->has_vblank = ((ret == 0) && (cap == 1));
/* try to enable atomic modesetting support */
ret = sym_drmSetClientCap(dev->fd, DRM_CLIENT_CAP_ATOMIC, 1);
@@ -504,3 +505,10 @@ ecore_drm2_device_window_set(Ecore_Drm2_Device *dev, unsigned int window)
EINA_SAFETY_ON_NULL_RETURN(dev->em);
elput_manager_window_set(dev->em, window);
}
+
+EAPI Eina_Bool
+ecore_drm2_device_vblank_supported(Ecore_Drm2_Device *dev)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(dev, EINA_FALSE);
+ return dev->has_vblank;
+}
diff --git a/src/lib/ecore_drm2/ecore_drm2_private.h b/src/lib/ecore_drm2/ecore_drm2_private.h
index 215554fcce..e04d69595c 100644
--- a/src/lib/ecore_drm2/ecore_drm2_private.h
+++ b/src/lib/ecore_drm2/ecore_drm2_private.h
@@ -386,6 +386,7 @@ struct _Ecore_Drm2_Device
/* Eina_Bool gbm_mods : 1; */
Eina_Bool aspect_ratio : 1;
Eina_Bool hw_cursor : 1;
+ Eina_Bool has_vblank : 1;
};
/* internal function prototypes */
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.