NVidia fbdev does not use correct screen resolution / primary monitor on multi monitor setups

On multi-monitor setups, Nvidia drivers, including fbdev, assign monitors incorrectly. For instance, my 1440p primary monitor gets ID 1, while my 1080p secondary monitor gets ID 0. Swapping ports does make the 1440p monitor have ID 0, but puts the BIOS and systemd boot menu on the secondary monitor, which I don’t want.

This becomes problematic with Wayland and fbdev, as Wayland lacks an easy way to set a default monitor. This causes Xwayland games to start in 1080p with no option to scale up, sometimes locking the FPS to the refresh rate of the secondary monitor (75Hz).

In short, there’s no way to:

  • Assign ID 0 to the main monitor
  • Have the BIOS and systemd boot on the main monitor

It’s always one or the other. Here’s an image showing fbdev using the secondary monitor’s resolution, resulting in a low resolution and small font on the main monitor.

Ideally, fbdev should prioritize the monitor displaying the BIOS and systemd boot. Disabling fbdev resolves this, launching the TTY in 1440p on the main monitor, but with its ID still as 1 instead of 0.

still occuring with the nvidia 565 drivers. nvidia team, any update on this simple issue? affecting windows also

I believe this might be the cause to what I am experiencing here: when I boot with fbdev=1 and without an external monitor plugged to Nvidia dGPU, no output goes to the built-in display (controlled by AMD iGPU). At first I thought it was a hardware problem, but then I tried it with the external monitor, and I realized the output was going only to the dGPU.

Workaround no longer works with 6.12 kernel and I’m now stuck with low res tty.

Any update would be appreciated