diff options
| author | Vaxry <vaxry@vaxry.net> | 2025-10-27 13:34:08 +0000 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2025-10-27 13:34:14 +0000 |
| commit | 560c53d87dedf7df8185eb370cfbf3575826e85c (patch) | |
| tree | 0087bc0c761ec5502b0c880c952126b85e928aa5 /src/helpers/Monitor.hpp | |
| parent | fd42e9d0826e8af71dd6dc40e10f590169afae6d (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.hpp | 3 |
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; |
