Issue with eGPU performance (Gaming) on KDE

Good day everyone. Sorry if I’m lacking information as I’m trial running manjaro to see if it could be my daily driver and this is my first longer experience on linux desktop.

I’ve managed to got over my biggest hoop of getting the computer to use the eGPU when it’s connected instead the optimus-manager GPUs and finally got into testing my games.

I have seriusly bad performance issues with my games, all of them that I so far tried. One of the game examples is Snowrunner. which has platinum rating on protondb. It also seems it doesn’t matter what the game settings are, Low or Ultra - behaviour is exactly the same and I know this computer could handle this game in Ultra just fine on Win. FPS is very unstable, jumps between 10-70 and a lot. Doesn’t matter if the game is being ran with eGPU RTX 3080 or laptop’s RTX 3070, both behave same.

Same eGPU setup on my old laptop (with weaker CPU) and with both Pop_OS and Kubuntu didn’t have an issue like this.

Everything so far seems to indicate that correct GPUs are in use (nvidia-smiand set up the system monitor to display both GPU usage). To be safe I also tried with prime-run command.

I also tried gamemode, no change. Temperatures are also fine.

Games tested so far

  • Snowrunner
  • American Truck Simulator (proton version only as native version has an issue that it doesn’t scale properly for me, can’t get pass the main menu and I know this game ran fine in Proton with Pop OS when I tried in spring)
  • GTA 5 (similar symptoms as Snowrunner)
  • Timberborn (slight stuttering)

Only game that doesn’t FPS jumps so far

  • Voxel Tycoon (native linux version ran normally around 230+ FPS, however proton version was at 130FPS, though stable)

inxi

Summary
System:
  Kernel: 5.14.9-1-MANJARO x86_64 bits: 64 compiler: gcc v: 11.1.0 
  parameters: BOOT_IMAGE=/@/boot/vmlinuz-5.14-x86_64 
  root=UUID=25ea7cee-fa6c-46da-a2e9-45e5fb6ef8c7 rw rootflags=subvol=@ quiet 
  apparmor=1 security=apparmor 
  resume=UUID=2c2cc2e2-1598-4dd2-b885-60a163fd44e0 udev.log_priority=3 
  Desktop: KDE Plasma 5.22.5 tk: Qt 5.15.2 info: docker wm: kwin_x11 vt: 1 
  dm: SDDM Distro: Manjaro Linux base: Arch Linux 
Machine:
  Type: Desktop System: GIGABYTE product: AORUS 17G XD v: N/A serial: <filter> 
  Chassis: SYS_CHASSIS_ type: 3 v: y.y serial: <filter> 
  Mobo: N/A model: AORUS 17G XD serial: <filter> 
  UEFI: American Megatrends LLC. v: FB04 date: 07/12/2021 
Battery:
  ID-1: BAT1 charge: 99.0 Wh (100.0%) condition: 99.0/99.0 Wh (100.0%) 
  volts: 17.0 min: 15.2 model: GIGABYTE Aero 15 type: Li-ion serial: N/A 
  status: Full 
  ID-2: hidpp_battery_0 charge: N/A condition: N/A volts: 4.2 min: N/A 
  model: Logitech G903 LIGHTSPEED Wireless Gaming Mouse w/ HERO type: N/A 
  serial: <filter> status: Discharging 
Memory:
  RAM: total: 31.1 GiB used: 8.12 GiB (26.1%) 
  RAM Report: permissions: Unable to run dmidecode. Root privileges required. 
CPU:
  Info: 8-Core model: 11th Gen Intel Core i7-11800H bits: 64 type: MT MCP 
  arch: Tiger Lake family: 6 model-id: 8D (141) stepping: 1 microcode: 2C 
  cache: L2: 24 MiB bogomips: 73744 
  Speed: 2269 MHz min/max: 800/4600 MHz Core speeds (MHz): 1: 2269 2: 2557 
  3: 4009 4: 4271 5: 2371 6: 1611 7: 2086 8: 3812 9: 2564 10: 4372 11: 1437 
  12: 3327 13: 3896 14: 1823 15: 2010 16: 2992 
  Flags: 3dnowprefetch abm acpi adx aes aperfmperf apic arat arch_capabilities 
  arch_perfmon art avx avx2 avx512_bitalg avx512_vbmi2 avx512_vnni 
  avx512_vp2intersect avx512_vpopcntdq avx512bw avx512cd avx512dq avx512f 
  avx512ifma avx512vbmi avx512vl bmi1 bmi2 bts cat_l2 cdp_l2 clflush 
  clflushopt clwb cmov constant_tsc cpuid cpuid_fault cx16 cx8 de ds_cpl 
  dtes64 dtherm dts epb ept ept_ad erms est f16c flexpriority flush_l1d fma 
  fpu fsgsbase fsrm fxsr gfni ht hwp hwp_act_window hwp_epp hwp_notify 
  hwp_pkg_req ibpb ibrs ibrs_enhanced ida intel_pt invpcid invpcid_single 
  lahf_lm lm mca mce md_clear mmx monitor movbe movdir64b movdiri msr mtrr 
  nonstop_tsc nopl nx ospke pae pat pbe pcid pclmulqdq pdcm pdpe1gb pebs pge 
  pku pln pni popcnt pse pse36 pts rdpid rdrand rdseed rdt_a rdtscp rep_good 
  sdbg sep sha_ni smap smep split_lock_detect ss ssbd sse sse2 sse4_1 sse4_2 
  ssse3 stibp syscall tm tm2 tpr_shadow tsc tsc_adjust tsc_deadline_timer 
  tsc_known_freq umip vaes vme vmx vnmi vpclmulqdq vpid x2apic xgetbv1 xsave 
  xsavec xsaveopt xsaves xtopology xtpr 
  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 and seccomp 
  Type: spectre_v1 
  mitigation: usercopy/swapgs barriers and __user pointer sanitization 
  Type: spectre_v2 mitigation: Enhanced IBRS, IBPB: conditional, RSB filling 
  Type: srbds status: Not affected 
  Type: tsx_async_abort status: Not affected 
Graphics:
  Device-1: Intel TigerLake-H GT1 [UHD Graphics] vendor: Gigabyte driver: i915 
  v: kernel bus-ID: 00:02.0 chip-ID: 8086:9a60 class-ID: 0300 
  Device-2: NVIDIA GA104M [GeForce RTX 3070 Mobile / Max-Q] vendor: Gigabyte 
  driver: nvidia v: 470.74 alternate: nouveau,nvidia_drm bus-ID: 01:00.0 
  chip-ID: 10de:249d class-ID: 0300 
  Device-3: NVIDIA GA102 [GeForce RTX 3080] vendor: Gigabyte driver: nvidia 
  v: 470.74 alternate: nouveau,nvidia_drm bus-ID: 05:00.0 chip-ID: 10de:2206 
  class-ID: 0300 
  Device-4: IMC Networks USB2.0 HD UVC WebCam type: USB driver: uvcvideo 
  bus-ID: 3-9:4 chip-ID: 13d3:56a2 class-ID: 0e02 serial: <filter> 
  Display: x11 server: X.Org 1.20.13 compositor: kwin_x11 driver: 
  loaded: modesetting,nvidia display-ID: :0 screens: 1 
  Screen-1: 0 s-res: 7920x1440 s-dpi: 96 s-size: 2095x381mm (82.5x15.0") 
  s-diag: 2129mm (83.8") 
  Monitor-1: DP-2 res: 2560x1440 hz: 60 dpi: 124 size: 526x296mm (20.7x11.7") 
  diag: 604mm (23.8") 
  Monitor-2: HDMI-1 res: 1920x1080 hz: 60 dpi: 93 size: 527x296mm (20.7x11.7") 
  diag: 604mm (23.8") 
  Monitor-3: DP-4 res: 3440x1440 dpi: 109 size: 800x330mm (31.5x13.0") 
  diag: 865mm (34.1") 
  OpenGL: renderer: NVIDIA GeForce RTX 3080/PCIe/SSE2 v: 4.6.0 NVIDIA 470.74 
  direct render: Yes 
Audio:
  Device-1: Intel Tiger Lake-H HD Audio vendor: Gigabyte driver: snd_hda_intel 
  v: kernel alternate: snd_sof_pci_intel_tgl bus-ID: 00:1f.3 
  chip-ID: 8086:43c8 class-ID: 0403 
  Device-2: NVIDIA GA104 High Definition Audio vendor: Gigabyte 
  driver: snd_hda_intel v: kernel bus-ID: 01:00.1 chip-ID: 10de:228b 
  class-ID: 0403 
  Device-3: NVIDIA GA102 High Definition Audio vendor: Gigabyte 
  driver: snd_hda_intel v: kernel bus-ID: 05:00.1 chip-ID: 10de:1aef 
  class-ID: 0403 
  Device-4: SteelSeries ApS Arctis Pro Wireless type: USB 
  driver: hid-generic,snd-usb-audio,usbhid bus-ID: 3-4.1.3.3:14 
  chip-ID: 1038:1294 class-ID: 0300 
  Sound Server-1: ALSA v: k5.14.9-1-MANJARO running: yes 
  Sound Server-2: JACK v: 1.9.19 running: no 
  Sound Server-3: PulseAudio v: 15.0 running: yes 
  Sound Server-4: PipeWire v: 0.3.38 running: yes 
Network:
  Device-1: Realtek RTL8125 2.5GbE vendor: Gigabyte driver: r8169 v: kernel 
  port: 3000 bus-ID: 2e:00.0 chip-ID: 10ec:8125 class-ID: 0200 
  IF: enp46s0 state: down mac: <filter> 
  Device-2: Intel Wi-Fi 6 AX200 driver: iwlwifi v: kernel port: 3000 
  bus-ID: 30:00.0 chip-ID: 8086:2723 class-ID: 0280 
  IF: wlp48s0 state: up mac: <filter> 
  IP v4: <filter> type: dynamic noprefixroute scope: global 
  broadcast: <filter> 
  IP v6: <filter> type: noprefixroute scope: link 
  Device-3: ASIX AX88179 Gigabit Ethernet type: USB driver: ax88179_178a 
  bus-ID: 10-1:2 chip-ID: 0b95:1790 class-ID: ff00 serial: <filter> 
  IF: enp10s0u1 state: down mac: <filter> 
  IF-ID-1: docker0 state: up speed: 10000 Mbps duplex: unknown mac: <filter> 
  IP v4: <filter> scope: global broadcast: <filter> 
  IP v6: <filter> scope: link 
  IF-ID-2: docker_gwbridge state: up speed: 10000 Mbps duplex: unknown 
  mac: <filter> 
  IP v4: <filter> scope: global broadcast: <filter> 
  IP v6: <filter> scope: link 
  IF-ID-3: tun0 state: unknown speed: 10 Mbps duplex: full mac: N/A 
  IP v4: <filter> type: noprefixroute scope: global 
  IP v6: <filter> virtual: stable-privacy scope: link 
  IF-ID-4: veth2a1420e state: up speed: 10000 Mbps duplex: full mac: <filter> 
  IF-ID-5: veth770739a state: up speed: 10000 Mbps duplex: full mac: <filter> 
  WAN IP: <filter> 
Bluetooth:
  Device-1: Intel AX200 Bluetooth type: USB driver: btusb v: 0.8 
  bus-ID: 3-10:5 chip-ID: 8087:0029 class-ID: e001 
  Report: rfkill ID: hci0 rfk-id: 1 state: up address: see --recommends 
Logical:
  Message: No logical block device data found. 
RAID:
  Message: No RAID data found. 
Drives:
  Local Storage: total: 2.29 TiB used: 539.01 GiB (23.0%) 
  SMART Message: Unable to run smartctl. Root privileges required. 
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung model: MZVL2512HCJQ-00B00 
  size: 476.94 GiB block-size: physical: 512 B logical: 512 B speed: 63.2 Gb/s 
  lanes: 4 type: SSD serial: <filter> rev: GXA7301Q temp: 36.9 C scheme: GPT 
  ID-2: /dev/nvme1n1 maj-min: 259:10 vendor: Samsung 
  model: SSD 970 EVO Plus 2TB size: 1.82 TiB block-size: physical: 512 B 
  logical: 512 B speed: 31.6 Gb/s lanes: 4 type: SSD serial: <filter> 
  rev: 2B2QEXM7 temp: 37.9 C scheme: GPT 
  Message: No optical or floppy data found. 
Partition:
  ID-1: / raw-size: 78.12 GiB size: 78.12 GiB (100.00%) 
  used: 30.07 GiB (38.5%) fs: btrfs dev: /dev/nvme0n1p8 maj-min: 259:8 
  label: N/A uuid: 25ea7cee-fa6c-46da-a2e9-45e5fb6ef8c7 
  ID-2: /boot/efi raw-size: 512 MiB size: 511 MiB (99.80%) 
  used: 568 KiB (0.1%) fs: vfat dev: /dev/nvme0n1p6 maj-min: 259:6 
  label: NO_LABEL uuid: EB1E-D165 
  ID-3: /home raw-size: 212.34 GiB size: 207.95 GiB (97.93%) 
  used: 6.34 GiB (3.0%) fs: ext4 dev: /dev/nvme0n1p9 maj-min: 259:9 label: N/A 
  uuid: 22912ab7-cb3c-4a07-a241-06d2959379a3 
  ID-4: /media/ssd2tb raw-size: 585.94 GiB size: 575.67 GiB (98.25%) 
  used: 502.6 GiB (87.3%) fs: ext4 dev: /dev/nvme1n1p3 maj-min: 259:13 
  label: SSD-2TB-manjaro uuid: 95c4dfc4-621c-46e6-98dd-e7ff251b12f2 
  ID-5: /run/timeshift/backup raw-size: 78.12 GiB size: 78.12 GiB (100.00%) 
  used: 30.07 GiB (38.5%) fs: btrfs dev: /dev/nvme0n1p8 maj-min: 259:8 
  label: N/A uuid: 25ea7cee-fa6c-46da-a2e9-45e5fb6ef8c7 
  ID-6: /var/cache raw-size: 78.12 GiB size: 78.12 GiB (100.00%) 
  used: 30.07 GiB (38.5%) fs: btrfs dev: /dev/nvme0n1p8 maj-min: 259:8 
  label: N/A uuid: 25ea7cee-fa6c-46da-a2e9-45e5fb6ef8c7 
  ID-7: /var/log raw-size: 78.12 GiB size: 78.12 GiB (100.00%) 
  used: 30.07 GiB (38.5%) fs: btrfs dev: /dev/nvme0n1p8 maj-min: 259:8 
  label: N/A uuid: 25ea7cee-fa6c-46da-a2e9-45e5fb6ef8c7 
Swap:
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default) 
  ID-1: swap-1 type: partition size: 2 GiB used: 0 KiB (0.0%) priority: -2 
  dev: /dev/nvme0n1p7 maj-min: 259:7 label: N/A 
  uuid: 2c2cc2e2-1598-4dd2-b885-60a163fd44e0 
Unmounted:
  ID-1: /dev/nvme0n1p1 maj-min: 259:1 size: 260 MiB fs: vfat label: SYSTEM 
  uuid: 18F1-46C7 
  ID-2: /dev/nvme0n1p2 maj-min: 259:2 size: 16 MiB fs: <superuser required> 
  label: N/A uuid: N/A 
  ID-3: /dev/nvme0n1p3 maj-min: 259:3 size: 167.73 GiB fs: ntfs label: Windows 
  uuid: 56C4F1BBC4F19D85 
  ID-4: /dev/nvme0n1p4 maj-min: 259:4 size: 1024 MiB fs: ntfs label: WinRE 
  uuid: D632F1D132F1B699 
  ID-5: /dev/nvme0n1p5 maj-min: 259:5 size: 14.97 GiB fs: ntfs 
  label: RecoveryImage uuid: 081AF3D51AF3BE2E 
  ID-6: /dev/nvme1n1p1 maj-min: 259:11 size: 16 MiB fs: <superuser required> 
  label: N/A uuid: N/A 
  ID-7: /dev/nvme1n1p2 maj-min: 259:12 size: 1.25 TiB fs: ntfs label: SSD 2TB 
  uuid: 403AC92E3AC921B0 
USB:
  Hub-1: 1-0:1 info: Full speed (or root) Hub ports: 1 rev: 2.0 
  speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900 
  Hub-2: 2-0:1 info: Full speed (or root) Hub ports: 4 rev: 3.1 speed: 10 Gb/s 
  chip-ID: 1d6b:0003 class-ID: 0900 
  Hub-3: 3-0:1 info: Full speed (or root) Hub ports: 16 rev: 2.0 
  speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900 
  Hub-4: 3-4:2 info: Microchip (formerly SMSC) Hub ports: 4 rev: 2.1 
  speed: 480 Mb/s chip-ID: 0424:2744 class-ID: 0900 
  Hub-5: 3-4.1:6 info: Texas Instruments TUSB8041 4-Port Hub ports: 4 rev: 2.1 
  speed: 480 Mb/s chip-ID: 0451:8142 class-ID: 0900 
  Hub-6: 3-4.1.3:9 info: Texas Instruments TUSB2036 Hub ports: 3 rev: 1.1 
  speed: 12 Mb/s chip-ID: 0451:2036 class-ID: 0900 
  Device-1: 3-4.1.3.2:12 info: SteelSeries ApS Arctis Pro Wireless type: HID 
  driver: hid-generic,usbhid interfaces: 2 rev: 2.0 speed: 12 Mb/s 
  power: 500mA chip-ID: 1038:1290 class-ID: 0300 
  Device-2: 3-4.1.3.3:14 info: SteelSeries ApS Arctis Pro Wireless 
  type: Audio,HID driver: hid-generic,snd-usb-audio,usbhid interfaces: 6 
  rev: 1.1 speed: 12 Mb/s power: 100mA chip-ID: 1038:1294 class-ID: 0300 
  Device-3: 3-4.1.4:10 info: LG USA USB Controls type: HID 
  driver: hid-generic,usbhid interfaces: 1 rev: 2.0 speed: 12 Mb/s 
  chip-ID: 043e:9a39 class-ID: 0300 serial: <filter> 
  Hub-7: 3-4.2:8 info: VIA Labs VL812 Hub ports: 4 rev: 2.1 speed: 480 Mb/s 
  chip-ID: 2109:2812 class-ID: 0900 
  Device-1: 3-4.2.1:11 info: Logitech PowerPlay Wireless Charging System 
  type: Keyboard,Mouse,HID driver: logitech-djreceiver,usbhid interfaces: 3 
  rev: 2.0 speed: 12 Mb/s power: 498mA chip-ID: 046d:c53a class-ID: 0300 
  Device-2: 3-4.2.3:13 info: Logitech USB Receiver type: Keyboard,Mouse,HID 
  driver: hid-generic,usbhid interfaces: 3 rev: 2.0 speed: 12 Mb/s power: 98mA 
  chip-ID: 046d:c541 class-ID: 0300 
  Device-3: 3-8:3 info: Elan Micro ELAN:Fingerprint type: <vendor specific> 
  driver: N/A interfaces: 1 rev: 2.0 speed: 12 Mb/s power: 100mA 
  chip-ID: 04f3:0c11 class-ID: 0000 
  Device-4: 3-9:4 info: IMC Networks USB2.0 HD UVC WebCam type: Video 
  driver: uvcvideo interfaces: 2 rev: 2.0 speed: 480 Mb/s power: 500mA 
  chip-ID: 13d3:56a2 class-ID: 0e02 serial: <filter> 
  Device-5: 3-10:5 info: Intel AX200 Bluetooth type: Bluetooth driver: btusb 
  interfaces: 2 rev: 2.0 speed: 12 Mb/s power: 100mA chip-ID: 8087:0029 
  class-ID: e001 
  Device-6: 3-11:7 info: Chu Yuen Enterprise Fusion RGB KB type: Keyboard,HID 
  driver: gigabytekbd,usbhid interfaces: 3 rev: 2.0 speed: 12 Mb/s 
  power: 500mA chip-ID: 1044:7a3c class-ID: 0301 
  Hub-8: 4-0:1 info: Full speed (or root) Hub ports: 8 rev: 3.1 speed: 20 Gb/s 
  chip-ID: 1d6b:0003 class-ID: 0900 
  Hub-9: 4-4:2 info: Microchip (formerly SMSC) Hub ports: 4 rev: 3.1 
  speed: 5 Gb/s chip-ID: 0424:5744 class-ID: 0900 
  Hub-10: 4-4.1:3 info: Texas Instruments TUSB8041 4-Port Hub ports: 4 
  rev: 3.0 speed: 5 Gb/s chip-ID: 0451:8140 class-ID: 0900 
  Hub-11: 4-4.2:4 info: VIA Labs VL812 Hub ports: 4 rev: 3.0 speed: 5 Gb/s 
  chip-ID: 2109:0812 class-ID: 0900 
  Hub-12: 5-0:1 info: Full speed (or root) Hub ports: 2 rev: 2.0 
  speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900 
  Hub-13: 6-0:1 info: Full speed (or root) Hub ports: 2 rev: 3.1 
  speed: 10 Gb/s chip-ID: 1d6b:0003 class-ID: 0900 
  Hub-14: 7-0:1 info: Full speed (or root) Hub ports: 2 rev: 2.0 
  speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900 
  Hub-15: 8-0:1 info: Full speed (or root) Hub ports: 2 rev: 3.1 
  speed: 10 Gb/s chip-ID: 1d6b:0003 class-ID: 0900 
  Hub-16: 9-0:1 info: Full speed (or root) Hub ports: 2 rev: 2.0 
  speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900 
  Device-1: 9-2:2 info: Razer USA Core X Chroma type: Keyboard,Mouse 
  driver: hid-generic,usbhid interfaces: 3 rev: 2.0 speed: 12 Mb/s 
  power: 500mA chip-ID: 1532:0f1a class-ID: 0300 
  Hub-17: 10-0:1 info: Full speed (or root) Hub ports: 2 rev: 3.1 
  speed: 10 Gb/s chip-ID: 1d6b:0003 class-ID: 0900 
  Device-1: 10-1:2 info: ASIX AX88179 Gigabit Ethernet type: Network 
  driver: ax88179_178a interfaces: 1 rev: 3.0 speed: 5 Gb/s power: 8mA 
  chip-ID: 0b95:1790 class-ID: ff00 serial: <filter> 
Sensors:
  System Temperatures: cpu: 49.0 C mobo: N/A gpu: nvidia temp: 48 C 
  Fan Speeds (RPM): N/A gpu: nvidia fan: 62% 
Info:
  Processes: 556 Uptime: 1h 7m wakeups: 4 Init: systemd v: 249 tool: systemctl 
  Compilers: gcc: 11.1.0 clang: 12.0.1 Packages: 1548 pacman: 1542 lib: 420 
  flatpak: 6 Shell: Zsh v: 5.8 default: Bash v: 5.1.8 running-in: konsole 
  inxi: 3.3.06

nvidia-smi while the game is running

Summary
nvidia-smi                                                                                                                         ✔ 
Wed Oct  6 11:12:59 2021       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.74       Driver Version: 470.74       CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| 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 ...  Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   45C    P8    17W /  N/A |     16MiB /  7982MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   1  NVIDIA GeForce ...  Off  | 00000000:05:00.0  On |                  N/A |
| 65%   57C    P0   172W / 320W |   5009MiB / 10018MiB |     97%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1780      G   /usr/lib/Xorg                       4MiB |
|    1   N/A  N/A      1780      G   /usr/lib/Xorg                    1734MiB |
|    1   N/A  N/A     18692      G   /usr/bin/kwin_x11                 204MiB |
|    1   N/A  N/A     19456      G   ...AAAAAAAAA= --shared-files       25MiB |
|    1   N/A  N/A     19471      G   ...gAAAAAAAAA --shared-files       10MiB |
|    1   N/A  N/A     22063      G   /usr/bin/plasmashell              104MiB |
|    1   N/A  N/A     24676      G   ...AAAAAAAAA= --shared-files       42MiB |
|    1   N/A  N/A     25139      G   ...AAAAAAAAA= --shared-files      106MiB |
|    1   N/A  N/A     26889      G   ...AAAAAAAAA= --shared-files       29MiB |
|    1   N/A  N/A     94839      G   ...AAAAAAAAA= --shared-files      114MiB |
|    1   N/A  N/A    164033      G   /usr/bin/nextcloud                 13MiB |
|    1   N/A  N/A    332798      G   ...e/Steam/ubuntu12_32/steam      126MiB |
|    1   N/A  N/A    332802      G   ./steamwebhelper                    3MiB |
|    1   N/A  N/A    332855      G   ...oken=14731465415564291296      401MiB |
|    1   N/A  N/A    335664    C+G   ...ources\Bin\SnowRunner.exe     1975MiB |
+-----------------------------------------------------------------------------+

compositor settings

Summary

I tested both versions of my setup:

  • 3 monitor setup, all connected to my egpu. Laptop screen disabled
  • Laptop monitor only, no egpu connected

Anybody has any tips on what to investigate and how to proceed?

Are you sure you have an external GPU? Because that is laptop technology and on a desktop a PCI card would be more appropriate… :thinking:

Do you have 2 ESPs on the same disk? That is not allowed by the UEFI specifications

  • How did you install the drivers?

  • What is the output of

    mhwd --listinstalled
    
* Do you want to use both 3070 and 3080 for gaming? * Have you tried the 3080 all by itself?

Ah, you already did…

:thinking:

Yes, coincidentally both my Laptop and my eGPU are Gigabyte. Laptop is Gigabyte Aorus 17G XD and eGPU is Gigabyte RTX 3080 Eagle in Razer Core X Chrome via Thunderbolt 4.

I followed this tutorial: [root tip] Dual boot Manjaro and Windows
to set up Manjaro to dual boot with Windows 10, in there it was suggested to add new EFI boot partition, nothing about deleting the Windows one (I guess that’s so that windows won’t overwrite GRUB).

So far nothing regarding UEFI is yelling at me (this computer doesn’t even support legacy boot from what I see in BIOS)

Opened the manjaro Hardware configuration and clicked Auto Install Proprietary Driver.

Output of mhwd:

mhwd --listinstalled                                                                           ✔ 
> Installed PCI configs:
--------------------------------------------------------------------------------
                  NAME               VERSION          FREEDRIVER           TYPE
--------------------------------------------------------------------------------
           video-linux            2018.05.04                true            PCI
     video-modesetting            2020.01.13                true            PCI
video-hybrid-intel-nvidia-prime            2021.07.28               false            PCI


Warning: No installed USB configs!

Just for the heck of it I went and attempted to to use Wayland. Even though I couldn’t get my eGPU and external displays to work with I did notice a huge improvement on my dedicated RTX 3070. Could this indicate issue with Xorg?

I’ve configured my xorg like so: Nvidia Optimus + egpu - Joplin Server

Optimus Manager generated xorg conf
Section "Files"
        ModulePath "/usr/lib/nvidia"
        ModulePath "/usr/lib32/nvidia"
        ModulePath "/usr/lib32/nvidia/xorg/modules"
        ModulePath "/usr/lib32/xorg/modules"
        ModulePath "/usr/lib64/nvidia/xorg/modules"
        ModulePath "/usr/lib64/nvidia/xorg"
        ModulePath "/usr/lib64/xorg/modules"
EndSection

Section "ServerLayout"
        Identifier "layout"
        Screen 0 "integrated"
        Inactive "nvidia"
        Option "AllowNVIDIAGPUScreens"
EndSection

Section "Device"
        Identifier "integrated"
        Driver "modesetting"
        BusID "PCI:0:2:0"
        Option "DRI" "3"
EndSection

Section "Screen"
        Identifier "integrated"
        Device "integrated"
        Option "AllowExternalGpus"
EndSection

Section "Device"
        Identifier "nvidia"
        Driver "nvidia"
        BusID "PCI:1:0:0"
        Option "Coolbits" "28"
EndSection

Section "Screen"
        Identifier "nvidia"
        Device "nvidia"
EndSection

Here’s a table of framerate comparions from my evening testing with Snowrunner (seems to have the biggest hit)

Framerate Comparisons
OS Setting Resolution Framerate
Windows eGPU 3440x1440 ~80 FPS
Manjaro Xorg - eGPU 3440x1440 ~30 FPS
Manjaro Xorg - eGPU Multiple resolutions in windowed mode down to 1080p ~30 FPS
Manjaro Xorg - dGPU Optimus Manager set to NVIDIA 3440 x 1440 ~20 FPS
Manjaro Xorg - dGPU Optimus Manager set to Hybrid 3440 x 1440 ~30 FPS
Manjaro Xorg - dGPU Optimus Manager set to NVIDIA Laptop’s 1920 x 1080 ~30 FPS
Manjaro Xorg - dGPU Optimus Manager set to Hybrid Laptop’s 1920 x 1080 ~60 FPS
Manjaro Wayland Laptop’s 1920 x 1080 ~80 FPS

Where do you read that?

1 Like

@linux-aarhus AFAIK, one physical disk can only contain 1 ESP. (You might be more up-to-date than me. Please correct me if I’m wrong) :scream: Apparently I’m wrong… (I’ve run into issues with that but that was years ago) @GameBurrow Please ignore my UEFI ramblings… @stephane Were you aware multiple ESPs on 1 disk were allowed? :thinking:

Wow! Good data. What does glxgears show?

Did you try running it on the PCI device? (the 3080, bus-ID: 05:00.0)

What’s the Windows driver version???

:face_with_monocle:

glxgears while running on eGPU, fullscreened to my 3440x1440 monitor

Seems to report back correct GPU

glxgears -info -fullscreen                                                                                                                                                                                                                                                                         1 ✘  19s  
Running synchronized to the vertical refresh.  The framerate should be
approximately the same as the monitor refresh rate.
GL_RENDERER   = NVIDIA GeForce RTX 3080/PCIe/SSE2
GL_VERSION    = 4.6.0 NVIDIA 470.74
GL_VENDOR     = NVIDIA Corporation
GL_EXTENSIONS = GL_AMD_multi_draw_indirect GL_AMD_seamless_cubemap_per_texture GL_AMD_vertex_shader_viewport_index GL_AMD_vertex_shader_layer GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_bindless_texture GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_clear_buffer_object GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_color_buffer_float GL_ARB_compatibility GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth GL_ARB_compute_shader GL_ARB_compute_variable_group_size GL_ARB_conditional_render_inverted GL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_derivative_control GL_ARB_direct_state_access GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced GL_ARB_enhanced_layouts GL_ARB_ES2_compatibility GL_ARB_ES3_compatibility GL_ARB_ES3_1_compatibility GL_ARB_ES3_2_compatibility GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_layer_viewport GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_fragment_shader_interlock GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_gl_spirv GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader_int64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_imaging GL_ARB_indirect_parameters GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_parallel_shader_compile GL_ARB_pipeline_statistics_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_polygon_offset_clamp GL_ARB_post_depth_coverage GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_query_buffer_object GL_ARB_robust_buffer_access_behavior GL_ARB_robustness GL_ARB_sample_locations GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counter_ops GL_ARB_shader_atomic_counters GL_ARB_shader_ballot GL_ARB_shader_bit_encoding GL_ARB_shader_clock GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_shader_image_load_store GL_ARB_shader_image_size GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_storage_buffer_object GL_ARB_shader_subroutine GL_ARB_shader_texture_image_samples GL_ARB_shader_texture_lod GL_ARB_shading_language_100 GL_ARB_shader_viewport_layer_array GL_ARB_shading_language_420pack GL_ARB_shading_language_include GL_ARB_shading_language_packing GL_ARB_shadow GL_ARB_sparse_buffer GL_ARB_sparse_texture GL_ARB_sparse_texture2 GL_ARB_sparse_texture_clamp GL_ARB_spirv_extensions GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_barrier GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range GL_ARB_texture_compression GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_cube_map_array GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_filter_anisotropic GL_ARB_texture_filter_minmax GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8 GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_transform_feedback_overflow_query GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_texture_float GL_ATI_texture_mirror_once GL_S3_s3tc GL_EXT_texture_env_add GL_EXT_abgr GL_EXT_bgra GL_EXT_bindable_uniform GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_Cg_shader GL_EXT_depth_bounds_test GL_EXT_direct_state_access GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXTX_framebuffer_mixed_formats GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_multiview_texture_multisample GL_EXT_multiview_timer_query GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_polygon_offset_clamp GL_EXT_post_depth_coverage GL_EXT_provoking_vertex GL_EXT_raster_multisample GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_shader_objects GL_EXT_separate_specular_color GL_EXT_shader_image_load_formatted GL_EXT_shader_image_load_store GL_EXT_shader_integer_mix GL_EXT_shadow_funcs GL_EXT_sparse_texture2 GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_latc GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_filter_minmax GL_EXT_texture_integer GL_EXT_texture_lod GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_shadow_lod GL_EXT_texture_shared_exponent GL_EXT_texture_sRGB GL_EXT_texture_sRGB_R8 GL_EXT_texture_sRGB_decode GL_EXT_texture_storage GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback2 GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit GL_EXT_window_rectangles GL_EXT_x11_sync_object GL_EXT_import_sync_object GL_NV_robustness_video_memory_purge GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_KHR_context_flush_control GL_KHR_debug GL_EXT_memory_object GL_EXT_memory_object_fd GL_NV_memory_object_sparse GL_KHR_parallel_shader_compile GL_KHR_no_error GL_KHR_robust_buffer_access_behavior GL_KHR_robustness GL_EXT_semaphore GL_EXT_semaphore_fd GL_NV_timeline_semaphore GL_KHR_shader_subgroup GL_KTX_buffer_region GL_NV_alpha_to_coverage_dither_control GL_NV_bindless_multi_draw_indirect GL_NV_bindless_multi_draw_indirect_count GL_NV_bindless_texture GL_NV_blend_equation_advanced GL_NV_blend_equation_advanced_coherent GL_NVX_blend_equation_advanced_multi_draw_buffers GL_NV_blend_minmax_factor GL_NV_blend_square GL_NV_clip_space_w_scaling GL_NV_command_list GL_NV_compute_program5 GL_NV_compute_shader_derivatives GL_NV_conditional_render GL_NV_conservative_raster GL_NV_conservative_raster_dilate GL_NV_conservative_raster_pre_snap GL_NV_conservative_raster_pre_snap_triangles GL_NV_conservative_raster_underestimation GL_NV_copy_depth_to_color GL_NV_copy_image GL_NV_depth_buffer_float GL_NV_depth_clamp GL_NV_draw_texture GL_NV_draw_vulkan_image GL_NV_ES1_1_compatibility GL_NV_ES3_1_compatibility GL_NV_explicit_multisample GL_NV_feature_query GL_NV_fence GL_NV_fill_rectangle GL_NV_float_buffer GL_NV_fog_distance GL_NV_fragment_coverage_to_color GL_NV_fragment_program GL_NV_fragment_program_option GL_NV_fragment_program2 GL_NV_fragment_shader_barycentric GL_NV_fragment_shader_interlock GL_NV_framebuffer_mixed_samples GL_NV_framebuffer_multisample_coverage GL_NV_geometry_shader4 GL_NV_geometry_shader_passthrough GL_NV_gpu_program4 GL_NV_internalformat_sample_query GL_NV_gpu_program4_1 GL_NV_gpu_program5 GL_NV_gpu_program5_mem_extended GL_NV_gpu_program_fp64 GL_NV_gpu_shader5 GL_NV_half_float GL_NV_light_max_exponent GL_NV_memory_attachment GL_NV_mesh_shader GL_NV_multisample_coverage GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil GL_NV_parameter_buffer_object GL_NV_parameter_buffer_object2 GL_NV_path_rendering GL_NV_path_rendering_shared_edge GL_NV_pixel_data_range GL_NV_point_sprite GL_NV_primitive_restart GL_NV_primitive_shading_rate GL_NV_query_resource GL_NV_query_resource_tag GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_representative_fragment_test GL_NV_sample_locations GL_NV_sample_mask_override_coverage GL_NV_scissor_exclusive GL_NV_shader_atomic_counters GL_NV_shader_atomic_float GL_NV_shader_atomic_float64 GL_NV_shader_atomic_fp16_vector GL_NV_shader_atomic_int64 GL_NV_shader_buffer_load GL_NV_shader_storage_buffer_object GL_NV_shader_subgroup_partitioned GL_NV_shader_texture_footprint GL_NV_shading_rate_image GL_NV_stereo_view_rendering GL_NV_texgen_reflection GL_NV_texture_barrier GL_NV_texture_compression_vtc GL_NV_texture_dirty_tile_map GL_NV_texture_env_combine4 GL_NV_texture_multisample GL_NV_texture_rectangle GL_NV_texture_rectangle_compressed GL_NV_texture_shader GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_transform_feedback GL_NV_transform_feedback2 GL_NV_uniform_buffer_unified_memory GL_NV_vdpau_interop GL_NV_vdpau_interop2 GL_NV_vertex_array_range GL_NV_vertex_array_range2 GL_NV_vertex_attrib_integer_64bit GL_NV_vertex_buffer_unified_memory GL_NV_vertex_program GL_NV_vertex_program1_1 GL_NV_vertex_program2 GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_NV_viewport_array2 GL_NV_viewport_swizzle GL_NVX_conditional_render GL_NV_gpu_multicast GL_NVX_progress_fence GL_NVX_gpu_memory_info GL_NVX_nvenc_interop GL_NV_shader_thread_group GL_NV_shader_thread_shuffle GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_OVR_multiview GL_OVR_multiview2 GL_SGIS_generate_mipmap GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum 
VisualID 39, 0x27
302 frames in 5.0 seconds = 60.356 FPS
300 frames in 5.0 seconds = 59.948 FPS
300 frames in 5.0 seconds = 59.951 FPS
300 frames in 5.0 seconds = 59.952 FPS
300 frames in 5.0 seconds = 59.916 FPS
300 frames in 5.0 seconds = 59.980 FPS
300 frames in 5.0 seconds = 59.937 FPS

You mean NVIDIA driver in Windows?
From what I see in multiple game logs: 30.0.14.7212 - so it should be 472.12.

1 Like

you can have more ESP , but only one with boot flag by disk ,
the other will never be seen , or accepted

3 Likes

There’s a discrepancy between these 2:

Because:

So it should be running on the eGPU, not the dGPU… (or did you just change that?)

:thinking:

Ah, you missed the link I posted together with 10-optimus-manager.conf

I also have this file in conf.d folder for xorg 11-nvidia-egpu.conf:

11-nvidia-egpu.con
Section "ServerLayout"
   Identifier "egpu"
   Screen 0 "nvidiaegpu"
   Inactive "nvidia"
   Inactive "integrated"
EndSection

Section "Device"
   Identifier "nvidiaegpu"
   Driver "nvidia"
   BusID "PCI:5:0:0"
   #BusID in decimal, convert from hex in step 3 of tutorial
   Option "AllowEmptyInitialConfiguration"
   Option "AllowExternalGpus"
   Option "RegistryDwords" "PerfLevelSrc=0x2222"
EndSection

Section "Screen"
   Identifier "nvidiaegpu"
   Device "nvidiaegpu"
   Option "metamodes" "nvidia-auto-select +0+0 {ForceCompositionPipeline=On}"
   Option "TripleBuffer" "on"
   Option "AllowIndirectGLXProtocol" "off"
   Option "Coolbits" "4"
EndSection

And I have a script that detects on system boot if egpu is connected or not, if it is it adds file 01-egpu.conf, if egpu is disconnected, it removes this file:

01-egpu.conf
Section "ServerFlags"                    
        Option "DefaultServerLayout" "egpu"
EndSection

And this how I’ve configured to setup my xorg to use eGPU when it’s connected and optimus manager if it’s not connected.

1 Like

Pretty sophisticated setup, but in a nutshell: you get bad performance on both the eGPU and the dGPU.

Have you tried fiddling with the compositor settings yet?

What is the output to xrandr?

:thinking:

Oh trust me, this is only the beginning :rofl:

At office I use the same laptop but eGPU is replaced with Displaylink dock. So it’s using laptop’s screen (looks like intel GPU), monitor connected to miniDP (Nvidia output seems), 2 monitors connected to the Displaylink dock :slight_smile:
There Xorg is completely unusable, it fails to render one of the displaylink monitoris. With wayland the setup is “usable” (all monitors work but it’s a bit sluggish). But this all is another story after we get the main setup working :slight_smile:

Yes. I’m pretty sure I’ve tried most of the options there in multiple combinations. Even tried disabling Enable the compositor at startup.

xrandr while eGPU connected
xrandr                                                                                         ✔ 
Screen 0: minimum 8 x 8, current 7920 x 1440, maximum 32767 x 32767
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-0 disconnected (normal left inverted right x axis y axis)
DP-2 connected 2560x1440+5360+0 (normal left inverted right x axis y axis) 526mm x 296mm
   2560x1440     59.95*+
   2048x1080     60.00    24.00  
   1920x1200     59.88  
   1920x1080     60.00    59.94    50.00    23.98  
   1680x1050     59.95  
   1600x1200     60.00  
   1280x1024     75.02    60.02  
   1280x800      59.81  
   1280x720      59.94    50.00  
   1152x864      75.00  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    59.94    59.93  
DP-3 disconnected (normal left inverted right x axis y axis)
HDMI-1 connected 1920x1080+0+88 (normal left inverted right x axis y axis) 527mm x 296mm
   1920x1080     60.00*+  59.94    50.00  
   1600x900      60.00  
   1280x1024     75.02    60.02  
   1280x720      60.00    59.94    50.00  
   1152x864      75.00  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    59.94    59.93  
DP-4 connected primary 3440x1440+1920+0 (normal left inverted right x axis y axis) 800mm x 330mm
   3440x1440     59.97 + 143.92*  120.00    99.98    75.05  
   1920x1080     74.91    60.00    59.94    50.00  
   1680x1050     59.95  
   1600x900      60.00  
   1280x1024     75.02    60.02  
   1280x800      59.81  
   1280x720      60.00    59.94    50.00  
   1152x864      59.96  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    59.94    59.93  
DP-5 disconnected (normal left inverted right x axis y axis)
eDP-2-1 connected (normal left inverted right x axis y axis)
   1920x1080    300.01 +  60.00 +  59.97    59.96    59.93  
   1680x1050     59.95    59.88  
   1400x1050     74.76    59.98  
   1600x900      59.99    59.94    59.95    59.82  
   1280x1024     85.02    75.02    60.02  
   1400x900      59.96    59.88  
   1280x960      85.00    60.00  
   1440x810      60.00    59.97  
   1368x768      59.88    59.85  
   1280x800      59.99    59.97    59.81    59.91  
   1152x864      75.00  
   1280x720      60.00    59.99    59.86    59.74  
   1024x768      85.00    75.05    60.04    85.00    75.03    70.07    60.00  
   1024x768i     86.96  
   960x720       85.00    75.00    60.00  
   928x696       75.00    60.05  
   896x672       75.05    60.01  
   1024x576      59.95    59.96    59.90    59.82  
   960x600       59.93    60.00  
   832x624       74.55  
   960x540       59.96    59.99    59.63    59.82  
   800x600       85.00    75.00    70.00    65.00    60.00    85.14    72.19    75.00    60.32    56.25  
   840x525       60.01    59.88  
   864x486       59.92    59.57  
   700x525       74.76    59.98  
   800x450       59.95    59.82  
   640x512       85.02    75.02    60.02  
   700x450       59.96    59.88  
   640x480       85.09    60.00    85.01    72.81    75.00    59.94  
   720x405       59.51    58.99  
   720x400       85.04  
   684x384       59.88    59.85  
   640x400       59.88    59.98    85.08  
   576x432       75.00  
   640x360       59.86    59.83    59.84    59.32  
   640x350       85.08  
   512x384       85.00    75.03    70.07    60.00  
   512x384i      87.06  
   512x288       60.00    59.92  
   416x312       74.66  
   480x270       59.63    59.82  
   400x300       85.27    72.19    75.12    60.32    56.34  
   432x243       59.92    59.57  
   320x240       85.18    72.81    75.00    60.05  
   360x202       59.51    59.13  
   360x200       85.04  
   320x200       85.27  
   320x180       59.84    59.32  
   320x175       85.27  
DP-2-1 disconnected (normal left inverted right x axis y axis)
HDMI-2-1 disconnected (normal left inverted right x axis y axis)
DP-2-2 disconnected (normal left inverted right x axis y axis)
DP-2-3 disconnected (normal left inverted right x axis y axis)
DP-2-4 disconnected (normal left inverted right x axis y axis)
DP-2-5 disconnected (normal left inverted right x axis y axis)
HDMI-1-0 disconnected (normal left inverted right x axis y axis)
DP-1-0 disconnected (normal left inverted right x axis y axis)
DP-1-1 disconnected (normal left inverted right x axis y axis)
  1680x1050 (0x1c9) 146.250MHz -HSync +VSync
        h: width  1680 start 1784 end 1960 total 2240 skew    0 clock  65.29KHz
        v: height 1050 start 1053 end 1059 total 1089           clock  59.95Hz
  1280x1024 (0x1cb) 135.000MHz +HSync +VSync
        h: width  1280 start 1296 end 1440 total 1688 skew    0 clock  79.98KHz
        v: height 1024 start 1025 end 1028 total 1066           clock  75.02Hz
  1280x1024 (0x1cc) 108.000MHz +HSync +VSync
        h: width  1280 start 1328 end 1440 total 1688 skew    0 clock  63.98KHz
        v: height 1024 start 1025 end 1028 total 1066           clock  60.02Hz
  1280x800 (0x1cd) 83.500MHz -HSync +VSync
        h: width  1280 start 1352 end 1480 total 1680 skew    0 clock  49.70KHz
        v: height  800 start  803 end  809 total  831           clock  59.81Hz
  1152x864 (0x1d0) 108.000MHz +HSync +VSync
        h: width  1152 start 1216 end 1344 total 1600 skew    0 clock  67.50KHz
        v: height  864 start  865 end  868 total  900           clock  75.00Hz
  1024x768 (0x1d1) 78.750MHz +HSync +VSync
        h: width  1024 start 1040 end 1136 total 1312 skew    0 clock  60.02KHz
        v: height  768 start  769 end  772 total  800           clock  75.03Hz
  1024x768 (0x1d2) 65.000MHz -HSync -VSync
        h: width  1024 start 1048 end 1184 total 1344 skew    0 clock  48.36KHz
        v: height  768 start  771 end  777 total  806           clock  60.00Hz
  800x600 (0x1d3) 49.500MHz +HSync +VSync
        h: width   800 start  816 end  896 total 1056 skew    0 clock  46.88KHz
        v: height  600 start  601 end  604 total  625           clock  75.00Hz
  800x600 (0x1d4) 40.000MHz +HSync +VSync
        h: width   800 start  840 end  968 total 1056 skew    0 clock  37.88KHz
        v: height  600 start  601 end  605 total  628           clock  60.32Hz
  640x480 (0x1d7) 31.500MHz -HSync -VSync
        h: width   640 start  656 end  720 total  840 skew    0 clock  37.50KHz
        v: height  480 start  481 end  484 total  500           clock  75.00Hz
  640x480 (0x1d8) 25.175MHz -HSync -VSync
        h: width   640 start  656 end  752 total  800 skew    0 clock  31.47KHz
        v: height  480 start  490 end  492 total  525           clock  59.94Hz

I’m throwing in the towel as I thought one of your screens was at 50 Hz or less and that the GPU was syncing to the weakest link in the chain, but that’s not the case so the only thing I can say is:

Wait until nVidia updates their Linux drivers to the same version as on Windows

:sob:

Small update - completely reinstalled manjaro. This time I didn’t add anything extra (not even optimus manager) and the integrated Nvidia card now works fine. Snowrunner had on my laptop’s screen around 100FPS.

eGPU is still problematic. If I use any of the egpu switcher packages from AUR, it’s working but as poorly as before. FPS around 20-40.

Tried with wayland, again integrated card worked (though it locked it’s FPS to 60, but it was stable). Managed to get eGPU displays to recognize also by setting nvidia-drm.modeset=1 for kernel but clearly it’s not using it properly as it turned the entire desktop to slow sluggish hell (even opening console or sth was pain).

Then I tried this solution: https://egpu.io/forums/thunderbolt-linux-setup/all-ways-egpu-script-for-wayland-linux-desktops/
Sadly when Intel and dGPU NVidia are disabled with that, my computer just doesnt work. No output to eGPUs, no login screen, can’t even access tty. Which is a bit strange that it won’t use the eGPU outputs then. Even in Windows I had to disable the iGPU and dGPU in Device manager for best performance.

The eGPU’s comms goes over the USB bus, so do you have any USB 3.0 ports? If yes: try those first. If you don’t: get a USB 3.3 PCIe card.

:poop: :exclamation: :man_shrugging:

Why are you using an eGPU on a desktop anyway???

:open_mouth: :thinking:

P.S. :clock1: :first_quarter_moon_with_face: here so :bed: :zzz: soon for me!

I’m not using desktop, I’ve mentioned multiple times it’s a laptop. If I would, I wouldn’t have the annoying Nvida Optimus :slight_smile:

The eGPU is connected over Thunderbolt, not USB3.

1 Like

I need to go to sleep! :grin:

:wave:

Can you try the same thing under Linux? to disable the iGPU it’s easy:

mhwd --remove pci video-linux

To disable the dGPU, you need to “reserve it for CUDA” and the environment variable is CUDA_VISIBLE_DEVICES

:crossed_fingers:

Sadly, no change, unless I put the environment variable in incorrect place? Where exactly should I put it? Sorry kinda new to linux. To apply it to specific application or to the game I launch etc?


Update: So I’m now back at the original point where I had to install Optimus Manager and thus add my eGPU scripts.
Thankly there is no performance degrading with the dGPU (3070), eGPU is still bad ye. However I finally did some more apples to apples comparions.

OS GPU 1920 x 1080 3440 x 1440 (ultrawide)
Win 10 RTX 3070 (dGPU) 70 - 85 FPS 40 - 55 FPS
Win 10 RTX 3080 (eGPU) 90 - 110 FPS 60 - 75 FPS
Manjaro RTX 3070 (dGPU) 65 - 85 FPS 35 -45 FPS
Manjaro RTX 3080 (eGPU) 25 -45 FPS 25 - 45 FPS

Previously I mentioned that the GPU on Manjaro had same same performance no matter of the graphics setting - this seems to confirm it, it didn’t even care about resolution change. dGPU I would say works just fine, small FPS drop is understandable as the game runs in Proton.

The only difference is that the Windows drivers are a generation ahead and the nVidia 3000 series is their top of the line (=newest) so the only thing I can say now is:

  • Use the 3070 right now under Linux
  • Try the 3080 again when nVidia finally gives the Linux drivers the attention they need.

:sob:

So I’ve been messing around the entire evening by breaking a lot of stuff (thank god timeshift) and I managed to create all kinds of odd situations, where the performance was even worse (I think I managed to create situations were no GPU, only iGPU or only dGPU were in use through the eGPU).

So it seems to me that something is limiting the eGPU? That would explain why the perfromance is exactly the same no matter what resolution and graphics setting is in use.

And it’s not the tempoerature, that barerly rises. NVidia X Server Settings reports in powremixer tht PCIe link with (x4) and speed (8 GT/S) are also correct at Thunderbolt limit, thus same on windows.

I ruled out it being a steam proton issue also. Ran American Truck Simulator - both in native Linux and with Proton. Performance was same for both - bad compared to Windows and similar to each other.

I also tried running Snowrunner through Lutris (Wine), still same symptoms.