> From: Chris Wilson <[email protected]>
> Date: Sun, 13 Sep 2015 11:40:37 +0100
> 
> Before we change the state (e.g. adding a mode or applying one to an
> output), we query the screen resources for the right identifiers. This
> should only use the current information rather than force a reprobe on
> all hardware - not only can that reprobe be very slow (e.g. EDID
> timeouts on the order of seconds), but it may perturb the setup that the
> user is trying to configure.

How do you guarantee that that cached information isn't stale?

Seems you already can get the behaviour you want by specifying
--current.  Whereas there is no convenient way to force a probe, other
than an explicit query?

> Signed-off-by: Chris Wilson <[email protected]>
> ---
>  xrandr.c | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/xrandr.c b/xrandr.c
> index 181c76e..dcfdde0 100644
> --- a/xrandr.c
> +++ b/xrandr.c
> @@ -3325,7 +3325,7 @@ main (int argc, char **argv)
>      {
>       umode_t *m;
>  
> -        get_screen (current);
> +        get_screen (True);
>       get_crtcs();
>       get_outputs();
>       
> @@ -3374,7 +3374,7 @@ main (int argc, char **argv)
>      {
>       output_t *output;
>  
> -        get_screen (current);
> +        get_screen (True);
>       get_crtcs();
>       get_outputs();
>       
> @@ -3465,7 +3465,7 @@ main (int argc, char **argv)
>       if (!has_1_4)
>           fatal ("--setprovideroutputsource requires RandR 1.4\n");
>  
> -     get_screen (current);
> +     get_screen (True);
>       get_providers ();
>  
>       provider = find_provider (&provider_name);
> @@ -3480,7 +3480,7 @@ main (int argc, char **argv)
>       if (!has_1_4)
>           fatal ("--setprovideroffloadsink requires RandR 1.4\n");
>  
> -     get_screen (current);
> +     get_screen (True);
>       get_providers ();
>  
>       provider = find_provider (&provider_name);
> @@ -3490,7 +3490,7 @@ main (int argc, char **argv)
>      }
>      if (setit_1_2)
>      {
> -     get_screen (current);
> +     get_screen (True);
>       get_crtcs ();
>       get_outputs ();
>       set_positions ();
> @@ -3589,7 +3589,7 @@ main (int argc, char **argv)
>           exit(0);
>       }
>  
> -     get_screen(current);
> +     get_screen(True);
>       get_monitors(True);
>       get_crtcs();
>       get_outputs();
> -- 
> 2.5.1
> 
> _______________________________________________
> [email protected]: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel
> 
> 
_______________________________________________
[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