Slow performance using eGPU with lid closed

Qu Wenruo quwenruo.btrfs at gmx.com
Sun May 5 01:06:07 UTC 2019



On 2019/4/29 下午10:11, Michel Dänzer wrote:
> On 2019-04-29 3:04 p.m., Qu Wenruo wrote:
>> On 2019/4/29 下午6:41, Michel Dänzer wrote:
>>> 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.
>>
>> Is it possible to disable Intel one completely at X start time?
>>
>> Just regular xorg.conf.d with amdgpu only device section?
> 
> Sure, but then you won't be able to power down the AMD GPU while Xorg is
> running (or at least while it's active).

Considering current kernel eGPU support, hot unplug is impossible as it
will panic the amdgpu module, so it's not a big deal.


While the bigger problem is the config. As normally Xorg auto detect is
good enough and user needs no extra config.

But with such eGPU setup, if only have 10-amdgpu.conf and 20-intel.conf,
without screen specification, X will not start due to failure to find
screen.

I'm wondering what's the correct way to specify all the needed config.
to make X work with, and without eGPU.
(And still using DRI3)

Thanks,
Qu
> 
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <https://lists.x.org/archives/xorg/attachments/20190505/56d4d360/attachment.sig>


More information about the xorg mailing list