[PATCH xserver] randr: Adjust master's last set time with slaves

Hans de Goede hdegoede at redhat.com
Thu May 26 12:31:24 UTC 2016


Hi,

On 20-05-16 07:01, Nikhil Mahale wrote:
> In prime configurations master's last set time may not be latest
> and greatest, adjust it with slaves last set time, pick up greatest
> one. Otherwise xserver may end with events which has
> lastSetTime < lastConfigTime even if that's not
> the case and confuse xrandr client.
>
> Signed-off-by: Nikhil Mahale <nmahale at nvidia.com>
> ---
>  randr/randr.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
>
> diff --git a/randr/randr.c b/randr/randr.c
> index 3aabb19..c07def1 100644
> --- a/randr/randr.c
> +++ b/randr/randr.c
> @@ -568,6 +568,7 @@ RRSetChanged(ScreenPtr pScreen)
>  void
>  RRTellChanged(ScreenPtr pScreen)
>  {
> +    ScreenPtr slave;

We already declare a "ScreenPtr iter" which is used
in other parts of this function to iterate over
the output_slave_list, please use that instead.

Regards,

Hans



>      ScreenPtr master;
>      rrScrPriv(pScreen);
>      rrScrPrivPtr mastersp;
> @@ -584,6 +585,15 @@ RRTellChanged(ScreenPtr pScreen)
>          mastersp = pScrPriv;
>      }
>
> +    xorg_list_for_each_entry(slave, &master->output_slave_list, output_head) {
> +        pSlaveScrPriv = rrGetScrPriv(slave);
> +
> +        if (CompareTimeStamps(mastersp->lastSetTime,
> +                              pSlaveScrPriv->lastSetTime) == EARLIER) {
> +            mastersp->lastSetTime = pSlaveScrPriv->lastSetTime;
> +        }
> +    }
> +
>      if (mastersp->changed) {
>          UpdateCurrentTimeIf();
>          if (mastersp->configChanged) {
>


More information about the xorg-devel mailing list