Chris Wilson <[email protected]> writes:

> As the CRTCs may be reconfigured between each invocation, we can not
> assume that the previous CRTC we used last time will still be valid for
> this call.

Is this a problem with CRTCs that are deleted? If so, hooking crtc
destruction would be pretty easy.

> diff --git a/present/present.c b/present/present.c
> index e35de94..d1bb9d4 100644
> --- a/present/present.c
> +++ b/present/present.c
> @@ -673,15 +673,8 @@ present_pixmap(WindowPtr window,
>  
>      if (!screen_priv || !screen_priv->info)
>          target_crtc = NULL;
> -    else if (!target_crtc) {
> -        /* Update the CRTC if we have a pixmap or we don't have a CRTC
> -         */
> -        if (!pixmap)
> -            target_crtc = window_priv->crtc;
> -
> -        if (!target_crtc)
> -            target_crtc = present_get_crtc(window);
> -    }
> +    else if (!target_crtc)
> +        target_crtc = present_get_crtc(window);

This only changes the behavior for notify_msc, and what we want there is
to continue using the same CRTC that the last swap used so that the
values are reasonable. All presents with a pixmap will continue to call
present_get_crtc each time.

-- 
[email protected]

Attachment: pgpj6v2zyhy20.pgp
Description: PGP signature

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to