Dual GPU - Mixed Brand Help

System:
  Kernel: 5.18.1-arch1-1 arch: x86_64 bits: 64 compiler: gcc v: 12.1.0
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux
    root=UUID=6e538a78-4bce-4d23-922f-fcaf3b671583 rw [email protected]
    rd.udev.log_priority=3 vt.global_cursor_default=0
    systemd.unified_cgroup_hierarchy=1 loglevel=3 ibt=off
  Console: pty pts/0 DM: LightDM v: 1.30.0 Distro: Garuda Linux
    base: Arch Linux
Machine:
  Type: Desktop Mobo: Micro-Star model: MAG B550 TOMAHAWK (MS-7C91) v: 2.0
    serial: <superuser required> UEFI: American Megatrends LLC. v: A.A1
    date: 05/26/2022
CPU:
  Info: model: AMD Ryzen 7 5700G with Radeon Graphics bits: 64 type: MT MCP
    arch: Zen 3 family: 0x19 (25) model-id: 0x50 (80) stepping: 0
    microcode: 0xA50000D
  Topology: cpus: 1x cores: 8 tpc: 2 threads: 16 smt: enabled cache:
    L1: 512 KiB desc: d-8x32 KiB; i-8x32 KiB L2: 4 MiB desc: 8x512 KiB
    L3: 16 MiB desc: 1x16 MiB
  Speed (MHz): avg: 2992 high: 2995 min/max: 1400/4672 boost: enabled
    scaling: driver: acpi-cpufreq governor: performance cores: 1: 2995 2: 2993
    3: 2994 4: 2993 5: 2993 6: 2990 7: 2991 8: 2993 9: 2991 10: 2995 11: 2992
    12: 2987 13: 2989 14: 2994 15: 2993 16: 2991 bogomips: 121415
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
  Vulnerabilities:
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: spec_store_bypass
    mitigation: Speculative Store Bypass disabled via prctl
  Type: spectre_v1
    mitigation: usercopy/swapgs barriers and __user pointer sanitization
  Type: spectre_v2 mitigation: Retpolines, IBPB: conditional, IBRS_FW,
    STIBP: always-on, RSB filling
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: NVIDIA GP106 [GeForce GTX 1060 6GB] vendor: ZOTAC driver: nvidia
    v: 515.43.04 alternate: nouveau,nvidia_drm non-free: 515.xx+
    status: current (as of 2022-05) arch: Pascal pcie: gen: 1 speed: 2.5 GT/s
    lanes: 16 link-max: gen: 3 speed: 8 GT/s bus-ID: 10:00.0
    chip-ID: 10de:1c03 class-ID: 0300
  Device-2: AMD Cezanne driver: amdgpu v: kernel pcie: gen: 3 speed: 8 GT/s
    lanes: 16 link-max: gen: 4 speed: 16 GT/s ports: active: HDMI-A-1
    empty: DP-1,DP-2 bus-ID: 30:00.0 chip-ID: 1002:1638 class-ID: 0300
  Display: server: X.org v: 1.21.1.3 driver: X: loaded: amdgpu
    unloaded: nvidia gpu: amdgpu tty: 80x24
  Monitor-1: HDMI-A-1 model: Acer G247HYL serial: <filter> built: 2018
    res: 1920x1080 dpi: 93 gamma: 1.2 size: 527x296mm (20.75x11.65")
    diag: 604mm (23.8") ratio: 16:9 modes: max: 1920x1080 min: 720x400
  Message: GL data unavailable in console. Try -G --display
Audio:
  Device-1: NVIDIA GP106 High Definition Audio vendor: ZOTAC
    driver: snd_hda_intel v: kernel pcie: gen: 1 speed: 2.5 GT/s lanes: 16
    link-max: gen: 3 speed: 8 GT/s bus-ID: 10:00.1 chip-ID: 10de:10f1
    class-ID: 0403
  Device-2: AMD Renoir Radeon High Definition Audio driver: snd_hda_intel
    v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16 link-max: gen: 4
    speed: 16 GT/s bus-ID: 30:00.1 chip-ID: 1002:1637 class-ID: 0403
  Device-3: AMD Family 17h/19h HD Audio vendor: Micro-Star MSI
    driver: snd_hda_intel v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16
    link-max: gen: 4 speed: 16 GT/s bus-ID: 30:00.6 chip-ID: 1022:15e3
    class-ID: 0403
  Sound Server-1: ALSA v: k5.18.1-arch1-1 running: yes
  Sound Server-2: PulseAudio v: 16.0 running: no
  Sound Server-3: PipeWire v: 0.3.51 running: no
Network:
  Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
    vendor: Micro-Star MSI driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s
    lanes: 1 port: d000 bus-ID: 21:00.0 chip-ID: 10ec:8168 class-ID: 0200
  IF: enp33s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
  Device-2: Realtek RTL8125 2.5GbE vendor: Micro-Star MSI driver: r8169
    v: kernel pcie: gen: 2 speed: 5 GT/s lanes: 1 port: c000 bus-ID: 2a:00.0
    chip-ID: 10ec:8125 class-ID: 0200
  IF: enp42s0 state: down mac: <filter>
Bluetooth:
  Device-1: TP-Link UB500 Adapter type: USB driver: btusb v: 0.8
    bus-ID: 1-3:3 chip-ID: 2357:0604 class-ID: e001 serial: <filter>
  Report: bt-adapter ID: hci0 rfk-id: 0 state: up address: <filter>
Drives:
  Local Storage: total: 1.59 TiB used: 556.87 GiB (34.2%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Western Digital
    model: WDS250G2B0C size: 232.89 GiB block-size: physical: 512 B
    logical: 512 B speed: 31.6 Gb/s lanes: 4 type: SSD serial: <filter>
    rev: 211210WD temp: 27.9 C scheme: GPT
  ID-2: /dev/sda maj-min: 8:0 vendor: Samsung model: SSD 860 EVO 500GB
    size: 465.76 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
    type: SSD serial: <filter> rev: 1B6Q
  ID-3: /dev/sdb maj-min: 8:16 vendor: Western Digital
    model: WD10EZEX-21M2NA0 size: 931.51 GiB block-size: physical: 4096 B
    logical: 512 B speed: 6.0 Gb/s type: HDD rpm: 7200 serial: <filter>
    rev: 1A01 temp: 24 C scheme: GPT
Partition:
  ID-1: / raw-size: 232.59 GiB size: 232.59 GiB (100.00%)
    used: 57.73 GiB (24.8%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 576 KiB (0.2%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
  ID-3: /home raw-size: 232.59 GiB size: 232.59 GiB (100.00%)
    used: 57.73 GiB (24.8%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
Swap:
  Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
  ID-1: swap-1 type: zram size: 27.37 GiB used: 0 KiB (0.0%) priority: 100
    dev: /dev/zram0
Sensors:
  System Temperatures: cpu: N/A mobo: N/A
  Fan Speeds (RPM): cpu: 1243 fan-2: 0 fan-3: 1261 fan-4: 1380 fan-5: 0
    fan-6: 1067 fan-7: 963 fan-8: 0 fan-9: 0 fan-10: 0
  GPU: device: nvidia screen: :0.0 temp: 31 C device: amdgpu temp: 30.0 C
Info:
  Processes: 321 Uptime: 0m wakeups: 0 Memory: 27.37 GiB used: 1.2 GiB (4.4%)
  Init: systemd v: 251 target: graphical.target tool: systemctl Compilers:
  gcc: 12.1.0 clang: 13.0.1 Packages: pacman: 2053 lib: 516 Shell: Bash
  v: 5.1.16 running-in: pty pts/0 (SSH) inxi: 3.3.16
e[1;34mGaruda (2.6.3-2):e[0m
e[1;34m  System install date:e[0m     
e[1;34m  Last full system update:e[0m 2022-06-03
e[1;34m  Is partially upgraded:  e[0m No
e[1;34m  Relevant software:      e[0m NetworkManager
e[1;34m  Windows dual boot:      e[0m No/Undetected
e[1;34m  Snapshots:              e[0m Snapper
e[1;34m  Failed units:           e[0m lightdm.service 

I know it's not particularly helpful to say "I've tried everything" but my lordy it seems I have. Sadly so many docs - in general - where left to die 20 years ago and the newer info or posts graze the topic but don't hit the mark.

So I've got (see inxi) ;p i.e. an integrated Radeon GPU so crappy AMD doesn't want to tell you what it really is. Then my main GPU. I have been running all my screens off the primary GPU forever however the system is basically new i.e. now I have the APU so I can offload rendering the flanking screens on the crappy APU which only needs to draw mail, calendar, yada yada and reduce the primary GPU strain.

There have been so many iterations of my xorg.conf it really comes back to "I've tried everything" style vagary. I've read almost anything I can get my hands on but again so much was 2009, 2014 era, anything newer is all touching on laptops and switching between GPU not running them together much less running them AS their own GPU (lots of pass through talk or cuda slave (no output)). Of course lots of nVidia slurring and don't use Xorg but xrandr --providers docs are terrible and while I can get that to work it's basically the weakest GPU sets the bar so it does the exact opposite of allowing the aging GPU to be less taxed and makes it taxing to even be idle. Wayland is better performance wise but again just dumps all the work on the primary GPU so that is again pointless. I know you can do this. Sadly I've seen tutorials on it but thanks to "the algorithm" pushing "exciting" and "fresh" content it's virtually impossible to find some old videos or docs I once found long ago.

Below is my current text xorg.conf so if you spot an issue or know of something please let me know.

Right now amdgpu & nvidia drivers are being used but X dies with
(EE) Screen 0 deleted because of no matching config section.

If you notice the xorg.conf has xrandr syntax for the AMD outputs but if I change them to DP-1 and HDMI-A-1 I get
(EE) Screen 0 deleted because of no matching config section.
(II) UnloadModule: "nvidia"
(II) UnloadSubModule: "wfb"
(EE) Device(s) detected, but none match those in the config file.
(EE) Fatal server error:
(EE) no screens found(EE)

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    Screen      1  "Screen1" 1920 0
    Screen      2  "Screen2" 3840 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Acer G246HYL"
    HorizSync       31.0 - 75.0
    VertRefresh     56.0 - 75.0
    Option         "DPMS"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "Acer SA270"
    HorizSync       31.0 - 84.0
    VertRefresh     48.0 - 76.0
    Option         "DPMS"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor2"
    VendorName     "Unknown"
    ModelName      "Acer G247HYL"
    HorizSync       31.0 - 75.0
    VertRefresh     56.0 - 75.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "amdgpu"
#    Driver         "modesetting"
    VendorName     "Advanced Micro Devices"
    BoardName      "Cezanne"
#    BusID          "PCI:30:0:0"
    BusID          "AXI"
    Screen          0
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "NVIDIA GeForce GTX 1060 6GB"
    BusID          "PCI:16:0:0"
    Screen          1
EndSection

Section "Device"
    Identifier     "Device2"
    Driver         "amdgpu"
    VendorName     "Advanced Micro Devices"
    BoardName      "Cezanne"
    BusID          "PCI:30:0:0"
    Screen          2
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "metamodes" "DisplayPort-1-0: 1920x1080_60 +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "metamodes" "HDMI-0: 1920x1080_75 +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen2"
    Device         "Device2"
    Monitor        "Monitor2"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "metamodes" "HDMI-A-1-0: 1920x1080_60 +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

I might have missed it, but I've read your post a few times and I can't tell what the problem is that you're trying to solve?

3 Likes

To get both GPU functioning.

As far as I know, you don't need to configure anything manually, you should just be able to use the DE's display settings to arrange the monitors.

Of course, if this was working previously then you could also be hitting an issue with the 515.43 Nvidia driver release; 515.48 fixes a number of bugs.

2 Likes

The nVidia driver requires xorg.conf AND -- as I said in the post xrandr (which is the method you are talking about) is broken for more than one GPU where in it drags the performance of all GPU down the level of the weakest which is exactly as I said, the opposite of the point of using both GPU. In addition to dragging performance down it increases the load where as the nVidia GPU at idle is...idle. If you use Xrandr (the DE tool for displays) you can see the GPU will be at 50% even when idle depending on how crappy the "lesser" GPU is. Worse performance, more power waste, higher temps, 100% suck. If you define things with Xorg the GPU's run independently and idle for both will be 0%-1%ish and things run on GPU1 don't affect GPU0.

You can not split work using xrandr/wayland style setups. This has never worked previous as I also said this is some new hardware and I'm just bringing the APU online since the CPU upgrade. I said all this in the initial post.

Good luck!

4 Likes

As per my last email, kind regards. ;p

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.