Low resolution with dedicated (nvidia) GPU

when I set the bios to use the dedicated GP (nvidia) the booting results in a low resolution of the display.
how can I achieve the high resolution as with the builtin GPU?

rpm -qa | grep nvidia:

nvidia-open-driver-G06-signed-kmp-default-550.144.03_k6.4.0_150600.21-150600.3.29.2.x86_64
nvidia-compute-utils-G06-550.144.03-lp156.30.1.x86_64
kernel-firmware-nvidia-gspx-G06-550.144.03-lp156.74.1.x86_64
kernel-firmware-nvidia-20250122-150600.3.12.3.noarch
nvidia-gl-G06-550.144.03-lp156.30.1.x86_64
openSUSE-repos-Leap-NVIDIA-20250303.f74564e-lp156.2.6.1.x86_64
nvidia-video-G06-550.144.03-lp156.30.1.x86_64
nvidia-compute-G06-550.144.03-lp156.30.1.x86_64
nvidia-video-G06-32bit-550.144.03-lp156.30.1.x86_64
nvidia-compute-G06-32bit-550.144.03-lp156.30.1.x86_64
nvidia-drivers-G06-550.144.03-lp156.30.1.x86_64
nvidia-utils-G06-550.144.03-lp156.30.1.x86_64
nvidia-gl-G06-32bit-550.144.03-lp156.30.1.x86_64

suse-prime is not installed

@suse_paul can you show the output from inxi GSaz

System:
  Kernel: 6.4.0-150600.23.38-default arch: x86_64 bits: 64 compiler: gcc
    v: 7.5.0 parameters: BOOT_IMAGE=/boot/vmlinuz-6.4.0-150600.23.38-default
    root=UUID=964195c4-c9f4-406a-8f29-8db06d7f96ff splash=silent
    resume=/dev/disk/by-uuid/e1b47b9b-4821-4596-9bc1-fc63a483195d
    preempt=full mitigations=auto quiet security=apparmor
  Desktop: KDE Plasma v: 5.27.11 tk: Qt v: 5.15.12 wm: kwin_x11 vt: 2
    dm: SDDM Distro: openSUSE Leap 15.6
Graphics:
  Device-1: Intel TigerLake-H GT1 [UHD Graphics] vendor: Lenovo driver: i915
    v: kernel arch: Gen-12.1 process: Intel 10nm built: 2020-21 ports:
    active: eDP-1 empty: DP-1, DP-2, DP-3, DP-4, DP-5, HDMI-A-1
    bus-ID: 00:02.0 chip-ID: 8086:9a60 class-ID: 0300
  Device-2: NVIDIA GA106M [GeForce RTX 3060 Mobile / Max-Q] vendor: Lenovo
    driver: nvidia v: 550.144.03 alternate: nouveau,nvidia_drm non-free: 530.xx+
    status: current (as of 2023-05) arch: Ampere code: GAxxx
    process: TSMC n7 (7nm) built: 2020-22 pcie: gen: 1 speed: 2.5 GT/s
    lanes: 16 link-max: gen: 4 speed: 16 GT/s ports: active: none empty: DP-6,
    DP-7, HDMI-A-2, eDP-2 bus-ID: 01:00.0 chip-ID: 10de:2560 class-ID: 0300
  Device-3: Syntek Integrated Camera driver: uvcvideo type: USB rev: 2.0
    speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 3-6:2 chip-ID: 174f:2435
    class-ID: 0e02
  Display: x11 server: X.Org v: 1.21.1.11 with: Xwayland v: 24.1.1
    compositor: kwin_x11 driver: X: loaded: modesetting,nvidia
    unloaded: fbdev,vesa alternate: intel,nouveau,nv dri: iris gpu: i915
    display-ID: :0 screens: 1
  Screen-1: 0 s-res: 2560x1600 s-dpi: 96 s-size: 676x423mm (26.61x16.65")
    s-diag: 797mm (31.4")
  Monitor-1: eDP-1 model-id: CSO 0x1606 built: 2020 res: 2560x1600 dpi: 188
    gamma: 1.2 size: 345x215mm (13.58x8.46") diag: 407mm (16") ratio: 16:10
    modes: 2560x1600
  API: OpenGL v: 4.6 Mesa 23.3.4 renderer: Mesa Intel UHD Graphics (TGL GT1)
    direct-render: Yes


@suse_paul So do you have an xorg.conf file down in /etc/X11 or /etc/X11/xorg.conf.d directories?

That setup would work fine with just using the Intel GPU and Prime Render Offload with the Nvidia gpu (switcheroctl)?

find /etc/X11 | grep xorg

/etc/X11/xorg.conf.install
/etc/X11/xorg.conf.d
/etc/X11/xorg.conf.d/00-keyboard.conf
/etc/X11/xorg.conf.d/50-device.conf
/etc/X11/xorg.conf.d/50-monitor.conf
/etc/X11/xorg.conf.d/50-screen.conf

after booting with dynamic GPU starting applications on nvidia GPU with switcheroctl seems to work

@suse_paul I would suggest sticking with that method…

1 Like

is there a way to check on which GPU a program is running on? i.e. whether starting it via switcheroctl worked.

Open a terminal and put nvidia-smi. Have a look at the bottom list which indicates which app/process uses the Nvidia GPU.
Open another terminal window. Execute as example switcherooctl launch vlc (or any other app you want to run with the Nvidia GPU).
Have again a look at the first terminal window and execute nvidia-smi again. See that the app is added to the list.

when I set BIOS to boot with dedicated/nvidia GPU instead of dynamic, the resulting desktop (KDE) looks low resolution, despite the display has high resolution.

with BIOS GPU set dynamic, it boots into high resolution desktop.

how can I change the desktop resolution?

@hui or use nvidia-smi pmon in a terminal, but nvtop is better. If have an Intel gpu as well setcap is needed to see Intel memory usage, so as root user run setcap cap_perfmon=ep /usr/bin/nvtop

OT:
this icon shortly appeared in the plasma bar, then disappeared:
plasmaicon

can anyone tell me what it refers to?

‘nvidia-smi’ is showing some processes:

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A      2013      G   /usr/bin/X                                      4MiB |
|    0   N/A  N/A      5237      G   /usr/lib64/firefox/firefox                      0MiB |
|    0   N/A  N/A      5450      G   ...bin/plasma-browser-integration-host          2MiB |
+-----------------------------------------------------------------------------------------+

but in ‘nvidia-smi’ pmon there’s nothing:

# gpu         pid   type     sm    mem    enc    dec    jpg    ofa    command 
# Idx           #    C/G      %      %      %      %      %      %    name 
    0       2013     G      -      -      -      -      -      -    X              
    0       5237     G      -      -      -      -      -      -    firefox        
    0       5450     G      -      -      -      -      -      -    plasma-browser-
    0       2013     G      -      -      -      -      -      -    X              
    0       5237     G      -      -      -      -      -      -    firefox        
    0       5450     G      -      -      -      -      -      -    plasma-browser-

so, is there actually something running on the nvidia?

@suse_paul Yes, those processes (pid column) are using the Nvidia GPU. Surprised it’s not using compute, maybe Plasma isn’t there with that yet? My Intel ARC and Nvidia are both using graphics and compute.

is it possible that there is an issue with nvidia kernel module / drivers and/or missing packages?
how would I find out?

@suse_paul Not sure as I use the run files for Cuda and Driver, likewise my user is part of the video and render groups and I’m on Tumbleweed…

when setting in BIOS to use nvidia (instead of ‘dynamic’):

the grub screen is in a low resolution of 800x600 although videoinfo shows that higher resolution is possible and videotest shows that high resolution would work.

=> 1) why does grub use the low resolution?

yast → bootloader offers a highest possible resolution of 1600x1200, although videotest/videinfo in grub show that 2560x1600 would be possible

=> 2) why does yast → bootloader not offer the highest possible reolution

as shown in the picture above, the desktop has low reolution, although kde system setting as well as nvidia settings claim to have a resolution of 2560x1600

=> 3) how is it possible that a wrong resolution is reported?

=> 4) is the a corresponding bug in the nvidia drivers, nvidia firmware, or might there packages/drivers be missing?
(I blocked the 550-nvidia packages from being updated, as there were problems with 570-packages reported - see above. laptop firmware should be at the newest level)

Grub use graphics from BIOS ie neither the kernel or the Video driver have loaded yet in grub :open_mouth:

Looking in sources, grub falls back to 800x600 if it cannot get preferred resolution from EDID (no EDID, errors in EDID or EDID with too new version). EDID contents woud be interesting. Something like

parse-edid < /sys/class/drm/card2-eDP-1/edid 
Checksum Correct

Section "Monitor"
	Identifier ""
	ModelName ""
	VendorName "LGD"
	# Monitor Manufactured week 0 of 2014
	# EDID version 1.4
	# Digital Display
	DisplaySize 310 170
	Gamma 2.20
	Option "DPMS" "true"
	Modeline 	"Mode 0" +hsync -vsync 
	Modeline 	"Mode 1" +hsync -vsync 
EndSection
bor@bor-Latitude-E5450:~$

It shows VESA compatible modes.

VESA res should be set able in Yast-Bootloader