diff options
| author | UjinT34 <41110182+UjinT34@users.noreply.github.com> | 2026-02-10 17:55:21 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-02-10 14:55:21 +0000 |
| commit | ff061d177e86435a0d9f5605153a4567e2fcd88b (patch) | |
| tree | 5c5fad1a485b2af162e3d3e11aecacaa8e03834f /src/managers/ProtocolManager.cpp | |
| parent | 407a623801b8cb5b863e5056b2d5a195452776fa (diff) | |
protocols: commit and presentation timing fixes (#13174)
* move commit timing fields to surface state
* fix toTimespec init
* update sendQueued api
* update onPresented api
* set zero copy flag
* send clock id
* move presented calcs inside condition
* use only CLOCK_MONOTONIC for commit/presentation timings
* fix setSetTimestamp
* do not wait for commit timing while tearing
* proto config
* fix config defaults
Diffstat (limited to 'src/managers/ProtocolManager.cpp')
| -rw-r--r-- | src/managers/ProtocolManager.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/managers/ProtocolManager.cpp b/src/managers/ProtocolManager.cpp index fe4e3c7f..6376f2a0 100644 --- a/src/managers/ProtocolManager.cpp +++ b/src/managers/ProtocolManager.cpp @@ -107,6 +107,8 @@ CProtocolManager::CProtocolManager() { static const auto PENABLECM = CConfigValue<Hyprlang::INT>("render:cm_enabled"); static const auto PDEBUGCM = CConfigValue<Hyprlang::INT>("debug:full_cm_proto"); + static const auto PENABLECT = CConfigValue<Hyprlang::INT>("render:commit_timing_enabled"); + // Outputs are a bit dumb, we have to agree. static auto P = g_pHookSystem->hookDynamic("monitorAdded", [this](void* self, SCallbackInfo& info, std::any param) { auto M = std::any_cast<PHLMONITOR>(param); @@ -194,7 +196,9 @@ CProtocolManager::CProtocolManager() { PROTO::extDataDevice = makeUnique<CExtDataDeviceProtocol>(&ext_data_control_manager_v1_interface, 1, "ExtDataDevice"); PROTO::pointerWarp = makeUnique<CPointerWarpProtocol>(&wp_pointer_warp_v1_interface, 1, "PointerWarp"); PROTO::fifo = makeUnique<CFifoProtocol>(&wp_fifo_manager_v1_interface, 1, "Fifo"); - PROTO::commitTiming = makeUnique<CCommitTimingProtocol>(&wp_commit_timing_manager_v1_interface, 1, "CommitTiming"); + + if (*PENABLECT) + PROTO::commitTiming = makeUnique<CCommitTimingProtocol>(&wp_commit_timing_manager_v1_interface, 1, "CommitTiming"); if (*PENABLECM) PROTO::colorManagement = makeUnique<CColorManagementProtocol>(&wp_color_manager_v1_interface, 1, "ColorManagement", *PDEBUGCM); |
