On Sun, Mar 21, 2010 at 8:10 PM, Keith Packard <[email protected]> wrote: > On Tue, 16 Mar 2010 10:26:54 -0400, Kristian Høgsberg <[email protected]> > wrote: > >> Yes, the series look good and I've updated my branch: > > I don't like this code. It adds an unnecessary layer between > DRI2TrackClient and the dri2ext code, with a 'priv' element, > 'invalidate' and 'destroy' function pointers which are only set to a > single value.
The DRI2 API also used internally in AIGLX, which is what patch 5/5 does, which will set a different pointer. The resource tracking is only necessary when we're allocating DRI2ClientRef on behalf of a DRI2 client. When we're tracking a DRI2 drawable on behalf of AIGLX, we can rely on AIGLX to cleanly free up resources once the GLX client goes away or destroys its GLX drawable. We could make the DRI2ClientRef a resource in both cases, and AIGLX certainly isn't a hot path in this case, but it's pretty much the same amount of work either way. I've rebased the patches in the ~krh/xserver dri2-invalidate branch to address the issues you describe with the last patch, except the DRI2ClientRef resource tracking is still done in dri2ext.c. Kristian _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
