diff options
Diffstat (limited to 'hardened/xorg/x11-base/xorg-server/files/05-offscreen-pixmaps.patch')
-rw-r--r-- | hardened/xorg/x11-base/xorg-server/files/05-offscreen-pixmaps.patch | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/hardened/xorg/x11-base/xorg-server/files/05-offscreen-pixmaps.patch b/hardened/xorg/x11-base/xorg-server/files/05-offscreen-pixmaps.patch new file mode 100644 index 0000000..3841b04 --- /dev/null +++ b/hardened/xorg/x11-base/xorg-server/files/05-offscreen-pixmaps.patch @@ -0,0 +1,55 @@ +--- ./hw/xfree86/xaa/xaaInit.c.offscreen-pixmaps 2006-07-05 14:31:42.000000000 -0400 ++++ ./hw/xfree86/xaa/xaaInit.c 2006-08-30 16:47:29.000000000 -0400 +@@ -98,6 +98,30 @@ + xfree(infoRec); + } + ++void ++XAAEvictPixmaps(void) ++{ ++ XAAScreenPtr pScreenPriv; ++ XAAInfoRecPtr infoRec; ++ ScreenPtr pScreen; ++ int i; ++ ++ xf86MsgVerb(X_INFO, 3, "XAA: Evicting pixmaps\n"); ++ ++ for (i = 0; i < screenInfo.numScreens; i++) { ++ pScreen = screenInfo.screens[i]; ++ infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen); ++ ++ pScreenPriv = pScreen->devPrivates[XAAScreenIndex].ptr; ++ infoRec = pScreenPriv->AccelInfoRec; ++ ++ infoRec->offscreenDepths = 0; ++ infoRec->Flags &= ~OFFSCREEN_PIXMAPS; ++ ++ XAAMoveOutOffscreenPixmaps(pScreen); ++ XAAInvalidatePixmapCache(pScreen); ++ } ++} + + Bool + XAAInit(ScreenPtr pScreen, XAAInfoRecPtr infoRec) +--- ./GL/glx/glxdri.c.offscreen-pixmaps 2006-08-30 16:46:45.000000000 -0400 ++++ ./GL/glx/glxdri.c 2006-08-30 16:45:52.000000000 -0400 +@@ -367,6 +367,19 @@ + int bpp; + GLenum target, format, type; + ++ /* When the GLX_EXT_texture_from_pixmap is used, as it's ++ * implemented here, we want to pull pixmap out of video memory ++ * and into host memory. */ ++ { ++ extern void XAAEvictPixmaps(void); ++ static int evictedPixmaps; ++ ++ if (!evictedPixmaps) { ++ XAAEvictPixmaps(); ++ evictedPixmaps = TRUE; ++ } ++ } ++ + pixmap = (PixmapPtr) glxPixmap->pDraw; + if (!glxPixmap->pDamage) { + glxPixmap->pDamage = DamageCreate(NULL, NULL, DamageReportNone, |