Bug 395306 - AMD GPUs changed screen wakeup behavior, kde assumes old behavior
Summary: AMD GPUs changed screen wakeup behavior, kde assumes old behavior
Status: RESOLVED NOT A BUG
Alias: None
Product: plasmashell
Classification: Plasma
Component: generic-multiscreen (show other bugs)
Version: 5.12.4
Platform: Other Linux
: NOR normal
Target Milestone: 1.0
Assignee: Aleix Pol
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-06-13 08:04 UTC by Mariusz Mazur
Modified: 2018-08-09 19:58 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mariusz Mazur 2018-06-13 08:04:44 UTC
Full explanation of the issue here: https://bugs.freedesktop.org/show_bug.cgi?id=106529
Short version: when using recent amd gpus with recent kernels, the behavior when waking up monitors is to (I suppose) mark them as disconnected until they fully wake up. This is a serious problem for multi-monitor setups, since if the primary monitor wakes up more slowly then any of the secondaries, then plasma will for a few hundred ms switch the primary desktop to one of the secondary monitors, then switch back when the actual primary monitor wakes up.
This looks like crap and tends to misbehave regularly (windows change their position, plasmoids occasionally get misplaced).

Since the kernel bug report got ignored for the past month, I must assume that's just how amdgpu driver will behave going forward. Which means the only place that can mitigate the issue is the DE.

Can KDE mitigate the issue (by, dunno, adding 500ms of delay before switching primary displays, or something)?
Comment 1 Christoph Feck 2018-06-28 00:25:29 UTC
I sometimes see the same issue on intel GPU. After enabled primary monitor wakes up from power-off, windows are placed according to the size of the smaller (disabled) monitor.
Comment 2 Mariusz Mazur 2018-08-09 19:58:00 UTC
There's a bug in the amdgpu displayport link training code that causes monitors to disconnect when trying to wake them up. It's not an intentional change on their part.