NVIDIA GPU Driver installed but not used? / unable to switch

Fedora 43 Workstation on an MSI laptop. I followed this guide (Howto/NVIDIA) as instructed to me in my previous post. The result:

lsmod | grep -E 'nvidia|nouveau'

nvidia_uvm           4206592  0
nvidia_drm            159744  44
nvidia_modeset       2265088  11 nvidia_drm
nvidia              15896576  291 nvidia_uvm,nvidia_modeset
drm_ttm_helper         16384  2 amdgpu,nvidia_drm
video                  81920  3 amdgpu,msi_wmi,nvidia_modeset

lspci -n -n -k | grep -A 2 -e VGA -e 3D

01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GB205M [GeForce RTX 5070 Ti Mobile] [10de:2f18] (rev a1)
	Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:14d1]
	Kernel driver in use: nvidia
--
6a:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Raphael [1002:164e] (rev d8)
	Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:14d1]
	Kernel driver in use: amdgpu

glxinfo | grep -e OpenGL.vendor -e OpenGL.renderer

OpenGL vendor string: AMD
OpenGL renderer string: AMD Radeon 610M (radeonsi, raphael_mendocino, LLVM 21.1.8, DRM 3.64, 6.18.10-200.fc43.x86_64)

switcherooctl list

Device: 0
  Name:        Advanced Micro Devices, Inc. [AMD/ATI] Raphael
  Default:     yes
  Discrete:    no
  Environment: DRI_PRIME=pci-0000_6a_00_0 VK_LOADER_DRIVERS_SELECT=*radeon*

Device: 1
  Name:        NVIDIA Corporation GB205M [GeForce RTX™ 5070 Ti Mobile]
  Default:     no
  Discrete:    yes
  Environment: __GLX_VENDOR_LIBRARY_NAME=nvidia __NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only VK_LOADER_DRIVERS_SELECT=*nvidia*

However, now that I’ve tried The Witcher 3, I think it’s the AMD iGPU being used, not NVIDIA. I get 30-40 FPS average, graphics on Medium-High.

I’ve tried the 1st method indicated here:

  • Launch options on TW3, DRI_PRIME=1 mangohud %command% (also tried without the mangohud)

And also tried DRI_PRIME=0; =2, just in case. Still didn’t work.

Edit: Another relevant command I found: lspci -vnnn | perl -lne 'print if /^\d+\:.+(\[\S+\:\S+\])/' | grep VGA

01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GB205M [GeForce RTX 5070 Ti Mobile] [10de:2f18] (rev a1) (prog-if 00 [VGA controller])

Quick way to check if the nvidia card it being used - install nvtop and run it in the terminal. Then fire up your game.

If there’s no action in nvtop, then the nvidia card is not being used. From the fact that in your screenshot I would tend to agree, the 4% load implies it’s not generating this output.

Apologies for the delay in answering, but I was away from the laptop for a long time and had no way to check it.

Seems to be working most of the times now, but not always. I’d say it works 8-9 times out of 10. No idea what changed. I launched TW3, it was clear that the dGPU was being used. I checked with the method you recommended and also in “Nvidia System Monitor”.

I’ve seen people mention switcheroo as a tool to enable you to select which card is in use. Never looked at it as I have no need to, but it might be something you can use to ensure that the correct card is being used.