39

Just updated to 20.04 and tried the fractional scaling on my laptop. That does not work at all. Whatever scaling I use it just sets 200%. I googled it and it seems works with wayland server only. I did not find any good solutions to fix it or install wayland instead of xorg. Can you help? Thanks in advance!

  Graphics:
  Device-1: Intel UHD Graphics 620 vendor: Xiaomi driver: i915 v: kernel 
  bus ID: 00:02.0 chip ID: 8086:5917 
  Device-2: NVIDIA GP108M [GeForce MX150] vendor: Xiaomi driver: nvidia 
  v: 435.21 bus ID: 01:00.0 chip ID: 10de:1d12 
  Display: x11 server: X.Org 1.20.8 driver: modesetting,nvidia 
  unloaded: fbdev,nouveau,vesa compositor: gnome-shell tty: N/A 
  OpenGL: renderer: GeForce MX150/PCIe/SSE2 v: 4.6.0 NVIDIA 435.21 
  direct render: Yes 
4
  • i have installed 20.04 last week and wayland was installed. did you logged out and selected wayland from the login menu(before entering password)?
    – emvidi
    Apr 24, 2020 at 16:02
  • Installed 20.04 fresh, wayland is installed but when I use it instead of x11, fractional scaling is enabled but not working. Only able to scale 100,200,300,400%. In x11 everything is working fine.
    – kaulex
    Apr 24, 2020 at 17:15
  • For me Xserver fractional is working almost fine on nvidia but with tearing on Intel card. I am owner of Nvidia Prime card.
    – ipeacocks
    Apr 24, 2020 at 18:08
  • In wayland I managed to get fractional scaling with:gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']" and a restart.
    – emvidi
    Apr 25, 2020 at 10:39

7 Answers 7

28

This is a bug with Ubuntu 20.04 + the latest nvidia drivers (435 proprietary and 440 proprietary, tested as far as I'm aware). Check out the launchpad thread. I'm having the same issue with 20.04 + nvidia-driver-440 (GeForce RTX 2080).

1
  • 2
    let's vote the bug, hope it solved sooner
    – Jake
    Feb 18, 2021 at 6:34
16

This worked for me:

  1. Open nvidia setting
  2. In PRIME profiles (or another tab) find GPU list
  3. Change GPU to NVIDIA On-Demand
  4. Restart your system

Note: This method may affect the performance of some applications.

6
  • 2
    This works for me, thank you. You can switch back to Performance Mode after restart and fractional scaling remains.
    – bjmi
    Nov 8, 2020 at 5:58
  • 2
    NVIDIA X Server Settings does not have a "PRIME profiles" sections. Neither could I Find any "GPU list" including NVIDIA On-Demand anywhere in this app. I'm running Ubuntu 20.10 with a RTX 3080 and latest NVIDIA drivers. Any ideas? Mar 30, 2021 at 8:09
  • This option works fine until nvidia starts working when required. Once it's on, the the screen starts switching between 200% and selected fraction. The issue I had is when trying to take a screenshot using flameshot. Assuming the nvidia graphics will be activated during that time. Jul 6, 2021 at 5:20
  • 2
    Worked for me, thanks! Sep 30, 2021 at 20:05
  • Amazing. It worked. Now I can view 4k videos without a problem. With the xorg drivers it wasn't possible.
    – Lokesh
    Oct 27, 2021 at 12:08
8

At my case, a workaround is:

  • In the Settings -> Displays: Set Scale to 100%
  • In the Tweaks -> Fonts: Set Scaling Factor to desired value (in my case it's 1.25)

PS: If you don't have Tweaks: install it via: sudo apt install gnome-tweaks

4
  • 3
    This will only adjust fonts. If you are looking to enable true fractional scaling you will be disappointed.
    – Noah
    Dec 22, 2020 at 3:41
  • Yes, it adjusts fonts only. But windows sizes (header panel) depends on the font size, so it looks quite native, but sure, it will not adjust icons, or other graphic. Using fractional scaling in Ubuntu works very bad, some apps just looks ugly.
    – RedEyed
    Dec 22, 2020 at 9:25
  • 3
    If the underlying reason for using the scale factors is to be able to read, then this solution actually is one of the best as of 7.2021 as other solutions require many additional packages and still break under certain circumstances. Give this solution a try and you may like it (until this issue is properly fixed).
    – dojuba
    Aug 17, 2021 at 7:40
  • 1
    thanks a lot! it is really a workaround for me
    – zetroot
    Jan 1, 2022 at 23:05
4

I found a few fixes for this. Here are the link to double-check:

Install Drivers: How to Install Nvidia Drivers on Ubuntu 20.04

Latest Drivers, Install, Verification and Config via CLI or GUI: Ubuntu Install Nvidia driver using the CLI method # 2

The second one is from March 2021, and is pretty straight forward.

Note: this was especially important for me, as my laptop display is 4k, the screen pad is 1080p and I run an external display. This fix corrected everything across all screens.

Search for driver:

apt-cache search nvidia-driver

Update/Upgrade to latest:

sudo apt update && sudo apt upgrade

Install Driver:

sudo apt install nvidia-driver-${latest-compatable-driver-version}

Reboot:

sudo reboot

After 1st Reboot:

Verify Driver Install:

nvidia-smi

Open Nvidia Settings (as root to adjust system-wide):

sudo nvidia-settings

At this point, the scaling didn't act exactly as expected, so this next part is copied from Amir's reply:

This worked for me:

Open nvidia setting
In PRIME profiles (or another tab) find GPU list
Change GPU to NVIDIA On-Demand
Restart your system

Note: This method may affect the performance of some applications.

BJMI had the right idea by going back into the Nvidia settings and re-enabling performance mode:

This will preserve the graphic settings and correct the scaling issue. This works for me, thank you. You can switch back to Performance Mode after restart and fractional scaling remains

Note: After the second restart is when I started changing the scaling settings. Everything was working smoothly on subsequent restarts.

3

Try using HDMI port for monitor instead of Thunderbolt USB C. Fractional scaling works there because HDMI port works with NVIDIA graphics card!

1
  • not true. I'm using a 2k*1k monitor and a 4k*2k monitor, using HDMI for the first monitor, and mouse clicked in the wrong position on the first monitor.
    – Jake
    Feb 18, 2021 at 6:25
1

I solved it as such in Ubuntu 20.10:

  1. installed nvidia proprietary drivers 460
  2. reboot (asked by the OS)
  3. opened nvidia-settings and verified that "PRIME profiles" shows "NVIDIA (Performance Mode)
  4. sudo vi /etc/modprobe.d/nvidia.conf
  5. added contents options nvidia_drm modeset=1 and saved
  6. sudo update-initramfs -u
  7. reboot
  8. verified that sudo cat /sys/module/nvidia_drm/parameters/modeset returns Y
  9. opened gnome-settings and set fractional scaling to 125%

Last step was a bit flaky as it wouldn't let me apply the changes at first (no Apply button was shown), due to hardware limitations or such. I fiddled around with the scaling (200% then 125%, fractional then non-fractional etc) until it finally let me, and it worked.

2
  • This work perfect in 20.04 and 460.80
    – Fakhamatia
    May 25, 2021 at 13:57
  • This worked until I opened flameshot to take a screenshot. Once flameshot tries to add the selection screen, the scaling keeps switching from selected to 200% and back until press esc to close the flameshot selection tool. Same as using NVIDIA On-Demand option in settings. Jul 6, 2021 at 6:39
-2

Yes, I am having the same issue. I fixed this by by choosing the nouveau display driver from the X.org X server instead using the "additional drivers" application. I hope this helps you.

3
  • Salut Willard! Could you please give a bit more details on the sittings you used. Where is the option new display driver? Thanks Jul 3, 2020 at 7:18
  • 3
    are you serious? People buy NVIDIA cards to utilize CUDA for deep learning or for gaming. Don't even say about nouveau, it's not fix. It's same as to say: "fix is put out your GPU"
    – RedEyed
    Sep 5, 2020 at 8:39
  • @RedEyed some people have way too much powers in their towers, so a working fractional scaling solution is sometimes worth more than maximum CUDA...just sayin ;M-)
    – benzkji
    Feb 12, 2021 at 7:55

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .