diff options
| author | Tom Englund <tomenglund26@gmail.com> | 2025-08-24 22:32:13 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-08-24 22:32:13 +0200 |
| commit | b329ea8e96348c38c6c2c4ec18f74bdaeae09dcf (patch) | |
| tree | 14c13a7cc349a1857da2935c5573c1cb20b9575e /src/Compositor.hpp | |
| parent | ced38b1b0f46f9fbdf9d37644d27bdbd2a29af1d (diff) | |
syncobj: use rendernode for timelines (#11087)
* syncobj: use rendernode for timelines
use rendernode for timelines instead of the drmfd, some devices dont
support to use the drmfd for this.
* opengl: use rendernode if available
use rendernode if available for CHyprOpenglImpl
* MesaDRM: use the m_drmRenderNodeFD if it exist
try use the rendernode we got from AQ if it exist.
* linuxdmabuf: use rendernode if available
use the rendernode if available already from AQ
* syncobj: prefer rendernode over displaynode
prefer the rendernode over the displaynode, and log a error if
attempting to use the protocol without explicit sync support on any of
the nodes.
* syncobj: check support on both nodes always
check support on both nodes always so it can be used later for
preferring rendernode if possible in syncobj protocol.
* syncobj: remove old var in non linux if else case
remove old m_bDrmSyncobjTimelineSupported from non linux if else case
that will fail to compile on non linux. the nodes sets support by
default to false, and if non linux it wont check for support and set it
to true.
* build: bump aq requirement
bump to 0.9.3 where rendernode support got added.
* flake.lock: update
* renderer: glfinish on software renderer
software renderers apparently bug out on implicit sync, use glfinish as
with nvidia case on implicit paths.
* flake.lock: update
---------
Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
Diffstat (limited to 'src/Compositor.hpp')
| -rw-r--r-- | src/Compositor.hpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/Compositor.hpp b/src/Compositor.hpp index 70b18691..eddbe677 100644 --- a/src/Compositor.hpp +++ b/src/Compositor.hpp @@ -27,9 +27,18 @@ class CCompositor { CCompositor(bool onlyConfig = false); ~CCompositor(); - wl_display* m_wlDisplay = nullptr; - wl_event_loop* m_wlEventLoop = nullptr; - int m_drmFD = -1; + wl_display* m_wlDisplay = nullptr; + wl_event_loop* m_wlEventLoop = nullptr; + struct { + int fd = -1; + bool syncobjSupport = false; + } m_drm; + + struct { + int fd = -1; + bool syncObjSupport = false; + } m_drmRenderNode; + bool m_initialized = false; SP<Aquamarine::CBackend> m_aqBackend; @@ -175,8 +184,6 @@ class CCompositor { void removeLockFile(); void setMallocThreshold(); - bool m_bDrmSyncobjTimelineSupported = false; - uint64_t m_hyprlandPID = 0; wl_event_source* m_critSigSource = nullptr; rlimit m_originalNofile = {}; |
