UI fonts get small after enabling "Force Full Composition Pipeline"

Hello, NVIDIA dev team! I am experiencing the following bug:

Steps to Reproduce:

  1. Boot Linux Mint 19.1 on a dual-screen setup using 415.27 driver
  2. Enable “Force Full Composition” pipeline for both screens
  3. Open an app that uses QT4, e.g., VLC, XnConvert, VirtualBox, ownCloud client

Current Result:
After enabling “Force Full Composition Pipeline”, some apps’ UI fonts (seems to be ones that use QT4) shrink down to 9pt.

Expected Result:
Font sizes should not change after enabling “Force Full Composition Pipeline”.

Notes:

  • Issue occurs with less apps when using 415.27 driver as opposed to 396.54 (e.g., VLC is not affected on 415 driver)
  • Issue only occurs on my desktop PC, not my laptop PC
  • Changing font size in qt4-qtconfig does nothing
  • Some affected apps are snaps, others installed via PPA
  • Font sizes are ok again after rebooting (i.e. with “Force Full Composition Pipeline” disabled again)

Resources:

  • Screenshot of UI with small fonts attached
  • Log attached

PC Specs:

  • Graphics card: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti]
  • NVIDIA driver: 415.27
  • Display 1: DP-0: BenQ BL3200
  • Display 2: HDMI-0: Denon AVR 7.1 surround receiver => AOC M2870VHE
  • OS: Linux Mint 19.1 Cinnamon
  • Cinnamon version: 4.0.9
  • Linux kernel: 4.15.0-45-generic
  • CPU: Intel© Core™ i7-4790K CPU @ 4.00GHz × 4

Perhaps you have any idea why some apps get locked on really small fonts after enabling the option? It seems to be the only reliable way to combat screen tearing on Linux (at least Mint), so I’m hoping there’s a fix for this.
nvidia-bug-report.log.gz (665 KB)
smallfonts.png

Does a combination of
Option “UseEdidDpi” “FALSE”
Option “DPI” “96”
work around that?

Hey Generix, thanks for the suggestion! I added these two options to the “Device” section in xorg.conf (cf. attached screenshot).

They cause the UI fonts to get even smaller. I attached two screenshots of XnConvert, one with “Force Full Composition Pipeline” disabled (normal font sizes) and one enabled while using the two options.

FWIW, I made myself a keyboard shortcut for the following command:

nvidia-settings --assign CurrentMetaMode=“nvidia-auto-select +0+360 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On, AllowGSYNC=Off}, nvidia-auto-select +1920+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On, AllowGSYNC=Off}”

That way, Full Composition Pipeline is disabled by default and I only enable it by pressing the shortcut whenever I want to play a game or watch a video on YouTube.
optionsinxorgconf.png
xnconvert-after-compipeline-96dpi.png
xnconvert-b4-compipeline-96dpi.png

Hello, community! I have not been able to find any other way to deal with this issue, and the tiny fonts are very tough on the eyes.

I wonder if anybody else has experienced this and found a way to force the fonts back to normal size, or if there is perhaps any other way to combat screen tearing, especially on multi-display systems?

Are you sure QT4 is involved at all? The applications you’re mentioning are using QT5 on my system, QT4 isn’t available anymore. Does it also happen if you connect only one monitor?

I just checked and yes, the issue also occurs if I only connect one screen (I have the BENQ connected over Display Post as I’m typing, the home theater surround receiver > AOC screen over HDMI is disconnected).

I am not 100% sure it’s QT4. The reason I suspect it might be is that about a year ago, I ran into this issue:

https://forums.linuxmint.com/viewtopic.php?t=272268

The solution back then was to adjust the font sizes in affected apps using qt4-qtconfig.

UPDATE: I think I found the solution!

In Linux Mint’s own “Font Selection” settings app, the Default Font (not Desktop Font) was set to 9pt, while all others were at 10. The Text Scaling Factor was set to 1.1.

I set the Default Font to 10pt and the scaling factor to 1. Now, the font sizes in the affected apps seem fine whether “Force Full Composition Pipeline” is enabled or not.

Interesting, does this also happen if you use ForceCompositionPipeline instead of ForceFullCompositionPipeline? (The ‘Full’ refers to scaling)

Just checked, yes it happens in that case as well!