Is it possible to utilize xrandr in an optimus-enabled laptop to redirect output from the integrated RTX 2060 to a plugged-in GTX 960? Possibly using xrandr? I’ve got such a setup… the Intel chipset is a cannonlake (i7 8750H) with an integrated RTX 2060… and a GTX 960 plugged in via a “graphics accelerator” port on the laptop. All three devices are detected, and I can fully utilize the GTX 960… but of course I’d like to use the power of the RTX 2060.
Why do I have such a setup? I’m really just using the 960 to output to four displays, whereas the built-in RTX 2060 can only output to two displays (1x via mini-DP, 1x via thunderbolt… or 2x each if I used MST, but only at 30Hz each… I’d much rather have at least 60 Hz).
Here’s some lspci output:
rich@graendal ~ $ lspci
00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers (rev 07)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 07)
00:01.1 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x8) (rev 07)
00:01.2 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x4) (rev 07)
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (Mobile)
00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 07)
00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th Gen Core Processor Gaussian Mixture Model
00:12.0 Signal processing controller: Intel Corporation Cannon Lake PCH Thermal Controller (rev 10)
00:13.0 Serial controller: Intel Corporation Device a37c (rev 10)
00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10)
00:14.2 RAM memory: Intel Corporation Cannon Lake PCH Shared SRAM (rev 10)
00:15.0 Serial bus controller [0c80]: Intel Corporation Device a368 (rev 10)
00:15.1 Serial bus controller [0c80]: Intel Corporation Device a369 (rev 10)
00:16.0 Communication controller: Intel Corporation Cannon Lake PCH HECI Controller (rev 10)
00:17.0 SATA controller: Intel Corporation Device a353 (rev 10)
00:1b.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #21 (rev f0)
00:1d.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #9 (rev f0)
00:1d.6 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #15 (rev f0)
00:1d.7 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #16 (rev f0)
00:1e.0 Communication controller: Intel Corporation Device a328 (rev 10)
00:1f.0 ISA bridge: Intel Corporation Device a30d (rev 10)
00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS (rev 10)
00:1f.4 SMBus: Intel Corporation Cannon Lake PCH SMBus Controller (rev 10)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH SPI Controller (rev 10)
01:00.0 VGA compatible controller: NVIDIA Corporation Device 1f11 (rev a1)
01:00.1 Audio device: NVIDIA Corporation Device 10f9 (rev a1)
01:00.2 USB controller: NVIDIA Corporation Device 1ada (rev a1)
01:00.3 Serial bus controller [0c80]: NVIDIA Corporation Device 1adb (rev a1)
02:00.0 PCI bridge: Intel Corporation JHL6340 Thunderbolt 3 Bridge (C step) [Alpine Ridge 2C 2016] (rev ff)
03:00.0 PCI bridge: Intel Corporation JHL6340 Thunderbolt 3 Bridge (C step) [Alpine Ridge 2C 2016] (rev ff)
03:01.0 PCI bridge: Intel Corporation JHL6340 Thunderbolt 3 Bridge (C step) [Alpine Ridge 2C 2016] (rev ff)
03:02.0 PCI bridge: Intel Corporation JHL6340 Thunderbolt 3 Bridge (C step) [Alpine Ridge 2C 2016] (rev ff)
6c:00.0 USB controller: Intel Corporation Device 15db (rev ff)
6d:00.0 VGA compatible controller: NVIDIA Corporation GM206 [GeForce GTX 960] (rev a1)
6d:00.1 Audio device: NVIDIA Corporation GM206 High Definition Audio Controller (rev a1)
6e:00.0 Non-Volatile memory controller: Intel Corporation Device f1a8 (rev 03)
6f:00.0 Non-Volatile memory controller: Intel Corporation Device f1a8 (rev 03)
70:00.0 Ethernet controller: Qualcomm Atheros Killer E2500 Gigabit Ethernet Controller (rev 10)
71:00.0 Network controller: Intel Corporation Wireless-AC 9260 (rev 29)
From the above, at ID 00:02.0 is my intel VGA chipset, 01:00.0 is my RTX 2060 chipset, and 6d:00.0 is my GTX 960. I’ve cobbled together an xorg.conf to output via the 960:
Section "Module"
Load "modesetting"
EndSection
Section "Device"
Identifier "nvidia external"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GTX 960"
BusID "PCI:109:0:0"
Option "AllowEmptyInitialConfiguration"
EndSection
Section "Device"
Identifier "nvidia internal"
Driver "nvidia"
BusID "PCI:1:0:0"
Option "AllowEmptyInitialConfiguration"
Option "IgnoreEDID" "false"
Option "UseEDID" "true"
EndSection
Section "Screen"
Identifier "Screen0"
Device "nvidia external"
DefaultDepth 24
Option "nvidiaXineramaInfoOrder" "DFP-4"
Option "metamodes" "DP-2: nvidia-auto-select +3840+1080 {AllowGSYNC=Off}, DP-1: nvidia-auto-select +3840+0, DP-4: nvidia-auto-select +0+551, HDMI-0: nvidia-auto-select +7680+446 {AllowGSYNC=Off}"
Option "ModeValidation" "AllowNonEdidModes"
SubSection "Display"
Depth 24
EndSubSection
EndSection
From here I was hoping to see three providers under xrandr, but I only see two :(
rich@graendal ~ $ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x24a cap: 0x1, Source Output crtcs: 4 outputs: 9 associated providers: 0 name:NVIDIA-0
Provider 1: id: 0x47 cap: 0x2, Sink Output crtcs: 3 outputs: 5 associated providers: 0 name:modesetting
Is what I’d like to do possible? I figured I’d have a shot if I saw two nvidia providers under xrandr :/