Slow performance using eGPU with lid closed

Michel Dänzer michel at
Mon Apr 29 10:41:29 UTC 2019

On 2019-04-28 2:02 a.m., Qu Wenruo wrote:
> Hi,
> When tweaking eGPU under Linux, I hit one strange behavior.
> The integrated GPU is Intel HD630, using the DDX driver.
> The eGPU is an RX580, using amdgpu driver. Using thunderbolt 3
> connection. (4x lanes)
> All 2 monitors are connected to the eGPU, using DP and HDMI.
> At first glance, it works with some quirks (hot plug doesn't work, hot
> unplug crash the kernel), but at least it works without any config.
> Also tested DRI_PRIME=1 with offload for games, it works well playing
> games in the laptop display.
> But when I try to close the lid, the external monitors get very laggy.
> (WM is muffer from cinnamon)
> My guess is, without any config, the external monitor is still rendered
> by the Intel GPU, as all monitor shares the same screen space.
> And when the lid is closed, eGPU is forced to its lowest performance.

It's because the Present extension (used for presentation with DRI3)
only supports the primary GPU (as far as Xorg is concerned), in your
case the Intel one. When all outputs of the primary GPU are disabled,
Present cannot use any of them for timing purposes, so it falls back to
a 1 Hz timer for presentation.

Potential workarounds:

Disable DRI3.

Force-enable the laptop's internal output while the lid is closed, e.g.
using xrandr.

Earthling Michel Dänzer               |    
Libre software enthusiast             |             Mesa and X developer

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: OpenPGP digital signature
URL: <>

More information about the xorg mailing list