Factor out drivers' DRI2 buffer counting logic

Christopher James Halse Rogers christopher.halse.rogers at canonical.com
Tue Dec 7 22:56:32 PST 2010

The DRI2 SwapBuffers request requires drivers to defer the swap work
until some point in the future.  It's entirely possible for the client
that requested the swap to go away before that trigger occurs, resulting
in DRI2 buffers being freed in DRI2DrawableGone and then the swap
event crashing the server trying to access the freed buffers.

The relevant (fixed) crasher bugs are
Intel: https://bugs.freedesktop.org/show_bug.cgi?id=28080
Radeon: http://bugs.freedesktop.org/show_bug.cgi?id=29065

I haven't tested nouveau's new pageflipping support, but it looks like
it suffers the same problem.

Since the big three drivers all suffer this problem, and all
need to solve it in the same way, it might as well be done
in DRI2 itself.

More information about the xorg-devel mailing list