From: Pauli Nieminen <[email protected]> Following patches extent life time of DRI2Drawable and DRI2Buffer until all reference has been freed. Possible reference that life past the X Drawable are swaps, waits for MSC and EGLImages.
Reference counting keeps track of the life time for buffers and drawables. When resource system tries to free drawable reference count may still keep drawable allocated. Keeping dri2 fake id resouce allows clients to use DRI2Drawable after resource was freed. Other fixes in patches are * Don't send SwapComplete or MSC to clients that don't own the drawable any more * Copy front to fake front when it should be done * Make glx to cleanup DRI2 Christopher James Halse Rogers (1): DRI2: Reference count buffers across SwapBuffers Pauli Nieminen (8): DRI2: Free DRI2 drawable references in DRI2DestroyDrawable dri2: Refactor interface to take DRI2DrawablePtr dri2: Change driver interface to support DRI2Drawable dri2: Add reference counting to DRI2 dri2: Keep DRI2Drawable resource allocated until creator frees it dri2: Send events only to known clients dri2: copy front to fake front in SwapBuffers glx: Cleanup DRI2Drawable glx/glxdri2.c | 29 +++- hw/xfree86/dri2/dri2.c | 371 +++++++++++++++++++++++++++++---------------- hw/xfree86/dri2/dri2.h | 68 +++++++-- hw/xfree86/dri2/dri2ext.c | 114 +++++++++------ 4 files changed, 380 insertions(+), 202 deletions(-) _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
