GM204/modesetting DDX: Using PageFlip causes syncing issue/screen corruption
Submitted by Sophie Hamilton
Assigned to Nouveau Project
Description
Created attachment 126073
Screenshot showing the issue on Mumble and Audacious
After working around bug #94990 so that I can use kernel modesetting, I find that when I run a Qt application inside my regular desktop environment, Enlightenment E20 (0.20.5) in Xorg server 1.18.4, I get issues with screen updates, resulting in artifacts such as shown in the attached screenshot. It appears to have issues switching between the current state and a previously drawn state.
The issue does not appear in any non-Qt applications as far as I can tell. Note that in the attached screenshot, Mumble is a Qt4 app and Audacious is a Qt5 app (here running using the Winamp Classic interface). Only some Qt widgets appear to be affected; so far I've only encountered the issue with menus, graphical tab bars (such as the one Audacious uses in its preferences window), toolbars, and however Audacious renders the scrolling text in its Winamp Classic interface.
After talking with a nouveau dev on IRC (karolherbst), we determined that the issue does not appear when the PageFlip option is set to 0 in an xorg.conf.d file. (I will attach the configuration file I use to this bug.) I also managed to determine that the corruption does not appear when I use another window manager without a compositor, such as mwm. Interestingly, the corruption does not reappear if I use mwm together with compton, a standalone compositor.
This bug only started happening after updating to Xorg server version 1.18.4 from 1.17.4. I have not as yet tested any of the previous 1.18.x releases; if this is desired, please let me know.
Summary of system:
- Gentoo Linux, amd64, fully up-to-date, using x11 overlay
- NVidia GeForce GTX 970 (GM204)
- Kernel version 4.7.0 (with a modification to bypass bug #94990)
- Xorg server 1.18.4
- Mesa 12.0.1
- Enlightenment 0.20.5
- Qt versions installed: 4.8.6 and 5.6.1.
- Examples of Qt applications tested: Mumble (1.2.16), Audacious (3.7.1), VLC (2.2.4), Wireshark (2.0.5).
Attachment 126073, "Screenshot showing the issue on Mumble and Audacious":