Bug 1091516 - gdm login screen is scaled to 200% apparently
gdm login screen is scaled to 200% apparently
Status: RESOLVED UPSTREAM
Classification: openSUSE
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: GNOME
Current
Other All
: P5 - None : Normal (vote)
: ---
Assigned To: QK ZHU
E-mail List
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2018-05-01 10:05 UTC by Wolfgang Rosenauer
Modified: 2021-05-24 03:13 UTC (History)
2 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
gdm login screen (2.92 MB, image/jpeg)
2021-05-11 17:59 UTC, Richard Wallwork
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Wolfgang Rosenauer 2018-05-01 10:05:21 UTC
I've got a 14 inch laptop with resolution 2560x1440.

My Gnome session settings are to not scale (100%) and I only scale fonts to my needs.
Still GDM decides to scale my screen which looks like 200%.
Ok, GDM does not know anything about my personal settings at this point but it seems scaling to 200% with the resolution and size as outlined above is quite overkill?
Comment 1 Richard Wallwork 2021-05-10 07:01:13 UTC
I have exactly the same issue as this on a 13.3" 1920x1200 laptop. gnome-shell and GDM are scalled 200x on first boot which makes text huge and the UI almost unsuable.

Easy to change the settings for desktop but to resolve GDM had to log in as GDM and use gesttings to change to 1x scaling.
Comment 2 Yifan Jiang 2021-05-10 07:35:57 UTC
(In reply to Richard Wallwork from comment #1)
> I have exactly the same issue as this on a 13.3" 1920x1200 laptop.
> gnome-shell and GDM are scalled 200x on first boot which makes text huge and
> the UI almost unsuable.
> 
> Easy to change the settings for desktop but to resolve GDM had to log in as
> GDM and use gesttings to change to 1x scaling.

Hi Richard,

Would you share your version of gdm, gnome-shell and mutter please (rpm -qa | grep -e gdm -e gnome-shell -e mutter)?
Comment 3 Richard Wallwork 2021-05-10 15:25:09 UTC
sure here you go: 


gnome-shell-search-provider-seahorse-40.0-1.1.x86_64
chrome-gnome-shell-10.1-2.7.x86_64
gnome-shell-search-provider-gnome-terminal-3.40.1-1.1.x86_64
gnome-shell-search-provider-gnome-calculator-40.1-1.1.x86_64
mutter-40.0-3.1.x86_64
gnome-shell-search-provider-gnome-photos-40.0-2.2.x86_64
mutter-lang-40.0-3.1.noarch
gnome-shell-search-provider-gnome-clocks-40.0-1.2.x86_64
gnome-shell-search-provider-gnome-weather-40.0-1.2.noarch
gnome-shell-search-provider-gnome-characters-40.0-1.2.x86_64
libgdm1-3.38.2-2.5.x86_64
gnome-shell-40.0-2.2.x86_64
gnome-shell-calendar-40.0-2.2.x86_64
gnome-shell-search-provider-nautilus-40.1-1.1.x86_64
gnome-shell-search-provider-documents-3.34.0+26-1.2.x86_64
gnome-shell-search-provider-contacts-40.0-1.2.x86_64
gnome-shell-search-provider-bijiben-40.1-1.1.x86_64
gnome-shell-lang-40.0-2.2.noarch
gnome-shell-extension-desktop-icons-20.10.0-1.1.noarch
gdmflexiserver-3.38.2-2.5.noarch
gnome-shell-classic-40.0-4.1.noarch
gdm-branding-openSUSE-15.1-2.7.noarch
gdm-3.38.2-2.5.x86_64
pulseaudio-gdm-hooks-14.2-6.1.x86_64
gdm-lang-3.38.2-2.5.noarch
Comment 4 Yifan Jiang 2021-05-11 00:44:06 UTC
For gdm login screen, it looks too big if we have 200% scale for 1920x1200 on 13.3". Chingkai, maybe it is discuss-able on upstream?
Comment 5 QK ZHU 2021-05-11 01:52:22 UTC
(In reply to Richard Wallwork from comment #1)

Hi Richard,

I think you are talking about

> I have exactly the same issue as this on a 13.3" 1920x1200 laptop.
> gnome-shell and GDM are scalled 200x on first boot which makes text huge and
200%
> the UI almost unsuable.
> 
> Easy to change the settings for desktop but to resolve GDM had to log in as
> GDM and use gesttings to change to 1x scaling.
and 100%, please correct me if you really mean 200 times and 1 time.
Comment 6 QK ZHU 2021-05-11 03:13:15 UTC
mutter in openSUSE will set scaling factor to 2 when the monitor's dpi is greater than 144, so a 13.3" 1920x1200 laptop will get scaling factor as 1 if everything works fine.

Could you also provide:
- A screenshot of the huge GDM
- Check if Large Text of Accessibility is enabled in your gdm greeter
- Install xdpyinfo then run as root `xdpyinfo | grep 'dimensions\|resolution'`
- Output of `sudo hwinfo --monitor`
- Output of `loginctl show-session 1 | grep Type`
- The value of Settings->Displays->Scale
- Output of
  + gsettings get org.gnome.desktop.interface scaling-factor
  + gsettings get org.gnome.desktop.interface text-scaling-factor
- Switch to root in terminal then provide the output of
  + sudo -u gdm dbus-launch gsettings get org.gnome.desktop.interface scaling-factor
  + sudo -u gdm dbus-launch gsettings get org.gnome.desktop.interface text-scaling-factor
Comment 7 Richard Wallwork 2021-05-11 17:59:39 UTC
Created attachment 849267 [details]
gdm login screen
Comment 8 Richard Wallwork 2021-05-11 18:00:56 UTC
sudo  xdpyinfo | grep 'dimensions\|resolution'
xdpyinfo:  unable to open display "".

#as the above didn't provide any output, I tried again without sudo:

xdpyinfo | grep 'dimensions\|resolution'
  dimensions:    1920x1200 pixels (508x318 millimeters)
  resolution:    96x96 dots per inch


sudo hwinfo --monitor
 pci.2: get sysfs pci data                                     
25: None 00.0: 10002 LCD Monitor                                
  [Created at monitor.125]
  Unique ID: rdCR.p5aSA1DtiZF
  Parent ID: _Znp.Qk_N41Tor94
  Hardware Class: monitor
  Model: "XGFJ0 LQ134N1 LCD Monitor"
  Vendor: SHP "XGFJ0 LQ134N1"
  Device: eisa 0x14cb 
  Resolution: 1920x1200@60Hz
  Size: 288x180 mm
  Year of Manufacture: 2019
  Week of Manufacture: 45
  Detailed Timings #0:
     Resolution: 1920x1200
     Horizontal: 1920 1968 2000 2080 (+48 +80 +160) -hsync
       Vertical: 1200 1203 1209 1235 (+3 +9 +35) -vsync
    Frequencies: 123.20 MHz, 59.23 kHz, 47.96 Hz
  Year of Manufacture: 2019
  Week of Manufacture: 45
  Detailed Timings #1:
     Resolution: 1920x1200
     Horizontal: 1920 1968 2000 2080 (+48 +80 +160) -hsync
       Vertical: 1200 1203 1209 1235 (+3 +9 +35) -vsync
    Frequencies: 154.00 MHz, 74.04 kHz, 59.95 Hz
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #20 (VGA compatible controller)


loginctl show-session 1 | grep Type
Failed to get session path: No session '1' known

gsettings get org.gnome.desktop.interface scaling-factor
uint32 0

gsettings get org.gnome.desktop.interface text-scaling-factor
1.0

sudo -u gdm dbus-launch gsettings get org.gnome.desktop.interface text-scaling-factor
1.0

sudo -u gdm dbus-launch gsettings get org.gnome.desktop.interface scaling-factor
uint32 2




I should mention that I normally have large text turn on to have 1.25 text scaling but I turned that off to make sure the info I provide here is consistent.

To provide the screenshots and the output I reverted gdm back to the 2x scaling as per the first boot since installing.

To answer the earlier question, yes I meant 1x and 2x (or 100% and 200%), apologies :)

Also, the dpi resolution of this display I believe is 170 or thereabouts, so if mutter is set to scale 2x above 144, then it is acting as intended.
Comment 9 QK ZHU 2021-05-14 08:40:04 UTC
(In reply to Richard Wallwork from comment #8)
>   Model: "XGFJ0 LQ134N1 LCD Monitor"
>   Vendor: SHP "XGFJ0 LQ134N1"
>   Device: eisa 0x14cb 
>   Resolution: 1920x1200@60Hz
>   Size: 288x180 mm

Hi Richard,
I am afraid the display of your laptop is not a 4K or 2K display:
https://laptopmedia.com/screen/sharp-xgfj0-lq134n1-shp14cb-office-work-profile/

> 
> 
> loginctl show-session 1 | grep Type
> Failed to get session path: No session '1' known

Forget about this, I just want to make sure you are using Wayland session.

> 
> sudo -u gdm dbus-launch gsettings get org.gnome.desktop.interface
> scaling-factor
> uint32 2
Hence, I don't think mutter will set scaling-factor of gdm to 2, otherwise this value should also be 2 for your desktop
> gsettings get org.gnome.desktop.interface scaling-factor
> uint32 0

You should set it to the default value for gdm.

> 
> Also, the dpi resolution of this display I believe is 170 or thereabouts, so
> if mutter is set to scale 2x above 144, then it is acting as intended.

Again, I think what you really mean is ppi not dpi:
https://laptopmedia.com/screen/sharp-xgfj0-lq134n1-shp14cb-office-work-profile/
The ppi of your display is 168.97

To know more about HiDPI about Linux, please refer to:
- https://medium.com/elementaryos/what-is-hidpi-and-why-does-it-matter-b024eabea20d#.fxmpxuum3
- https://medium.com/elementaryos/top-3-misconceptions-about-hidpi-f5ef493d7bf8#.xitth4sax
- https://medium.com/elementaryos/hidpi-is-more-important-than-4k-b1b9bb110b43
Comment 10 QK ZHU 2021-05-14 08:56:45 UTC
(In reply to Richard Wallwork from comment #8)
> 
> xdpyinfo | grep 'dimensions\|resolution'
>   dimensions:    1920x1200 pixels (508x318 millimeters)
>   resolution:    96x96 dots per inch

The dpi of this display is 96. So adjusting scaling-factor for this display is not a wise choice.
Comment 11 Richard Wallwork 2021-05-14 09:29:07 UTC
Just to clarify, I am not the OP who had the 2k display. I commented on this bug report because I had the same issue.  Yes, my display is deffinitely 1920x1200 or WUXGA and not 4k or 2k.

Upon installing Tumbleweed on this machine (I have done so 3 times) both the login screen and the desktop are set to 2x scaling. I immediately changed the desktop to 1x because it is unusable at that level. Changing the login screen scaling was a bit of a challenge but I found out eventually how to log in as gdm.

For the purposes of the tests you asked me to carry out, I changed gdm back to 2x with the intention for the output to be what it was upon first boot.

P.S. I'm sure I read somewhere (arch wiki perhapds) that GNOME always sets the DPI to 96 and you can't change it?
Comment 12 Richard Wallwork 2021-05-17 13:07:07 UTC
To test this issue on a different system, I installed Gnome Tumbleweed on a spare drive of my desktop. The monitor is 32" 4k,a ppi of 138.

Scaling was at 1x for both login screen and desktop.

If ppi is a fixed value based on the monitors size and pixel resolution, and dpi is (depending on DE/WM used), a value that can be set manually, is it likely that mutter is looking at the ppi when determining when to scale to 1x or 2x rather than the dpi?

If so, 144 may not the right value to use I wonder?
Comment 13 QK ZHU 2021-05-17 13:17:45 UTC
Nope, dpi is used by mutter:
- https://gitlab.gnome.org/GNOME/mutter/-/blob/master/src/backends/meta-monitor.c#L1708

The threshold used by upstream is 192 (see #L1647)

And openSUSE lower the value to 144 to make it user friendly to some 4k monitors (e.g. DELL P2415Q)
- https://build.opensuse.org/package/view_file/openSUSE:Factory/mutter/mutter-Lower-HIDPI_LIMIT-to-144.patch?expand=1
Comment 14 Richard Wallwork 2021-05-17 13:58:16 UTC
Thanks for the links.

Given the clarification I provided over the confusion about the OP screen size and my screen size, the issue is still concerning and unexplained, and as the screen size and display resolution I have is not uncommon, other users who are newly installing openSUSE may have a poor experinence upon first boot

It does seems that the terms dpi and ppi are being used interchangably which is causing some confusion?
Comment 15 QK ZHU 2021-05-18 09:02:17 UTC
(In reply to Richard Wallwork from comment #14)
> Thanks for the links.
> 
> Given the clarification I provided over the confusion about the OP screen
> size and my screen size, the issue is still concerning and unexplained, and
> as the screen size and display resolution I have is not uncommon, other
> users who are newly installing openSUSE may have a poor experinence upon
> first boot

The default scaling-factor on my 1920x1080 laptop is 1, I am not sure if this only happened on some 16:10 display, and if other users meet this.

> 
> It does seems that the terms dpi and ppi are being used interchangably which
> is causing some confusion?

mutter calculate dpi via:
      dpi_x = (double) resolution_width / (width_mm / 25.4);
      dpi_y = (double) resolution_height / (height_mm / 25.4);
So the dpi of your display is 96 as xdpyinfo shows.

Anyway, I will look into mutter's code and see if I can find something.
Comment 16 Richard Wallwork 2021-05-18 09:30:06 UTC
Yes I believe I read that the vertical resolution has to be 1200 or above + whatever the required dpi is set at i.e 144 for opensuse
Comment 17 QK ZHU 2021-05-18 09:36:05 UTC
(In reply to Richard Wallwork from comment #16)
> Yes I believe I read that the vertical resolution has to be 1200 or above +
> whatever the required dpi is set at i.e 144 for opensuse

calculate_scale check if resolution_height < HIDPI_MIN_HEIGHT (i.e. 1200)

But scale will only be 2 when
      if (dpi_x > HIDPI_LIMIT && dpi_y > HIDPI_LIMIT)
        scale = 2.0;
And HIDPI_LIMIT is 144 in openSUSE

https://gitlab.gnome.org/GNOME/mutter/-/blob/master/src/backends/meta-monitor.c#L1660
Comment 18 Richard Wallwork 2021-05-18 17:56:22 UTC
I have just noticed xdpyinfo gave this output, but notice the physical size of the screen it is showing incorrectly:

xdpyinfo | grep 'dimensions\|resolution'
  dimensions:    1920x1200 pixels (508x318 millimeters)
  resolution:    96x96 dots per inch

Other output shows the correct dimensions:

Size: 288x180 mm

If I calculate the dpi using the correct dimensions of 288x180 , I get what I would expect, 170.
Comment 19 QK ZHU 2021-05-19 02:43:07 UTC
(In reply to Richard Wallwork from comment #18)
> I have just noticed xdpyinfo gave this output, but notice the physical size
> of the screen it is showing incorrectly:
> 
> xdpyinfo | grep 'dimensions\|resolution'
>   dimensions:    1920x1200 pixels (508x318 millimeters)
>   resolution:    96x96 dots per inch
> 
> Other output shows the correct dimensions:
> 
> Size: 288x180 mm

Sorry, I missed that.

> 
> If I calculate the dpi using the correct dimensions of 288x180 , I get what
> I would expect, 170.

Then, it makes sense why the default scaling-factor is 2 on your laptop. It's a 4K display. In sum, it's a issue of user preference. Some users may think scaling-factor=2 on this 4k display is too much, the UI is huge and not user-friendly, though others may think everything would be too tiny if scaling-factor=1.

But it's worth discussing with upstream and see if it's possible to polish the algorithm of calculate_scale

Hi Richard, could you file a issue on upstream:
- https://gitlab.gnome.org/GNOME/mutter/-/issues
Comment 20 QK ZHU 2021-05-19 12:13:52 UTC
According to: https://wiki.gnome.org/Projects/GnomeShell/ScaleFactorTests

Upstream thought the best scaling factor[1] for a 13" laptop should be 1.5 - 1.75, but apparently calculate_scale can only set the value to 1 or 2.

Currently, to get the "best" user experience, you have to set a fractional scaling-factor manually.

- [1] Best scaling factor: Scaling factor that gives the "best" experience
Comment 21 QK ZHU 2021-05-19 12:40:52 UTC
Since fractional scaling is still an experimental feature, I think this issue is actually an unimplemented upstream feature. My proposal in Comment 19 to report it to upstream still valid.

I'd like to close this bug as "RESOLVED UPSTREAM" if you don't have other concerns.
Comment 22 Richard Wallwork 2021-05-20 06:03:08 UTC
As you say it is a matter of preference, though I think for a new user on a 13" laptop with WUXGA screen, the 'first impression' would be somewhat disappointing with 2x scaling.

One solution would be to increase the vertical resolution requirement from 1200 to something like 1440. This way WUXGA 13" screens which are becoming more common in laptops, like FHD screens would not be automatically scaled and this change would not have a negative impact on users of the larger screen 4K monitors who benefit from the 2x scaling.
Comment 23 QK ZHU 2021-05-20 06:12:36 UTC
Hi Richard, it's better to put this in the upstream, maybe they have other plans/suggestions about this.
Comment 24 Richard Wallwork 2021-05-20 16:43:03 UTC
Yeah cool I'll raise it there. Thanks for taking the time to discuss and look into this with me. I really appreciate it :) Feel free to close.
Comment 25 QK ZHU 2021-05-24 03:13:56 UTC
(In reply to Richard Wallwork from comment #24)
> Yeah cool I'll raise it there. Thanks for taking the time to discuss and
> look into this with me. I really appreciate it :) Feel free to close.

Thank you.