You are not logged in.
Wasn't sure exactly where to put this, but this should be appropriate. As the title suggests, I'm on a laptop with a hybrid GPU setup (an Intel iGPU and an RTX 3050 dGPU), and I'm struggling to get things to work right so that the dGPU is only used when I explicitly call on it via e.g. `prime-run`.
At first I thought it might have to do with always using an external monitor and the HDMI port being wired to the dGPU (which I believe is the case), but apparently the issue persists when I plug out the monitor too, even after rebooting. From what I understand it should work even with an external monitor connected, as there should be a mux switch in my model (Lenovo LOQ 15IRX9).
Hope someone can point me in the right direction in how to set this up correctly. Here are some assorted commands I've done for diagnostics:
$ nvidia-smi
Tue Nov 4 06:08:29 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.95.05 Driver Version: 580.95.05 CUDA Version: 13.0 |
+-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 3050 ... Off | 00000000:01:00.0 On | N/A |
| N/A 42C P8 3W / 60W | 56MiB / 6144MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 3023 G /usr/lib/Xorg 45MiB |
+-----------------------------------------------------------------------------------------+
$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x49 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 4 outputs: 7 associated providers: 1 name:modesetting
Provider 1: id: 0x28a cap: 0x2, Sink Output crtcs: 4 outputs: 4 associated providers: 1 name:NVIDIA-G0
$ xrandr --current | grep " connected"
eDP-1 connected (normal left inverted right x axis y axis)
HDMI-1-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 698mm x 392mm
$ sensors
ucsi_source_psy_USBC000:001-isa-0000
Adapter: ISA adapter
in0: 0.00 V (min = +0.00 V, max = +0.00 V)
curr1: 0.00 A (max = +0.10 A)
spd5118-i2c-12-50
Adapter: SMBus I801 adapter at 0000:00:1f.4
ERROR: Can't get value of subfeature temp1_max_alarm: Can't read
temp1: +44.8°C (low = +0.0°C, high = +55.0°C)
(crit low = +0.0°C, crit = +85.0°C)
BAT1-acpi-0
Adapter: ACPI interface
in0: 16.36 V
power1: 0.00 W
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +42.0°C (high = +100.0°C, crit = +100.0°C)
Core 0: +40.0°C (high = +100.0°C, crit = +100.0°C)
Core 4: +42.0°C (high = +100.0°C, crit = +100.0°C)
Core 8: +35.0°C (high = +100.0°C, crit = +100.0°C)
Core 12: +36.0°C (high = +100.0°C, crit = +100.0°C)
Core 16: +35.0°C (high = +100.0°C, crit = +100.0°C)
Core 20: +36.0°C (high = +100.0°C, crit = +100.0°C)
Core 28: +39.0°C (high = +100.0°C, crit = +100.0°C)
Core 29: +39.0°C (high = +100.0°C, crit = +100.0°C)
Core 30: +39.0°C (high = +100.0°C, crit = +100.0°C)
Core 31: +39.0°C (high = +100.0°C, crit = +100.0°C)
spd5118-i2c-12-52
Adapter: SMBus I801 adapter at 0000:00:1f.4
ERROR: Can't get value of subfeature temp1_max_alarm: Can't read
temp1: +45.5°C (low = +0.0°C, high = +55.0°C)
(crit low = +0.0°C, crit = +85.0°C)
nvme-pci-0600
Adapter: PCI adapter
Composite: +37.9°C (low = -40.1°C, high = +83.8°C)
(crit = +87.8°C)
Sensor 1: +40.9°C (low = -273.1°C, high = +65261.8°C)
Sensor 2: +37.9°C (low = -273.1°C, high = +65261.8°C)
acpitz-acpi-0
Adapter: ACPI interface
temp1: +27.8°
$ cat /sys/bus/pci/devices/0000:01:00.0/power/runtime_status
active
$ inxi -Gxxxz
Graphics:
Device-1: Intel Alder Lake-S [UHD Graphics] vendor: Lenovo driver: i915
v: kernel arch: Xe ports: active: none off: eDP-1 empty: DP-1, DP-2,
HDMI-A-1, HDMI-A-2, HDMI-A-3, HDMI-A-4 bus-ID: 00:02.0 chip-ID: 8086:468b
class-ID: 0300
Device-2: NVIDIA GA107BM / GN20-P0-R-K2 [GeForce RTX 3050 6GB Laptop GPU]
vendor: Lenovo driver: nvidia v: 580.95.05 arch: Ampere pcie:
speed: 2.5 GT/s lanes: 8 ports: active: none off: HDMI-A-5
empty: DP-3,eDP-2 bus-ID: 01:00.0 chip-ID: 10de:25ec class-ID: 0300
Device-3: Chicony Integrated Camera driver: uvcvideo type: USB rev: 2.0
speed: 480 Mb/s lanes: 1 bus-ID: 1-6:4 chip-ID: 04f2:b7b9 class-ID: fe01
serial: <filter>
Display: x11 server: X.org v: 1.21.1.20 with: Xwayland v: 24.1.9 driver:
X: loaded: modesetting,nvidia alternate: fbdev,intel,nouveau,nv,vesa
dri: iris gpu: i915,nvidia,nvidia-nvswitch display-ID: :0 screens: 1
Screen-1: 0 s-res: 1920x1080 s-size: <missing: xdpyinfo>
Monitor-1: HDMI-A-5 mapped: HDMI-1-0 note: disabled pos: primary
model: Panasonic Panasonic-TV serial: <filter> res: mode: 1920x1080 hz: 50
scale: 100% (1) dpi: 70 size: 698x392mm (27.48x15.43") modes:
max: 1920x1080 min: 640x480
Monitor-2: eDP-1 note: disabled model-id: CSO 0x1509 res: 1920x1080
dpi: 189 size: 344x193mm (13.54x7.6") diag: 394mm (15.5") modes: 2560x1440
API: EGL v: 1.5 hw: drv: intel iris drv: nvidia platforms: device: 0
drv: nvidia device: 2 drv: iris device: 3 drv: swrast gbm: drv: nvidia
surfaceless: drv: nvidia x11: drv: iris inactive: wayland,device-1
API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: intel mesa v: 25.2.6-arch1.1
glx-v: 1.4 direct-render: yes renderer: Mesa Intel UHD Graphics (ADL-S
GT0.5) device-ID: 8086:468b
API: Vulkan v: 1.4.328 layers: 7 surfaces: N/A device: 0
type: integrated-gpu driver: mesa intel device-ID: 8086:468b device: 1
type: discrete-gpu driver: nvidia device-ID: 10de:25ec
Info: Tools: api: eglinfo, glxinfo, vulkaninfo gpu: gputop,
intel_gpu_top, lsgpu, nvidia-settings, nvidia-smi x11: xprop,xrandrWould be happy to run anything else anyone might need. Any help is much appreciated.
Offline