drm-lease: Add Multi-GPU Support (#10099)

This commit is contained in:
Joel-Valenciano
2025-06-13 08:17:32 -05:00
committed by GitHub
parent d14f81e6ac
commit ad85406220
4 changed files with 111 additions and 73 deletions

View File

@@ -203,10 +203,14 @@ CProtocolManager::CProtocolManager() {
if (b->type() != Aquamarine::AQ_BACKEND_DRM)
continue;
PROTO::lease = makeUnique<CDRMLeaseProtocol>(&wp_drm_lease_device_v1_interface, 1, "DRMLease");
if (*PENABLEEXPLICIT)
auto lease = makeShared<CDRMLeaseProtocol>(&wp_drm_lease_device_v1_interface, 1, "DRMLease", b);
if (lease->good())
PROTO::lease.emplace(lease->getDeviceName(), lease);
else
lease.reset();
if (*PENABLEEXPLICIT && !PROTO::sync)
PROTO::sync = makeUnique<CDRMSyncobjProtocol>(&wp_linux_drm_syncobj_manager_v1_interface, 1, "DRMSyncobj");
break;
}
if (!g_pHyprOpenGL->getDRMFormats().empty()) {
@@ -281,7 +285,9 @@ CProtocolManager::~CProtocolManager() {
PROTO::xdgTag.reset();
PROTO::xdgBell.reset();
PROTO::lease.reset();
for (auto& [_, lease] : PROTO::lease) {
lease.reset();
}
PROTO::sync.reset();
PROTO::mesaDRM.reset();
PROTO::linuxDma.reset();