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

Reply via email to