The proposed DRI@ invalidate patch [1] causes a lot more invalidate events to be sent out. That will cause processes to wake up needlessly. Eg. if an unredirected fullscreen app is flipping, each flip will also send an invalidate event to the compositor, since the composite overlay and client window share the same pixmap. Now, assuming that the compositor hasn't done a GetBuffers yet, there's no need to send an invalidate event to it.
I took the easy approach and stuck the boolean flag into the DRI2DrawableRec. The optimal solution would have been to put it into DRI2DrawableRefRec and keep track of the invalidate state per reference, but that would require the client's drawable ID and client ID so that the correct ref could be found in GetBuffers. Too much hassle for my taste, and I think this simple approach should provide equal benefit in most cases. [1] http://lists.x.org/archives/xorg-devel/2011-April/021216.html _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
