diff -ur xf86-video-savage-git/configure.ac xf86-video-savage.stock/configure.ac --- xf86-video-savage-git/configure.ac 2008-05-24 13:59:07.000000000 -0500 +++ xf86-video-savage.stock/configure.ac 2008-11-05 20:39:47.000000000 -0500 @@ -100,6 +100,10 @@ AC_CHECK_DECL(XSERVER_LIBPCIACCESS, [XSERVER_LIBPCIACCESS=yes], [XSERVER_LIBPCIACCESS=no], [#include "xorg-server.h"]) +AC_CHECK_DECL(xf86XVFillKeyHelperDrawable, + [AC_DEFINE(HAVE_XV_DRAWABLE_HELPER, 1, [Have xf86XVFillKeyHelperDrawable prototype])], + [], + [#include "xf86xv.h"]) CFLAGS="$save_CFLAGS" if test "x$XSERVER_LIBPCIACCESS" = xyes; then diff -ur xf86-video-savage-git/src/savage_video.c xf86-video-savage.stock/src/savage_video.c --- xf86-video-savage-git/src/savage_video.c 2008-02-27 23:06:24.000000000 -0500 +++ xf86-video-savage.stock/src/savage_video.c 2008-11-05 20:30:59.000000000 -0500 @@ -1840,6 +1840,16 @@ #endif } +static void +SavageFillKeyHelper(DrawablePtr pDraw, uint32_t colorKey, RegionPtr clipBoxes) +{ +#if HAVE_XV_DRAWABLE_HELPER + xf86XVFillKeyHelperDrawable(pDraw, colorKey, clipBoxes); +#else + xf86XVFillKeyHelper(pDraw->pScreen, colorKey, clipBoxes); +#endif +} + static int SavagePutImage( ScrnInfoPtr pScrn, @@ -1988,7 +1998,7 @@ if(!REGION_EQUAL(pScreen, &pPriv->clip, clipBoxes)) { REGION_COPY(pScreen, &pPriv->clip, clipBoxes); /* draw these */ - xf86XVFillKeyHelper(pScrn->pScreen, pPriv->colorKey, clipBoxes); + SavageFillKeyHelper(pDraw, pPriv->colorKey, clipBoxes); }