Open romangg opened 3 years ago
Note that disman doesn't log it's actions at all, apparently it configures the logger in a different way from KScreen and debug logs won't be outputted.
You can log Disman by restarting the backend process explicitly as described here.
Note that in your log the kscreen_backend_launcher
should not execute at all. It's part of KScreen and not Disman/KDisplay. What you should see is only a disman_backend_launcher
process log.
Make sure your KScreen installation is fully removed or the daemon at least disabled (System Settings -> Startup and Shutdown -> Background Services).
In GitLab by @ishitatsuyuki on Aug 5, 2021, 17:45
You can log Disman by restarting the backend process explicitly as described here.
I tried that before, I think I got the exact same logs (except that kscreen is replaced by disman) because the logging part of Disman's XRandR backend is identical to KScreen's.
Make sure your KScreen installation is fully removed or the daemon at least disabled (System Settings -> Startup and Shutdown -> Background Services).
Disabling KScreen daemon dosen't really work, the backend launcher is still triggered by something else. I can somewhat reliably disable it (temporarily) by killing the backend process.
I don't want to remove KScreen because the usual KDE dependency pasta, and for this particular issue it's irrelevant since it doesn't perform any write (set_config) action.
I tried that before, I think I got the exact same logs (except that kscreen is replaced by disman) because the logging part of Disman's XRandR backend is identical to KScreen's.
Everything in the log with kscreen in the front is not actually Disman. Make sure you're really logging the right stuff and that KScreen is not muddling around with the Xserver configuration. I wouldn't trust it to not do this even though it doesn't say so (set_config).
I don't want to remove KScreen because the usual KDE dependency pasta
You should be able to uninstall KScreen pretty cleanly. What has dependencies by other parts of Plasma is libkscreen. So only uninstall KScreen, don't try to uninstall libkscreen.
In GitLab by @ishitatsuyuki on Jul 29, 2021, 17:42
If I power off and then power on my monitor (LG 27GL850), then I get no output (black screen) because the XRandR config is messed up. I can switch to VT and restart things from there, but apart from restarting the only way to get the output back is to unplug and replug the DP cable.
The system journal when this happens looks like this.
Note that disman doesn't log it's actions at all, apparently it configures the logger in a different way from KScreen and debug logs won't be outputted. However this log should be enough to describe what is happening, since the XRandR backend is mostly the same as KScreen (which logs every received event and performed action) except the offending code described below.
The culprit seems to be https://gitlab.com/kwinft/disman/-/merge_requests/8. (After removing the change this issue disappear as expected.) It seems to be a strange logic to me, since it only introduces a disable code path without the corresponding enable code path. It's extra annoying that there is no code that logs this particular
xcb_randr_set_crtc_config
operations (other operations that exists in KScreen are all logged), which makes it really hard to find this piece of offending code.For the reference, here are the logs from a case that doesn't trigger the issue. I disconnected the monitor DP cable and reconnected it (as opposed to powering off and on).
Environment
Arch Linux, disman-kwinft 5.22.0-1
Monitor: LG 27GL850
Graphics Card: AMD Radeon RX 5700 XT