summaryrefslogtreecommitdiff
path: root/src/helpers/Monitor.hpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2025-10-27 13:34:08 +0000
committerVaxry <vaxry@vaxry.net>2025-10-27 13:34:14 +0000
commit560c53d87dedf7df8185eb370cfbf3575826e85c (patch)
tree0087bc0c761ec5502b0c880c952126b85e928aa5 /src/helpers/Monitor.hpp
parentfd42e9d0826e8af71dd6dc40e10f590169afae6d (diff)
monitor/dpms: fix possible invalid state
If dpms gets immediately re-enabled, a commit could fail, not schedule any frames anymore, and the monitor would be stuck off. Fix this by adding a timer to retry if commit fails. ref #12045
Diffstat (limited to 'src/helpers/Monitor.hpp')
-rw-r--r--src/helpers/Monitor.hpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/helpers/Monitor.hpp b/src/helpers/Monitor.hpp
index 687fc049..ff697725 100644
--- a/src/helpers/Monitor.hpp
+++ b/src/helpers/Monitor.hpp
@@ -68,6 +68,7 @@ struct SMonitorRule {
class CMonitor;
class CSyncTimeline;
class CEGLSync;
+class CEventLoopTimer;
class CMonitorState {
public:
@@ -138,6 +139,8 @@ class CMonitor {
bool m_createdByUser = false;
bool m_isUnsafeFallback = false;
+ SP<CEventLoopTimer> m_dpmsRetryTimer;
+
bool m_pendingFrame = false; // if we schedule a frame during rendering, reschedule it after
bool m_renderingActive = false;