chjj / compton

A compositor for X11.
Other
2.25k stars 501 forks source link

Rapid window switch error #146

Open smlx opened 11 years ago

smlx commented 11 years ago
[     2.67 ] error 9 (BadDrawable) request 14 minor 0 serial 2173 ("BadDrawable (invalid Pixmap or Window parameter)")
glx_bind_pixmap(0x018001c9): Failed to query Pixmap info.
win_paint_win(0x0300008e): Failed to bind texture. Expect troubles.
win_paint_win(0x0300008e): Missing painting data. This is a bad sign.
[     2.74 ] error 9 (BadDrawable) request 14 minor 0 serial 2237 ("BadDrawable (invalid Pixmap or Window parameter)")
[     2.74 ] error 4 (BadPixmap) request 54 minor 0 serial 2238 ("BadPixmap (invalid Pixmap parameter)")

The error above appears if I switch rapidly between workspaces in Awesome WM. Rapid switching is easily reproducible by scrolling the mouse-wheel up and down over the WM "tags" when several windows are open on each tag. This is an artificial way to produce the error, however I invariably see it after extended periods of normal usage.

I don't see any graphical corruption using the open-source radeon driver.

However, after this message appears on my other machine (using nouveau), the entire screen will sporadically start to flicker between showing my current windows, and parts of windows I previously had open.

Without looking at the code to see if this idea makes sense, it's as if an old buffer were sometimes being improperly shown.

I hope my explanation is clear. Please let me know if there is anything else I can do to assist debugging.

richardgv commented 11 years ago

The error above appears if I switch rapidly between workspaces in Awesome WM. Rapid switching is easily reproducible by scrolling the mouse-wheel up and down over the WM "tags" when several windows are open on each tag. This is an artificial way to produce the error, however I invariably see it after extended periods of normal usage.

They are typically normal. See #52 for an explanation.

However, after this message appears on my other machine (using nouveau), the entire screen will sporadically start to flicker between showing my current windows, and parts of windows I previously had open. Without looking at the code to see if this idea makes sense, it's as if an old buffer were sometimes being improperly shown.

The sole similar report I could recall now came from p4ddy on FreeNode/#compton. He said --glx-swap-method started triggering constant flickering between old window content and new ones after a while. If you have the option enabled as well, please check if changing the value or removing it helps.

In theory, broken Pixmap may cause weird things to be displayed as well (old window content or corrupted areas), but flickering... Less likely.

And, I can't do much if you just provide such little info: Which version? What options? Configuration file? You are recommended to try to isolate which option is causing / could fix/change the issue, because I'm not able to reproduce it.

smlx commented 11 years ago

Sorry for the lack of detail in the report. I can reproduce the issue in beta1 with only this line in my compton.conf:

backend = "glx";

I tried all the options (-1 to 6) of glx-swap-method, none of which made any difference.

However, I now know that the flickering issue is unrelated to the error message in my initial comment. A couple of times I saw the flickering between buffers without the error message.

The machine with these issues is running Ubuntu 12.04 LTS. When I get a chance, and have time to deal with any breakage, I'll upgrade nouveau and xorg to the versions from Ubuntu 12.10 to see if I can reproduce the issue.