Radeon RX 7900 XTX eGPU problem with frame.work built-in display
( Posting here in case somebody in the community can help and also in case somebody else will have similar problem. But I am also sending an email to support )
Current problems:
Very low fps for anything displayed on the built-in laptop display:
studdering KDE animations, capped 30fps in Black Myth: Wukong Benchmark
But - disabling built-in display and only looking at external display connected to GPU output port
~80fps in MB:W Benchmark and no visible problems with KDE animations
I think this could be related to PCIe bridge, but I am not very experienced with hardware (as software engineer)
I tried searching for PCI related settings in BIOS and didn’t find anything useful.
Only something about USB-4 devices check on startup, which i tried disabling for no result
My specs are:
-
framework 13 - Ultra 7 165H, Display: 2.8K
-
eGPU enclosure - Sonnet eGPU-Breakaway-Box-750ex
-
Linux:
sb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.2 LTS
Release: 24.04
Codename: noble
uname -srm
Linux 6.11.0-17-generic x86_64
- bios:
sudo dmidecode
# dmidecode 3.5
Getting SMBIOS data from sysfs.
SMBIOS 3.6 present.
# SMBIOS implementations newer than version 3.5.0 are not
# fully supported by this version of dmidecode.
53 structures occupying 4159 bytes.
Table at 0x5CDEE000.
Handle 0x0000, DMI type 0, 26 bytes
BIOS Information
Vendor: INSYDE Corp.
Version: 03.04
Release Date: 10/09/2024
ROM Size: 16 MB
Characteristics:
PCI is supported
BIOS is upgradeable
BIOS shadowing is allowed
Boot from CD is supported
Selectable boot is supported
8042 keyboard services are supported (int 9h)
CGA/mono video services are supported (int 10h)
ACPI is supported
USB legacy is supported
BIOS boot specification is supported
Targeted content distribution is supported
UEFI is supported
BIOS Revision: 3.4
- GPU is successfully set to external with “all-ways-egpu”:
glxinfo | grep "OpenGL renderer"
OpenGL renderer string: AMD Radeon RX 7900 XTX (radeonsi, navi31, LLVM 19.1.1, DRM 3.59, 6.11.0-17-generic)
inspecting speed of PCI connections
info from lspci
I tried figuring out source of low speed
both with and without custom modeprobe.d file for amd card
( mentioned here : win3-resources/docs/eGPU.md at master - quad/win3-resources - Forgejo )
#+begin_src
lspci -tv
-[0000:00]-+-00.0 Intel Corporation Device 7d01
+-02.0 Intel Corporation Meteor Lake-P [Intel Graphics]
+-04.0 Intel Corporation Device 7d03
+-07.0-[01-2a]--
+-07.1-[2b-54]----00.0-[2c-54]--+-01.0-[2d-2f]----00.0-[2e-2f]----00.0-[2f]--+-00.0 Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 [Radeon RX 7900 XT/7900 XTX/7900M]
| | \-00.1 Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 HDMI/DP Audio
| \-04.0-[30-54]----00.0-[31-54]--+-00.0-[32]----00.0 Intel Corporation I210 Gigabit Network Connection
| +-01.0-[33]----00.0 Fresco Logic FL1100 USB 3.0 Host Controller
| \-02.0-[34-54]----00.0 Intel Corporation JHL6240 Thunderbolt 3 USB 3.1 Controller (Low Power) [Alpine Ridge LP 2016]
+-07.2-[55-7e]--
+-07.3-[7f-a8]--
+-08.0 Intel Corporation Device 7e4c
+-0a.0 Intel Corporation Device 7d0d
+-0b.0 Intel Corporation Meteor Lake NPU
+-0d.0 Intel Corporation Meteor Lake-P Thunderbolt 4 USB Controller
+-0d.2 Intel Corporation Meteor Lake-P Thunderbolt 4 NHI #0
+-0d.3 Intel Corporation Meteor Lake-P Thunderbolt 4 NHI #1
+-14.0 Intel Corporation Meteor Lake-P USB 3.2 Gen 2x1 xHCI Host Controller
+-14.2 Intel Corporation Device 7e7f
+-15.0 Intel Corporation Meteor Lake-P Serial IO I2C Controller #0
+-15.1 Intel Corporation Meteor Lake-P Serial IO I2C Controller #1
+-16.0 Intel Corporation Device 7e70
+-19.0 Intel Corporation Meteor Lake-P Serial IO I2C Controller #4
+-19.1 Intel Corporation Meteor Lake-P Serial IO I2C Controller #5
+-1c.0-[a9]----00.0 Sandisk Corp WD Black SN770 / PC SN740 256GB / PC SN560 (DRAM-less) NVMe SSD
+-1c.5-[aa]----00.0 Intel Corporation Wi-Fi 6E(802.11ax) AX210/AX1675* 2x2 [Typhoon Peak]
+-1f.0 Intel Corporation Device 7e02
+-1f.3 Intel Corporation Meteor Lake-P HD Audio Controller
+-1f.4 Intel Corporation Meteor Lake-P SMBus Controller
\-1f.5 Intel Corporation Meteor Lake-P SPI Controller
efim-nefedov@LL421000D:~$ cd ../ANY-21120-writing-live-reports-dashboards-into-weaver/^C
efim-nefedov@LL421000D:~$ sudo lspci -vv -s 2f:00.0 | grep "Lnk\|Thunderbolt\|Radeon"
[sudo] password for efim-nefedov:
2f:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 [Radeon RX 7900 XT/7900 XTX/7900M] (rev c8) (prog-if 00 [VGA controller])
Subsystem: Tul Corporation / PowerColor Navi 31 [Radeon RX 7900 XT/7900 XTX]
LnkCap: Port #0, Speed 16GT/s, Width x16, ASPM L1, Exit Latency L1 <1us
LnkCtl: ASPM Disabled; RCB 64 bytes, Disabled- CommClk+
LnkSta: Speed 16GT/s, Width x16
LnkCap2: Supported Link Speeds: 2.5-16GT/s, Crosslink- Retimer+ 2Retimers+ DRS-
LnkCtl2: Target Link Speed: 16GT/s, EnterCompliance- SpeedDis-
LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete+ EqualizationPhase1+
LnkCtl3: LnkEquIntrruptEn- PerformEqu-
efim-nefedov@LL421000D:~$ sudo lspci -vv -s 2e:00.0 | grep "Lnk\|Thunderbolt\|Radeon"
LnkCap: Port #0, Speed 16GT/s, Width x16, ASPM L1, Exit Latency L1 <1us
LnkCtl: ASPM Disabled; Disabled- CommClk+
LnkSta: Speed 16GT/s, Width x16
LnkCap2: Supported Link Speeds: 2.5-16GT/s, Crosslink- Retimer+ 2Retimers+ DRS-
LnkCtl2: Target Link Speed: 16GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -3.5dB
LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete+ EqualizationPhase1+
LnkCtl3: LnkEquIntrruptEn- PerformEqu-
efim-nefedov@LL421000D:~$ sudo lspci -vv -s 2d:00.0 | grep "Lnk\|Thunderbolt\|Radeon"
LnkCap: Port #0, Speed 16GT/s, Width x16, ASPM L1, Exit Latency L1 <64us
LnkCtl: ASPM Disabled; Disabled- CommClk+
LnkSta: Speed 8GT/s (downgraded), Width x4 (downgraded)
LnkCap2: Supported Link Speeds: 2.5-16GT/s, Crosslink- Retimer+ 2Retimers+ DRS-
LnkCtl2: Target Link Speed: 16GT/s, EnterCompliance- SpeedDis-
LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete+ EqualizationPhase1+
LnkCtl3: LnkEquIntrruptEn- PerformEqu-
efim-nefedov@LL421000D:~$ sudo lspci -vv -s 2c:01.0 | grep "Lnk\|Thunderbolt\|Radeon"
2c:01.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02) (prog-if 00 [Normal decode])
Subsystem: Sonnet Technologies, Inc. JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016]
Capabilities: [ac] Subsystem: Sonnet Technologies, Inc. JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016]
LnkCap: Port #1, Speed 8GT/s, Width x4, ASPM L0s L1, Exit Latency L0s <2us, L1 <4us
LnkCtl: ASPM Disabled; Disabled- CommClk+
LnkSta: Speed 8GT/s, Width x4
LnkCap2: Supported Link Speeds: 2.5-8GT/s, Crosslink- Retimer- 2Retimers- DRS-
LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -3.5dB
LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete+ EqualizationPhase1+
LnkCtl3: LnkEquIntrruptEn- PerformEqu-
efim-nefedov@LL421000D:~$ sudo lspci -vv -s 2b:00.0 | grep "Lnk\|Thunderbolt\|Radeon"
2b:00.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02) (prog-if 00 [Normal decode])
Subsystem: Sonnet Technologies, Inc. JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016]
Capabilities: [ac] Subsystem: Sonnet Technologies, Inc. JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016]
LnkCap: Port #0, Speed 2.5GT/s, Width x4, ASPM L0s L1, Exit Latency L0s <2us, L1 <4us
LnkCtl: ASPM Disabled; Disabled- CommClk+
LnkSta: Speed 2.5GT/s, Width x4
LnkCap2: Supported Link Speeds: 2.5-8GT/s, Crosslink- Retimer- 2Retimers- DRS-
LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete- EqualizationPhase1-
LnkCtl3: LnkEquIntrruptEn- PerformEqu-
efim-nefedov@LL421000D:~$ sudo lspci -vv -s 00:07.1 | grep "Lnk\|Thunderbolt\|Radeon"
00:07.1 PCI bridge: Intel Corporation Meteor Lake-P Thunderbolt 4 PCI Express Root Port #1 (rev 10) (prog-if 00 [Normal decode])
Subsystem: Framework Computer Inc. Meteor Lake-P Thunderbolt 4 PCI Express Root Port
LnkCap: Port #17, Speed 2.5GT/s, Width x4, ASPM L1, Exit Latency L1 <16us
LnkCtl: ASPM L1 Enabled; RCB 64 bytes, Disabled- CommClk+
LnkSta: Speed 2.5GT/s, Width x4
LnkCap2: Supported Link Speeds: 2.5GT/s, Crosslink- Retimer- 2Retimers- DRS-
LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete- EqualizationPhase1-
Capabilities: [90] Subsystem: Framework Computer Inc. Meteor Lake-P Thunderbolt 4 PCI Express Root Port
LnkCtl3: LnkEquIntrruptEn- PerformEqu-
#+end_src
and this limit is the same 2.5 regardless of which usb-c ports out of 4 on the laptop i use:
right, closer to screen
#+begin_src
lspci -tv
-[0000:00]-+-00.0 Intel Corporation Device 7d01
+-02.0 Intel Corporation Meteor Lake-P [Intel Graphics]
+-04.0 Intel Corporation Device 7d03
+-07.0-[01-2a]--
+-07.1-[2b-54]--
+-07.2-[55-7e]----00.0-[56-7e]--+-01.0-[57-59]----00.0-[58-59]----00.0-[59]--+-00.0 Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 [Radeon RX 7900 XT/7900 XTX/7900M]
| | \-00.1 Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 HDMI/DP Audio
| \-04.0-[5a-7e]----00.0-[5b-7e]--+-00.0-[5c]----00.0 Intel Corporation I210 Gigabit Network Connection
| +-01.0-[5d]----00.0 Fresco Logic FL1100 USB 3.0 Host Controller
| \-02.0-[5e-7e]----00.0 Intel Corporation JHL6240 Thunderbolt 3 USB 3.1 Controller (Low Power) [Alpine Ridge LP 2016]
#+end_src
and the first one is
#+begin_src
sudo lspci -vv -s 00:07.2 | grep "Lnk\|Thunderbolt\|Radeon"
00:07.2 PCI bridge: Intel Corporation Meteor Lake-P Thunderbolt 4 PCI Express Root Port #2 (rev 10) (prog-if 00 [Normal decode])
Subsystem: Framework Computer Inc. Meteor Lake-P Thunderbolt 4 PCI Express Root Port
LnkCap: Port #18, Speed 2.5GT/s, Width x4, ASPM L1, Exit Latency L1 <16us
LnkCtl: ASPM L1 Enabled; RCB 64 bytes, Disabled- CommClk+
LnkSta: Speed 2.5GT/s, Width x4
LnkCap2: Supported Link Speeds: 2.5GT/s, Crosslink- Retimer- 2Retimers- DRS-
LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete- EqualizationPhase1-
Capabilities: [90] Subsystem: Framework Computer Inc. Meteor Lake-P Thunderbolt 4 PCI Express Root Port
LnkCtl3: LnkEquIntrruptEn- PerformEqu-
#+end_src
left, closer to screen
#+begin_src
lspci -tv
-[0000:00]-+-00.0 Intel Corporation Device 7d01
+-02.0 Intel Corporation Meteor Lake-P [Intel Graphics]
+-04.0 Intel Corporation Device 7d03
+-07.0-[01-2a]--
+-07.1-[2b-54]----00.0-[2c-54]--+-01.0-[2d-2f]----00.0-[2e-2f]----00.0-[2f]--+-00.0 Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 [Radeon RX 7900 XT/7900 XTX/7900M]
| | \-00.1 Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 HDMI/DP Audio
| \-04.0-[30-54]----00.0-[31-54]--+-00.0-[32]----00.0 Intel Corporation I210 Gigabit Network Connection
| +-01.0-[33]----00.0 Fresco Logic FL1100 USB 3.0 Host Controller
| \-02.0-[34-54]----00.0 Intel Corporation JHL6240 Thunderbolt 3 USB 3.1 Controller (Low Power) [Alpine Ridge LP 2016]
#+end_src
#+begin_src
sudo lspci -vv -s 00:07.1 | grep "Lnk\|Thunderbolt\|Radeon"
[sudo] password for efim-nefedov:
00:07.1 PCI bridge: Intel Corporation Meteor Lake-P Thunderbolt 4 PCI Express Root Port #1 (rev 10) (prog-if 00 [Normal decode])
Subsystem: Framework Computer Inc. Meteor Lake-P Thunderbolt 4 PCI Express Root Port
LnkCap: Port #17, Speed 2.5GT/s, Width x4, ASPM L1, Exit Latency L1 <16us
LnkCtl: ASPM L1 Enabled; RCB 64 bytes, Disabled- CommClk+
LnkSta: Speed 2.5GT/s, Width x4
LnkCap2: Supported Link Speeds: 2.5GT/s, Crosslink- Retimer- 2Retimers- DRS-
LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete- EqualizationPhase1-
Capabilities: [90] Subsystem: Framework Computer Inc. Meteor Lake-P Thunderbolt 4 PCI Express Root Port
LnkCtl3: LnkEquIntrruptEn- PerformEqu-
#+end_src
left, closer to touchpad:
#+begin_src
lspci -tv
-[0000:00]-+-00.0 Intel Corporation Device 7d01
+-02.0 Intel Corporation Meteor Lake-P [Intel Graphics]
+-04.0 Intel Corporation Device 7d03
+-07.0-[01-2a]----00.0-[02-2a]--+-01.0-[03-05]----00.0-[04-05]----00.0-[05]--+-00.0 Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 [Radeon RX 7900 XT/7900 XTX/7900M]
| | \-00.1 Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 HDMI/DP Audio
| \-04.0-[06-2a]----00.0-[07-2a]--+-00.0-[08]----00.0 Intel Corporation I210 Gigabit Network Connection
| +-01.0-[09]----00.0 Fresco Logic FL1100 USB 3.0 Host Controller
| \-02.0-[0a-2a]----00.0 Intel Corporation JHL6240 Thunderbolt 3 USB 3.1 Controller (Low Power) [Alpine Ridge LP 2016]
#+end_src
#+begin_src
sudo lspci -vv -s 00:07.0 | grep "Lnk\|Thunderbolt\|Radeon"
00:07.0 PCI bridge: Intel Corporation Meteor Lake-P Thunderbolt 4 PCI Express Root Port #0 (rev 10) (prog-if 00 [Normal decode])
Subsystem: Framework Computer Inc. Meteor Lake-P Thunderbolt 4 PCI Express Root Port
LnkCap: Port #16, Speed 2.5GT/s, Width x4, ASPM L1, Exit Latency L1 <16us
LnkCtl: ASPM L1 Enabled; RCB 64 bytes, Disabled- CommClk+
LnkSta: Speed 2.5GT/s, Width x4
LnkCap2: Supported Link Speeds: 2.5GT/s, Crosslink- Retimer- 2Retimers- DRS-
LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete- EqualizationPhase1-
Capabilities: [90] Subsystem: Framework Computer Inc. Meteor Lake-P Thunderbolt 4 PCI Express Root Port
LnkCtl3: LnkEquIntrruptEn- PerformEqu-
#+end_src
after looking at each node it looks like 00:07.1 only capable of 2.5GT/s
and it looks like it is on the laptop side
i found this detailed note about fix already mentioned in several of framework community posts
- [GUIDE] eGPU performance tests using AMD RX 580 on Linux
- 7900XTX eGPU much slower on Linux after upgrading to 2.8k laptop screen
- [RESPONDED] External monitor stuck at 30 fps when using egpu
- [GUIDE] [Ubuntu] Razer Core X Chroma eGPU + AMD RX 7900 XTX
options amdgpu pcie_gen_cap=0x40000
this does not help.
and in the comments of a github snippet: legion-go-tricks/resources/egpu-pcie3speed.conf at main · aarron-lee/legion-go-tricks · GitHub
it says:
#+begin_quote
it turns out it was most likely the amdgpu driver detecting the weakest link
in the chain and setting itself to 2.5 GT/s
#+end_quote
so maybe those ports should advertise only 2.5?
if so - i do not understand where should I look for the root cause
since all other ports already report higher speeds
udo dmesg | grep limited
[ 19.994580] pci 0000:2b:00.0: 8.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x4 link at 0000:00:07.1 (capable of 31.504 Gb/s with 8.0 GT/s PCIe x4 link)
[ 19.999134] pci 0000:2d:00.0: 8.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x4 link at 0000:00:07.1 (capable of 252.048 Gb/s with 16.0 GT/s PCIe x16 link)
[ 20.001053] pci 0000:2f:00.0: 8.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x4 link at 0000:00:07.1 (capable of 252.048 Gb/s with 16.0 GT/s PCIe x16 link)
[ 20.002699] pci 0000:30:00.0: 8.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x4 link at 0000:00:07.1 (capable of 31.504 Gb/s with 8.0 GT/s PCIe x4 link)
[ 20.019018] pci 0000:34:00.0: 8.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x4 link at 0000:00:07.1 (capable of 31.504 Gb/s with 8.0 GT/s PCIe x4 link)
Ending questions:
- Do I actually have a problem with root PCI ports? Or others with eGPU see same speeds on the root nodes?
- What can I check \ try to figure out the root problem?
Since eGPU seems to be working and functioning quite well for external display