USB4 eGPU limited to PCIe Gen1 x1 on Framework 13 (Ryzen AI 300) — BIOS 03.05

Hi! Happy owner of a Framework 13 with an AMD Ryzen AI 300 series CPU here.

Tried setting up an eGPU in order to get rid of my desktop and use my fw13 as my only computer, but i’m running into some issues here.
It mostly works, but the performance is incredibly underwhelming: struggling to hit 60FPS in KCD2 on medium settings. Monitor is 3440x1440p.

Here’s my hardware:

Laptop: Framework 13 (Ryzen AI 300 series)

  1. BIOS: 03.05
  2. GPU: ASUS TUF Gaming Radeon RX 9070 XT OC
  3. eGPU enclosure: AOOSTAR AG02 (ASMedia USB4 controller)
  4. Cable: USB4 / Thunderbolt-certified
  5. OS: Arch Linux
  6. Kernel: 6.17.x

Expected behavior

USB4 eGPU should enumerate as PCIe x4 (Gen3 or Gen4), as is standard for USB4/Thunderbolt eGPU implementations.

Actual behavior

  • USB4 fabric negotiates correctly at 40 Gb/s

  • GPU enumerates and functions

  • Upstream PCIe root port advertises only Gen1 x1

  • Link cannot negotiate higher speed or width

Effective PCIe bandwidth is quite low, making the eGPU unusable for performance workloads.

Evidence

USB4 fabric (boltctl)

boltctl info

Relevant output:

generation: USB4
rx speed: 40 Gb/s = 2 lanes * 20 Gb/s
tx speed: 40 Gb/s = 2 lanes * 20 Gb/s
status: authorized

PCIe link capability (critical)

sudo lspci -vv -s 60:00.0 | grep -E 'LnkCap|LnkSta'

Output:

LnkCap: Speed 2.5GT/s, Width x1
LnkSta: Speed 2.5GT/s, Width x1
LnkCap2: Supported Link Speeds: 2.5-16GT/s

Key point: LnkCap itself is Gen1 x1

Troubleshooting already performed

BIOS

  • Disabled PCIe Dynamic Link Power Management

  • Verified USB4 device authorization

  • Tested both USB-C ports at the back

OS

  • pcie_aspm=off

  • Recent kernel (6.17.x)

  • No IOMMU or PCIe errors in dmesg

None of these changed the advertised PCIe capability.

Anyone else running into these issues? Is that a firmware issue? Is the bandwidth actually restricted? Did I make a very bad choice of GPU for an eGPU setup?
I’ve tried searching around the forum for answers to these questions, found a few threads but none helped.

Cheers

On Linux, it appears that USB4 / Thunderbolt devices do not report the right settings in lspci. So the “2.5GT/s, Width x1” is wrong.
Do an actual performance test, and you will see it performing better than 2.5GT/s x1 would.

I have a Thunderbird 3/USB 4 enclosure for an NVME SSD, and I see the same 2.5GT/s x1, but it performs better than that.

Summary, ignore what lspci tells you, its is wrong.

1 Like

So it seems like a case of me having bought the wrong GPU for the job hahaha
Well this one will go into my desktop and my desktop’s GPU will go into the enclosure then, will also get a regular 1440p monitor

Actually this behavior of PCIe link advertising gen1 speeds is intended by the USB4 spec. I had a patch series a few years ago that attempted to clarify it but we never got agreement on it.

The actual speeds are managed by Usb4 fabric conditions.

Yeah it seems like it’s hitting x4 speeds under load, so i’m just seeing the drawbacks of an egpu setup

Hi bigsops,

What you are seeing is likely not normal as a RX 9070 XT connected through USB4v1 on the AG02 to a AMD system more or less performs as well as a desktop Geforce 5080 in benchmarks:

The AG02 is known to be a bit… iffy… with certain cable/card combinations (including its own included USB cable) so it could be worth experimenting with those a bit.

Thanks, ordered a couple of cable, I’ll run some tests

Got a cable matters one, no change here

Will try a maxonar one soon

Any scary messages from amdgpu in the logs maybe?

When I did some research for my own kit (EGPU forums, Youtube) I saw people running a game like KCD 2 with high settings on a 50 fps average on 4K (!) with a AG02 w/ 9070XT on a freaking Z1 Extreme (think ROG Ally / Legion Go) which means getting anything lower than that just isn’t normal.

I can actually likely test some stuff myself in about 2 weeks or so, as I will receive a Framework 16 DIY package this week, and a Sapphire Nitro+ 9070XT and Aoostar AG02 are already boxed up behind me.

It might be a software issue, I’m running Hyprland here and it renders using the iGPU, will try setting it up so it uses the eGPU eclusively

Alrighty!

Managed to get proper performance here, had to use all-ways-egpu here:

And use some of the AMD performance tweaks as shown here:

Now, in KCD2 on high, FSR set to quality, at 1440p (not ultrawide), i’m getting 80fps on average, with lows in the 70s and above, and highs above 100
On ultra (with textures on high), i’m getting about 70 fps, with some dips in the high 50s and some highs in the 100s

That is with my new maxonar cable, will try the other ones

Arc Raiders, in 1440p ultrawide, set to epic, straight up gives me 100fps (my monitor’s limit) with lows at about 92fps

So I think we’re gucci here