[Bug 108651] Screen flickering when using compositor with OpenGL backend

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]<

 



Comment # 5 on bug 108651 from
This probably isn't specific to nouveau.  I am using Intel graphics
(modesetting driver) and I was also bitten by screen flickering in compton
after the switch to XCB (commits 43f3744fea07 and 7af815a0aaaf).

It is specific to DRI2.  With DRI3 or software rendering
(LIBGL_ALWAYS_SOFTWARE=1), the flickering goes away.

Looking at mesa source (src/glx/dri2.c), DRI2 seems to be incompatible with xcb
event processing due to usage of XESetWireToEvent()/XESetEventToWire(), which
hook into the traditional Xlib event processing.  Without Xlib in the loop,
DRI2 misses its Invalidate events and the result is that glXSwapBuffers()
doesn't work as expected.  (Take a look at src/glx/dri2_glx.c -
dri2XcbSwapBuffers() contains an explicit XSync() call to wait for Invalidate
events, which it never gets.)

One workaround I found is to change the following line in src/glx/dri2_glx.c:

   pdp->invalidateAvailable = (pdp->driMinor >= 3);

To this:

   pdp->invalidateAvailable = 0;

This causes mesa to think it's using an older X Server that doesn't send
Invalidate events and use some kind of internal fallback.  It's enough to make
the flickering go away, but I don't know what other side effects it has.


You are receiving this mail because:
_______________________________________________
Nouveau mailing list
Nouveau@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/nouveau

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux