On Sun, Jun 05, 2011 at 10:36:07PM -0700, Chris Wilson wrote: > In order for the driver to be notified of when the resource backing the > scratch pixmap becomes no longer accessible, it needs to be called on > every FreeScratchPixmapHeader(). As we instead maybe cached the > PixmapRec (to avoid the free and malloc overhead), this notification > went astray, and the driver would fail to insert the correct barriers on > the backing resource. That resource would then be reused by the Xserver, > leading to rampant memory corruption as the GPU flushed it write caches > at some point in the future and overwriting random structures. > > In addition we introduce a new hint, CREATE_PIXMAP_USAGE_SCRATCH_HEADER, > so that the driver can be warned during pixmap creation (and lifetime) > if the pixmap points to other data. > > A side-effect of removing the cache is that several members of the > ScreenInfo structure and associated routines become redundant and > deleted as well. So we bump the ABI version as well. > > Signed-off-by: Chris Wilson <[email protected]> > --- > dix/dispatch.c | 1 - > dix/main.c | 4 +-- > dix/pixmap.c | 58 > ++++++++++++++++------------------------ > fb/fbpixmap.c | 2 +- > hw/xfree86/common/xf86Module.h | 2 +- > include/pixmap.h | 7 +--- > include/scrnintstr.h | 8 +++--- > 7 files changed, 32 insertions(+), 50 deletions(-) [...] > diff --git a/hw/xfree86/common/xf86Module.h b/hw/xfree86/common/xf86Module.h > index 2a5c805..cf7557e 100644 > --- a/hw/xfree86/common/xf86Module.h > +++ b/hw/xfree86/common/xf86Module.h > @@ -82,7 +82,7 @@ typedef enum { > * mask is 0xFFFF0000. > */ > #define ABI_ANSIC_VERSION SET_ABI_VERSION(0, 4) > -#define ABI_VIDEODRV_VERSION SET_ABI_VERSION(11, 0) > +#define ABI_VIDEODRV_VERSION SET_ABI_VERSION(12, 0) > #define ABI_XINPUT_VERSION SET_ABI_VERSION(13, 0) > #define ABI_EXTENSION_VERSION SET_ABI_VERSION(5, 0) > #define ABI_FONT_VERSION SET_ABI_VERSION(0, 6)
As a reminder, you'll need to wait until server-1.11-branch is created because the ABI was (supposedly) frozen at xorg-server-1.10.99.901. -- Aaron _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
