Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Multi-GPU nvidia-optimus setup
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Desktop Environments
View previous topic :: View next topic  
Author Message
KShots
Guru
Guru


Joined: 09 Oct 2003
Posts: 518
Location: Florida

PostPosted: Mon May 13, 2019 9:44 pm    Post subject: Multi-GPU nvidia-optimus setup Reply with quote

I've got a bit of an odd setup here... I have an Intel i7 8750H (i965 modesetting driver) paired with an RTX 2060 in what appears to be an optimus setup along with a GTX 960 plugged in as an external video card. I'm using the 960 purely to gain display outputs (the 2060 has a mini DP and a thunderbolt port, both combined cannot drive my 4x 4k monitors at 60 Hz (best case is 30Hz each).

Currently, the GTX 960 does the job... just doesn't perform as well as the built-in RTX 2060. Below is the output of lspci:
Code:
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)
As you can see, the RTX 2060 is identified at Bus ID 01:00.0, and the GTX 960 is identified at the bizarre BusID of 6d:00.0 (translates to a BusID of "PCI:109:0:0" because the BusID cannot use a hexadecimal ID... that took a few hours to figure out :/). In addition, you can see the Intel chipset at BusID 00:02.0. Oddly, my last machine with this kind of setup completely wiped out the Optimus hardware from lspci whenever an external card was plugged in. The same dock now shows all hardware on the newer machine. This gives me some hope that what I'd like to do is possible...

Jamming the above into an xorg.conf config, I have the following:
Code:
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
This appears to fire up properly and blanks out the built-in screen on the laptop (no output defined to it). The other 4 screens fire up as I'd expect. I can list my xrandr providers:
Code:
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
... at which point I'm a little unsure. I was hoping to see three providers (two from nvidia and one from intel), but I only see one of each. I was thinking I could set the provider output sink from one nvidia device to another... but maybe not? Is there something I can do to make this work?
_________________
Life without passion is death in disguise
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Desktop Environments All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum