How to set different non-fractional scaling on two monitors

I have a ThinkPad W540 with a built-in 2880x1620 panel, and an external 1920x1080 screen. 390.141 nvidia driver, installed using ubuntu-drivers, Ubuntu 20.10. Hardware is Quadro K2100M (NVIDIA GK106GLM) / Intel HD 4600 (GT2), nvidia selected in prime-select.

I want to set 200% scaling on the built-in panel, and 100% on the external screen. This is not possible without enabling fractional scaling. Enabling fractional scaling makes the system extremely slow, and shouldn’t be necessary, since neither 100% nor 200% requires use of fractions. It also results in noticeable blurring on the lower resolution 1920x1080 screen, single-pixel vertical lines like indent lines in a code editor or even the “I-bar” mouse cursor become blurry every second pixel of horizontal movement.

Essentially I just want to set two different non-fractional scales to account for the different pixel density on the monitors. I understand this is possible in Wayland, but Wayland is not usable with the nvidia proprietary driver? Is there a way to use xrandr or nvidia-settings to set different scaling, since the “Display Settings” in Ubuntu when using X does not seem to allow it. Is there a solution here beyond waiting for nvidia driver support for Wayland? Thanks!

Uploading outputnvidia-bug-report.log.gz (229.0 KB)

Please try upgrading to the latest driver and switching to on-demand profile, if this yields a better result.

Thanks for the quick response. When you say “latest” driver, what do you specifically mean?

  • 340.108 is the only driver with support for my K2100M GPU according to What's a legacy driver? | NVIDIA
  • 390.141 is the latest 390, which is currently installed and recommended by ubuntu-drivers
  • 418 (nvidia-driver-418-server) is offered by ubuntu-drivers, but seems to want to install a lot of packages from 450
  • 460.39 is the latest available driver, but I guess it doesn’t support my ~8 year old Kepler GPU?

Is the plan here to install a newer driver in order to enable Wayland support, or continue and try to fix it under X11? Should the driver be installed using ubuntu-drivers (only possible up to 418), apt install nvidia-xxx (up to 460) or driver (also up to 460)?

Also a quick explanation or link to docs on what an on-demand profile is and how to switch to it would be appreciated. Thanks again!

OK, I set sudo prime-select on-demand successfully while still on 390.141. This did not make it possible to set different scaling for each display without enabling fractional scaling first. When this is enabled, the blurriness problem returns. I also noticed that in Chrome, chrome://gpu now shows everything is set to software rendering with hardware acceleration disabled. This was not the case with the nvidia prime profile selected.

Your Kepler is supported by the 460 driver. on-demand only works with v445+

Thanks, I have now installed 460.39 and enabled the on-demand profile. I am still unable to set 200% scaling on the built-in monitor and 100% scaling on the external monitor using Ubuntu Display Settings. It is still necessary to enable fractional scaling to do this, which results in blurriness on the external monitor. I tried taking a few photos of the external display to illustrate the problem: nvidia 460 driver blurry fractional scaling - Album on Imgur

I think it is simply not possible to set different scales using the Ubuntu Display Settings dialog without enabling fractional scaling. Is there any way to set this in nvidia-settings or xrandr or X11 settings?

Finally, where can I see what devices are support by different driver versions? There is significant confusion here:

  • Using the driver selector results in choosing 415 as the latest new feature driver, and 418 as the latest production driver for Quadro K2100M. This matches what ubuntu-drivers recommends.
  • You claim 460 supports Quadro K2100M, but it explicitly does not appear in the list of supported devices. Yet installing the driver works fine. Should this be fixed on the driver download page? Should I report this incorrect driver selection as a bug to ubuntu?

Attaching updated output. Running this crashed gnome, but it recovered immediately. Thanks generix for the support, I see you solving everyone’s problems day in and day out here :) nvidia-bug-report.log.gz (557.7 KB)

All your screens are now driven by the i915/modesetting driver, the nvidia driver is not involved anymore. So it’s a general issue with fractional scaling which is a feature developed by Ubuntu devs. Please open a bug report at lauchpad bugs

OK, will do. Thanks for the help clarifying which nvidia driver I should be using, learning on-demand only works in 445+ was very helpful.