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 | https://www.amd.com Libre software enthusiast | Mesa and X developer
signature.asc
Description: OpenPGP digital signature
_______________________________________________ xorg@lists.x.org: X.Org support Archives: http://lists.freedesktop.org/archives/xorg Info: https://lists.x.org/mailman/listinfo/xorg Your subscription address: %(user_address)s