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
This commit is contained in:
UjinT34 2026-02-10 17:55:21 +03:00 committed by GitHub
parent 407a623801
commit ff061d177e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
14 changed files with 107 additions and 64 deletions

View file

@ -1,7 +1,6 @@
#pragma once
#include <vector>
#include <unordered_map>
#include "WaylandProtocol.hpp"
#include "commit-timing-v1.hpp"
@ -14,16 +13,12 @@ class CEventLoopTimer;
class CCommitTimerResource {
public:
CCommitTimerResource(UP<CWpCommitTimerV1>&& resource_, SP<CWLSurfaceResource> surface);
~CCommitTimerResource();
bool good();
private:
UP<CWpCommitTimerV1> m_resource;
WP<CWLSurfaceResource> m_surface;
bool m_timerPresent = false;
std::optional<Time::steady_dur> m_pendingTimeout;
SP<CEventLoopTimer> timer;
UP<CWpCommitTimerV1> m_resource;
WP<CWLSurfaceResource> m_surface;
struct {
CHyprSignalListener surfaceStateCommit;