Comment 17 for bug 432521

Albert Damen (albrt) wrote :

Testing shows this problem only occurs with KMS active.

Debugging with gdb shows we get a new frontbuffer when we logout and the xserver is reset. However, the new frontbuffer is not connected to the crtc .
in drmmode_set_mode_major we have:
        if (drmmode->fb_id == 0) {
                ret = drmModeAddFB(drmmode->fd,
and because fb_id is not null when the xserver is reset, drmModeAddFB is not called.

Attached patch solves this problem for me. I consider this a proof of concept patch; upstream may want to fix the issue in a different way (I don't like I had to add a new public function in drmmode_display.c).

Can someone confirm this patch solves the issue for them as well? If so, I will forward the bug and patch upstream tomorrow.