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.

Reply via email to