[PATCH xserver] present: fix msc offset calculation in window mode

Roman Gilg subdiff at gmail.com
Fri Apr 20 15:10:06 UTC 2018


Instead of getting the current msc value from the window, which might be
different to old one directly take the last saved msc value saved in
the window_priv struct.

Signed-off-by: Roman Gilg <subdiff at gmail.com>
---
 present/present_wnmd.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/present/present_wnmd.c b/present/present_wnmd.c
index 72bda2f..80ffb01 100644
--- a/present/present_wnmd.c
+++ b/present/present_wnmd.c
@@ -518,8 +518,6 @@ present_wnmd_window_to_crtc_msc(WindowPtr window, RRCrtcPtr crtc, uint64_t windo
     present_window_priv_ptr window_priv = present_get_window_priv(window, TRUE);
 
     if (crtc != window_priv->crtc) {
-        uint64_t old_ust, old_msc;
-
         if (window_priv->crtc == PresentCrtcNeverSet) {
             window_priv->msc_offset = 0;
         } else {
@@ -527,10 +525,7 @@ present_wnmd_window_to_crtc_msc(WindowPtr window, RRCrtcPtr crtc, uint64_t windo
              * we'll just use whatever previous MSC we'd seen from this CRTC
              */
 
-            if (present_wnmd_get_ust_msc(window->drawable.pScreen, window, &old_ust, &old_msc) != Success)
-                old_msc = window_priv->msc;
-
-            window_priv->msc_offset += new_msc - old_msc;
+            window_priv->msc_offset += new_msc - window_priv->msc;
         }
         window_priv->crtc = crtc;
     }
-- 
2.7.4



More information about the xorg-devel mailing list