summaryrefslogtreecommitdiff
path: root/src/managers/ProtocolManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/managers/ProtocolManager.cpp')
-rw-r--r--src/managers/ProtocolManager.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/managers/ProtocolManager.cpp b/src/managers/ProtocolManager.cpp
index eac6dee0..ebd90a45 100644
--- a/src/managers/ProtocolManager.cpp
+++ b/src/managers/ProtocolManager.cpp
@@ -70,6 +70,7 @@
#include "content-type-v1.hpp"
#include <aquamarine/buffer/Buffer.hpp>
+#include <xf86drm.h>
#include <aquamarine/backend/Backend.hpp>
#include <hyprutils/memory/UniquePtr.hpp>
@@ -210,8 +211,13 @@ CProtocolManager::CProtocolManager() {
else
lease.reset();
- if (g_pHyprOpenGL->m_exts.EGL_ANDROID_native_fence_sync_ext && !PROTO::sync)
- PROTO::sync = makeUnique<CDRMSyncobjProtocol>(&wp_linux_drm_syncobj_manager_v1_interface, 1, "DRMSyncobj");
+ if (g_pHyprOpenGL->m_exts.EGL_ANDROID_native_fence_sync_ext && !PROTO::sync) {
+ if (g_pCompositor->supportsDrmSyncobjTimeline()) {
+ PROTO::sync = makeUnique<CDRMSyncobjProtocol>(&wp_linux_drm_syncobj_manager_v1_interface, 1, "DRMSyncobj");
+ Debug::log(LOG, "DRM Syncobj Timeline support detected, enabling explicit sync protocol");
+ } else
+ Debug::log(WARN, "DRM Syncobj Timeline not supported, skipping explicit sync protocol");
+ }
}
if (!g_pHyprOpenGL->getDRMFormats().empty()) {