core: disable esync for non-linux kernels

ref #10437, BSD doesn't support timeline fds
This commit is contained in:
Vaxry
2025-07-29 17:55:56 +02:00
parent 745a671ce6
commit 66a6ef3859
2 changed files with 10 additions and 0 deletions

View File

@@ -359,6 +359,7 @@ void CCompositor::initServer(std::string socketName, int socketFd) {
m_drmFD = m_aqBackend->drmFD();
Debug::log(LOG, "Running on DRMFD: {}", m_drmFD);
#if defined(__linux__)
if (m_drmFD >= 0) {
uint64_t cap = 0;
int ret = drmGetCap(m_drmFD, DRM_CAP_SYNCOBJ_TIMELINE, &cap);
@@ -368,6 +369,10 @@ void CCompositor::initServer(std::string socketName, int socketFd) {
m_bDrmSyncobjTimelineSupported = false;
Debug::log(LOG, "DRM syncobj timeline support: no (no DRM FD)");
}
#else
Debug::log(LOG, "DRM syncobj timeline support: no (not linux)");
m_bDrmSyncobjTimelineSupported = false;
#endif
if (!socketName.empty() && socketFd != -1) {
fcntl(socketFd, F_SETFD, FD_CLOEXEC);

View File

@@ -347,10 +347,15 @@ CHyprOpenGLImpl::CHyprOpenGLImpl() : m_drmFD(g_pCompositor->m_drmFD) {
Debug::log(LOG, "Supported EGL display extensions: ({}) {}", std::ranges::count(EGLEXTENSIONS_DISPLAY, ' '), EGLEXTENSIONS_DISPLAY);
#if defined(__linux__)
m_exts.EGL_ANDROID_native_fence_sync_ext = EGLEXTENSIONS_DISPLAY.contains("EGL_ANDROID_native_fence_sync");
if (!m_exts.EGL_ANDROID_native_fence_sync_ext)
Debug::log(WARN, "Your GPU does not support explicit sync via the EGL_ANDROID_native_fence_sync extension.");
#else
m_exts.EGL_ANDROID_native_fence_sync_ext = false;
Debug::log(WARN, "Forcefully disabling explicit sync: BSD is missing support for proper timeline export");
#endif
#ifdef USE_TRACY_GPU