Added:
Description: Loop delay on CRTc config failure
--- xfce4-settings-4.13.4.orig/xfsettingsd/displays.c
+++ xfce4-settings-4.13.4/xfsettingsd/displays.c
@@ -1256,10 +1256,17 @@ xfce_displays_helper_apply_crtc (XfceRRC
ret = xfce_displays_helper_disable_crtc (helper, crtc->id);
} else {
xfce_displays_helper_apply_crtc_transform (crtc, helper);
-
- ret = XRRSetCrtcConfig (helper->xdisplay, helper->resources,
crtc->id,
+ gint l = 5;
+ while (l--) {
+ ret = XRRSetCrtcConfig (helper->xdisplay, helper->resources,
crtc->id,
CurrentTime, crtc->x, crtc->y, crtc->mode,
crtc->rotation, crtc->outputs,
crtc->noutput);
+ if (ret != RRSetConfigSuccess) {
+ g_warning("XRRSetCrtcConfig()=%d, sleeping", ret);
+ g_usleep(1000);
+ } else
+ break;
+ }
}
>From a fresh boot and then in TTY console:
DISPLAY=:0 XFSETTINGSD_DEBUG=1 xfsettingsd --replace --no-daemon
Lid-close->suspend, Lid-open, tap key->resume, GUI password
On first cycle GUI comes back correctly. On Second cycle it doesn't, and
I see:
xfce4-settings(displays): Configuring CRTC 79.
xfce4-settings(displays): Applying changes to CRTC 79.
xfce4-settings(displays): Applying CRTC 79 Transform: x=0.000000 y=0.000000,
filter=bilinear.
(xfsettingsd:2485): xfsettingsd-WARNING **: 17:56:50.285:
XRRSetCrtcConfig()=3, sleeping
(xfsettingsd:2485): xfsettingsd-WARNING **: 17:56:50.286:
XRRSetCrtcConfig()=3, sleeping
(xfsettingsd:2485): xfsettingsd-WARNING **: 17:56:50.288:
XRRSetCrtcConfig()=3, sleeping
(xfsettingsd:2485): xfsettingsd-WARNING **: 17:56:50.290:
XRRSetCrtcConfig()=3, sleeping
(xfsettingsd:2485): xfsettingsd-WARNING **: 17:56:50.292:
XRRSetCrtcConfig()=3, sleeping
(xfsettingsd:2485): xfsettingsd-WARNING **: 17:56:50.293: Failed to configure
CRTC 79 XRRSetCrtcConfig()=3.
xfce4-settings(displays): Configuring CRTC 80.
(xfsettingsd:2485): xfsettingsd-CRITICAL **: 17:56:50.294: Failed to
apply display settings
So even with a 1000 u-second delay and retry, repeated 5 times, the issue
remains. This looks like a problem with the underlying libraries.
The return value of 3 is RRSetConfigFailed from
libxrandr::src/XrrCrtc.c::XRRSetCrtcConfig()
Tracking it back further looks to be extremely difficult.
I'm attaching the complete xfsettingd log for these successful + failed
cycles in case someone with more insight than me can spot more clues.
** Attachment added: "xfsettingsd debug log for successful and failed cycles"
https://bugs.launchpad.net/ubuntu/+source/xfce4-settings/+bug/1759950/+attachment/5271422/+files/xfsettingsd.5.log
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1759950
Title:
Lid-close suspend: blank screen when switching to user session
To manage notifications about this bug go to:
https://bugs.launchpad.net/light-locker/+bug/1759950/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs