On 2018-04-20 05:10 PM, Roman Gilg wrote: > 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 <subd...@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;
This is working around an issue in xwl_present_get_ust_msc (it doesn't return consistent MSC values for a window which has been unmapped and mapped again). This change might do the wrong thing with another backend which has real CRTCs and returns consistent MSC values for them. That said, maybe this is the best that can be done to address the immediate issue, but it might be good to at least add a comment saying this is a kludge which should be revisited after 1.20. -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Mesa and X developer _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel