From cca0f48b74e87f86244f5773c42d9ade84683f3b Mon Sep 17 00:00:00 2001 From: vaxerski Date: Tue, 18 Mar 2025 11:30:01 +0000 Subject: renderer: add an option to disable cm and auto-skip cm if not necessary fixes #9641 adds render:cm_enabled default true --- src/managers/ProtocolManager.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/managers/ProtocolManager.cpp') diff --git a/src/managers/ProtocolManager.cpp b/src/managers/ProtocolManager.cpp index 992ace20..06987dae 100644 --- a/src/managers/ProtocolManager.cpp +++ b/src/managers/ProtocolManager.cpp @@ -98,6 +98,7 @@ void CProtocolManager::onMonitorModeChange(PHLMONITOR pMonitor) { CProtocolManager::CProtocolManager() { static const auto PENABLEEXPLICIT = CConfigValue("render:explicit_sync"); + static const auto PENABLECM = CConfigValue("render:cm_enabled"); static const auto PENABLEXXCM = CConfigValue("experimental:xx_color_management_v4"); static const auto PDEBUGCM = CConfigValue("debug:full_cm_proto"); @@ -181,14 +182,17 @@ CProtocolManager::CProtocolManager() { PROTO::ctm = makeUnique(&hyprland_ctm_control_manager_v1_interface, 2, "CTMControl"); PROTO::hyprlandSurface = makeUnique(&hyprland_surface_manager_v1_interface, 2, "HyprlandSurface"); PROTO::contentType = makeUnique(&wp_content_type_manager_v1_interface, 1, "ContentType"); - PROTO::colorManagement = makeUnique(&wp_color_manager_v1_interface, 1, "ColorManagement", *PDEBUGCM); - // please read the top of this file before adding another protocol - if (*PENABLEXXCM) { + if (*PENABLECM) + PROTO::colorManagement = makeUnique(&wp_color_manager_v1_interface, 1, "ColorManagement", *PDEBUGCM); + + if (*PENABLEXXCM && *PENABLECM) { PROTO::xxColorManagement = makeUnique(&xx_color_manager_v4_interface, 1, "XXColorManagement"); PROTO::frogColorManagement = makeUnique(&frog_color_management_factory_v1_interface, 1, "FrogColorManagement"); } + // ! please read the top of this file before adding another protocol + for (auto const& b : g_pCompositor->m_pAqBackend->getImplementations()) { if (b->type() != Aquamarine::AQ_BACKEND_DRM) continue; -- cgit v1.2.3