System Using Intel GPU Instead of NVIDIA

Hi All -

I got a new system this week and it has an NVIDIA GeForce RTX 4060 GPU. Nvidia X Server Settings detects the card but lspci doesn’t. Furthermore, based on “About This System” - the intel mesa driver is being used and not nvidia driver (which is installed).

Here’s about my system:

Operating System: Manjaro Linux
KDE Plasma Version: 5.27.10
KDE Frameworks Version: 5.112.0
Qt Version: 5.15.11
Kernel Version: 6.6.7-4-MANJARO (64-bit)
Graphics Platform: X11
Processors: 20 × 13th Gen Intel® Core™ i9-13900H
Memory: 31.0 GiB of RAM
Graphics Processor: Mesa Intel® Graphics
Manufacturer: Dell Inc.
Product Name: XPS 15 9530

Here’s my output from the following command "lspci -k | grep -A 2 -i “VGA” "

lspci -k | grep -A 2 -i "VGA"                                                                                                                                                                                                   127 ✘ 
00:02.0 VGA compatible controller: Intel Corporation Raptor Lake-P [Iris Xe Graphics] (rev 04)
        Subsystem: Dell Raptor Lake-P [Iris Xe Graphics]
        Kernel driver in use: i915

And here is what I get from Nvidia Settings app that is installed:

NVIDIA GeForce RTX 4060 Laptop GPU

Thanks in advance.

So these will give us decent information about the system:

inxi -Fazy
mhwd -li -l

For a guide on how to find info and format things, etc:

My guess is this is a hybrid/optimus/dual-gpu system and you just dont realize that and/or how to manage it. The output of the above will help confirm it and influence the following suggestions.

Thanks for quick reply. Hopefully I got formatting right:

  Kernel: 6.6.7-4-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 13.2.1
    clocksource: tsc available: acpi_pm
    parameters: BOOT_IMAGE=/boot/vmlinuz-6.6-x86_64
    root=UUID=29221945-aeb0-4217-8b21-a05dc798e023 rw quiet splash
  Desktop: KDE Plasma v: 5.27.10 tk: Qt v: 5.15.11 wm: kwin_x11 vt: 2
    dm: SDDM Distro: Manjaro Linux base: Arch Linux
  Type: Laptop System: Dell product: XPS 15 9530 v: N/A
    serial: <superuser required> Chassis: type: 10 serial: <superuser required>
  Mobo: Dell model: 0GY0F9 v: A00 serial: <superuser required> UEFI: Dell
    v: 1.9.0 date: 11/13/2023
  ID-1: BAT0 charge: 84.3 Wh (100.0%) condition: 84.3/84.3 Wh (100.0%)
    volts: 12.9 min: 11.4 model: BYD DELL M59JH39 type: Li-poly serial: <filter>
    status: not charging cycles: 2
  Info: model: 13th Gen Intel Core i9-13900H bits: 64 type: MST AMCP
    arch: Raptor Lake gen: core 13 level: v3 note: check built: 2022+
    process: Intel 7 (10nm) family: 6 model-id: 0xBA (186) stepping: 2
    microcode: 0x411C
  Topology: cpus: 1x cores: 14 mt: 6 tpc: 2 st: 8 threads: 20 smt: enabled
    cache: L1: 1.2 MiB desc: d-8x32 KiB, 6x48 KiB; i-6x32 KiB, 8x64 KiB
    L2: 11.5 MiB desc: 6x1.2 MiB, 2x2 MiB L3: 24 MiB desc: 1x24 MiB
  Speed (MHz): avg: 470 high: 902 min/max: 400/5200:5400:4100 scaling:
    driver: intel_pstate governor: powersave cores: 1: 400 2: 400 3: 902 4: 400
    5: 400 6: 400 7: 400 8: 400 9: 400 10: 810 11: 895 12: 400 13: 400 14: 400
    15: 400 16: 400 17: 400 18: 400 19: 400 20: 400 bogomips: 119840
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
  Type: gather_data_sampling status: Not affected
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: mmio_stale_data status: Not affected
  Type: retbleed status: Not affected
  Type: spec_rstack_overflow status: Not affected
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
  Type: spectre_v2 mitigation: Enhanced / Automatic IBRS, IBPB: conditional,
    RSB filling, PBRSB-eIBRS: SW sequence
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
  Device-1: Intel Raptor Lake-P [Iris Xe Graphics] vendor: Dell driver: i915
    v: kernel arch: Gen-13 process: Intel 7 (10nm) built: 2022+ ports:
    active: eDP-1 empty: DP-1, DP-2, DP-3, DP-4, HDMI-A-1 bus-ID: 00:02.0
    chip-ID: 8086:a7a0 class-ID: 0300
  Device-2: NVIDIA AD107M [GeForce RTX 4060 Max-Q / Mobile] vendor: Dell
    driver: nvidia v: 545.29.06 alternate: nouveau,nvidia_drm non-free: 545.xx+
    status: current (as of 2023-11) arch: Lovelace code: AD1xx
    process: TSMC n4 (5nm) built: 2022+ pcie: gen: 1 speed: 2.5 GT/s lanes: 8
    link-max: gen: 4 speed: 16 GT/s bus-ID: 01:00.0 chip-ID: 10de:28a0
    class-ID: 0302
  Device-3: Microdia Integrated_Webcam_HD driver: uvcvideo type: USB rev: 2.0
    speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 3-6:2 chip-ID: 0c45:6748
    class-ID: fe01 serial: <filter>
  Display: x11 server: X.Org v: 21.1.10 with: Xwayland v: 23.2.3
    compositor: kwin_x11 driver: X: loaded: modesetting,nvidia
    alternate: fbdev,nouveau,nv,vesa dri: iris gpu: i915 display-ID: :0
    screens: 1
  Screen-1: 0 s-res: 3456x2160 s-dpi: 96 s-size: 914x571mm (35.98x22.48")
    s-diag: 1078mm (42.43") monitors: <missing: xrandr>
  Monitor-1: eDP-1 model: Samsung 0x414d built: 2020 res: 3456x2160 dpi: 261
    gamma: 1.2 size: 336x210mm (13.23x8.27") diag: 396mm (15.6") ratio: 16:10
    modes: 3456x2160
  API: EGL v: 1.5 hw: drv: intel iris drv: nvidia platforms: device: 0
    drv: nvidia device: 1 drv: iris device: 3 drv: swrast gbm: drv: nvidia
    surfaceless: drv: nvidia x11: drv: iris inactive: wayland,device-2
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: intel mesa v: 23.1.9-manjaro1.1
    glx-v: 1.4 direct-render: yes renderer: Mesa Intel Graphics (RPL-P)
    device-ID: 8086:a7a0 memory: 30.3 GiB unified: yes
  API: Vulkan v: 1.3.269 layers: 1 device: 0 type: discrete-gpu name: NVIDIA
    GeForce RTX 4060 Laptop GPU driver: nvidia v: 545.29.06
    device-ID: 10de:28a0 surfaces: xcb,xlib
  Device-1: Intel Raptor Lake-P/U/H cAVS vendor: Dell
    driver: sof-audio-pci-intel-tgl
    alternate: snd_hda_intel,snd_sof_pci_intel_tgl bus-ID: 00:1f.3
    chip-ID: 8086:51ca class-ID: 0401
  API: ALSA v: k6.6.7-4-MANJARO status: kernel-api with: aoss
    type: oss-emulator tools: alsactl,alsamixer,amixer
  Server-1: sndiod v: N/A status: off tools: aucat,midicat,sndioctl
  Server-2: JACK v: 1.9.22 status: off tools: N/A
  Server-3: PipeWire v: 1.0.0 status: off with: pipewire-media-session
    status: active tools: pw-cli
  Server-4: PulseAudio v: 16.1 status: active with: pulseaudio-alsa
    type: plugin tools: pacat,pactl
  Device-1: Intel Raptor Lake PCH CNVi WiFi driver: iwlwifi v: kernel
    bus-ID: 00:14.3 chip-ID: 8086:51f1 class-ID: 0280
  IF: wlp0s20f3 state: up mac: <filter>
  Device-1: Intel AX211 Bluetooth driver: btusb v: 0.8 type: USB rev: 2.0
    speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 3-10:4 chip-ID: 8087:0033
    class-ID: e001
  Report: rfkill ID: hci0 rfk-id: 0 state: up address: see --recommends
  Local Storage: total: 953.87 GiB used: 386.9 GiB (40.6%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: SK Hynix model: PC801 NVMe 1TB
    size: 953.87 GiB block-size: physical: 512 B logical: 512 B speed: 63.2 Gb/s
    lanes: 4 tech: SSD serial: <filter> fw-rev: 51003141 temp: 36.9 C
    scheme: GPT
  ID-1: / raw-size: 29.3 GiB size: 28.67 GiB (97.86%) used: 14.21 GiB (49.6%)
    fs: ext4 dev: /dev/nvme0n1p8 maj-min: 259:8
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 332 KiB (0.1%) fs: vfat dev: /dev/nvme0n1p7 maj-min: 259:7
  ID-3: /home raw-size: 29.3 GiB size: 28.67 GiB (97.86%)
    used: 2.17 GiB (7.6%) fs: ext4 dev: /dev/nvme0n1p9 maj-min: 259:9
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default) zswap: yes
    compressor: zstd max-pool: 20%
  ID-1: swap-1 type: partition size: 7.91 GiB used: 0 KiB (0.0%) priority: -2
    dev: /dev/nvme0n1p11 maj-min: 259:11
  System Temperatures: cpu: 48.0 C mobo: 36.0 C sodimm: SODIMM C
  Fan Speeds (rpm): cpu: 1694
  Processes: 373 Uptime: 3h 0m wakeups: 0 Memory: total: 32 GiB note: est.
  available: 31.02 GiB used: 7.72 GiB (24.9%) Init: systemd v: 254
  default: graphical tool: systemctl Compilers: gcc: 13.2.1 clang: 16.0.6
  Packages: pm: pacman pkgs: 1229 libs: 346 tools: pamac pm: flatpak pkgs: 0
  Shell: Zsh v: 5.9 default: Bash v: 5.2.21 running-in: konsole inxi: 3.3.31

mhwd -li -l                                                                                                                                                                                                                         ✔ 
> Installed PCI configs:
                  NAME               VERSION          FREEDRIVER           TYPE
     video-modesetting            2020.01.13                true            PCI
video-hybrid-intel-nvidia-prime            2023.03.23               false            PCI

Warning: No installed USB configs!
> 0000:01:00.0 (0302:10de:28a0) Display controller nVidia Corporation:
                  NAME               VERSION          FREEDRIVER           TYPE
video-hybrid-intel-nvidia-prime            2023.03.23               false            PCI
          video-nvidia            2023.03.23               false            PCI
           video-linux            2018.05.04                true            PCI

> 0000:00:02.0 (0300:8086:a7a0) Display controller Intel Corporation:
                  NAME               VERSION          FREEDRIVER           TYPE
video-hybrid-intel-nvidia-prime            2023.03.23               false            PCI
           video-linux            2018.05.04                true            PCI
     video-modesetting            2020.01.13                true            PCI
            video-vesa            2017.03.12                true            PCI

So you do have a hybrid system.

And it looks like you have correctly selected the current prime profile.

This should mean you use the intel iGPU by default, and can use the nvidia dGPU with prime-run.

Lets test it out;

glxinfo | grep 'renderer string'
prime-run glxinfo | grep 'renderer string'

Seems to have worked as far as output showing NVIDIA. How do I set that as the primary GPU. Is there a reason it defaults to the intel GPU when I think it’s hard to imagine why I’d want to use the intel one over the NVIDIA one…lots of questions and thank you as always.

Energy efficiency. Why use the nvidia one when it’s not really needed?

1 Like

Think all my questions on this front are answered. Assuming that if I push the graphics to need NVIDIA it’ll switch over automatically…? Or do I have to remember always to switch using the prime-rum command? (Guess not all questions answered). Started with 3 issues on this new computer, down to 1…appreciate it!

No, there is no automatic switching based on load.

You simply use prime-run when you want.
This is usually just 3D-rendering, like Blender, or games.
A note on that for steam;
Do not launch steam itself with prime-run, instead edit the game launch options to use prime-rin, ex (assuming no other options);

prime-run %command%

(%command% is a special steam variable that in this context means ‘this game’)

For more information on prime see the arch wiki:

Not only that, using nvidia to render the desktop is sometimes way worse than the internal gpu.
For me on KDE, if I use nvidia, there is stuttering, lagging etc. That is completely gone when using my amd igpu. I know you have intel, but I would not be one bit surprised if your igpu runs better.
This is the case for x11, wayland actually runs descent with nvidia now. :open_mouth:

As for steam, proton selects the nvidia autoamtically, no need to add anything.
Proton (or it might be snipr, I’m not sure, steam selects the nvidia is the point) sets __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia witch is the same thing that prime-run does.
But outside of steam, just run prime-run application_name and the nvidia will be used for that application.

So this is how you WANT your setup and you should probably be glad you did not face what I had to.
It took me a while to figure out how to even use my amd instead of nvidia at all. xD

Merry xmas! :christmas_tree: :christmas_tree: :christmas_tree: