With all things equal (i.e. same output preferences), use the largest output as the primary. From the primary, we choose compatible modes for the others, and given that we are configuring an extended desktop, we have greater freedom in our selection and may as well base our choice on the largest mode available.
Signed-off-by: Chris Wilson <[email protected]> --- hw/xfree86/modes/xf86Crtc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c index 966a168..048c3b2 100644 --- a/hw/xfree86/modes/xf86Crtc.c +++ b/hw/xfree86/modes/xf86Crtc.c @@ -2413,7 +2413,10 @@ xf86TargetFallback(ScrnInfoPtr scrn, xf86CrtcConfigPtr config, default_preferred = (((default_mode->type & M_T_PREFERRED) != 0) + ((default_mode->type & M_T_USERPREF) != 0)); - if (default_preferred > target_preferred || !target_mode) { + if (!target_mode || + default_preferred > target_preferred || + (default_preferred == target_preferred && + biggestMode(default_mode, target_mode))) { target_mode = default_mode; target_preferred = default_preferred; target_rotation = config->output[o]->initial_rotation; -- 2.9.3 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
