Public bug reported:

[Impact]
Users on X11 are unable to set sane configurations for mixed hidpi/lowdpi 
multi-monitor setups.  A limitation in Mutter prevents gnome-control-center 
(and any other users of the dbus api or monitors.xml) from changing even 
unrelated display settings unless 1x scaling factor is chosen.  There is no 
user-facing reason why, the settings just won't apply.

This applies to X11 and not Wayland.  All NVIDIA users and some others
who require X for the time being are affected when using mixed-dpi
setups.  This especially affects System76 customers, since the patch is
required for the automatic multi-monitor setup to work.

[Description]
When plugging in an external 1920 x 1080 monitor to a laptop with a hipdi 
screen (e.g. 13" 3200x1800), mutter automatically configures the two displays 
next to each other and keeps the 2x scale factor.

If the user sets the scale factor (using the control center, the dbus
api, or the monitors.xml file), they will be stuck at 1x and everything
will be tiny on the internal display.  It's not possible to set the
scale factor back to 2x, and any attempts to do so will result in mutter
complaining that "Logical monitor scales must be identical" or "Scale 2
not valid for resolution 1920x1080".

The user can't even move the external display from the right of the
internal to the left without selecting 1x scaling.  The configuration
simply won't apply.

Mutter prevents applying a scale to a logical display if it would result
in a logical resolution less than 800x600.  On X11, all displays must
have the same scaling factor.

The primary reason to prevent setting a too-high a scale factor is that
a user may get stuck in an unusable state.  The proposed patch, enables
Mutter to apply a given scale factor if at least one display supports
it.

[Test Case]
1) Install Ubuntu 17.10 on a laptop with a hidpi display.  By default, Gnome 
should be correctly scaled at 2x.  If you have previously configured this 
setup, you will have to delete the monitors.xml file and reboot.
2) Plug in a 1920x1080 monitor.  
At this point, both monitors should be scaled at 2x because Mutter has not 
received a request to change the display configuration.
3) Now open gnome-control center and attempt to change a display setting like 
moving the external 1920x1080 display from the right to the left side of the 
internal display.  This should be a valid thing to do.  However, there will be 
no apply button.
4) Now, set the scale factor from 2x to 1x.  The apply button will now show.  
Clicking apply will make the external display the right scale, but everything 
will be very tiny on the internal display.
With the patch, you should be able to make changes without switching from 2x to 
1x.

[Regression Potential]
Potential regressions are likely to manifest in the checking of display scale 
factors.  It's possible that corner cases exist where a user might be able to 
apply a scale factor that's too big/small for their use.  However, the current 
situation is already a regression from Ubuntu 17.04 that prevents proper 
monitor configuration.

[Upstream Bug]
https://bugzilla.gnome.org/show_bug.cgi?id=788901

** Affects: mutter (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: hidpi multi-monitor mutter system76

** Patch added: "monitor-managerxrandr-Use-a-single-supported-scale.patch"
   
https://bugs.launchpad.net/bugs/1724024/+attachment/4972934/+files/monitor-managerxrandr-Use-a-single-supported-scale.patch

-- 
You received this bug notification because you are a member of Ubuntu
Desktop Bugs, which is subscribed to mutter in Ubuntu.
https://bugs.launchpad.net/bugs/1724024

Title:
  can't set usable scale for hidpi internal display if when using
  external display less than 1600x1200

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/mutter/+bug/1724024/+subscriptions

-- 
desktop-bugs mailing list
desktop-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/desktop-bugs

Reply via email to