Date: Friday, February 10, 2012 @ 09:41:52 Author: ibiru Revision: 149764
update autoconfig-nvidia.patch for xorg-server 1.12 drop revert-trapezoids.patch because the bug was fixed somet time ago in nvidia driver Modified: xorg-server/trunk/PKGBUILD xorg-server/trunk/autoconfig-nvidia.patch Deleted: xorg-server/trunk/revert-trapezoids.patch -------------------------+ PKGBUILD | 11 -- autoconfig-nvidia.patch | 55 ++++++-------- revert-trapezoids.patch | 179 ---------------------------------------------- 3 files changed, 30 insertions(+), 215 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2012-02-10 13:45:21 UTC (rev 149763) +++ PKGBUILD 2012-02-10 14:41:52 UTC (rev 149764) @@ -4,7 +4,7 @@ pkgbase=xorg-server pkgname=('xorg-server' 'xorg-server-xephyr' 'xorg-server-xdmx' 'xorg-server-xvfb' 'xorg-server-xnest' 'xorg-server-common' 'xorg-server-devel') pkgver=1.11.99.902 -pkgrel=1 +pkgrel=2 arch=('i686' 'x86_64') license=('custom') url="http://xorg.freedesktop.org" @@ -16,15 +16,13 @@ source=(${url}/releases/individual/xserver/${pkgbase}-${pkgver}.tar.bz2 autoconfig-nvidia.patch autoconfig-sis.patch - revert-trapezoids.patch #git-fixes.patch xvfb-run xvfb-run.1 10-quirks.conf) md5sums=('c1535e351dc73836a9000b7c9bc13112' - '6c7e87d63ac4b535e19a80c89d0cf091' + '7adcd74aebad71af7cc7b68c35aaaf35' 'f8194638ca4872c2b0a67862a70bcebf' - 'f6c84f4936f8e00abdfbd9fb4eda83fb' '52fd3effd80d7bc6c1660d4ecf23d31c' '376c70308715cd2643f7bff936d9934b' 'd4f7dfc6be4ef4e2c6dd7632a9d88abe') @@ -33,14 +31,11 @@ cd "${srcdir}/${pkgbase}-${pkgver}" # Use nouveau/nv/nvidia drivers for nvidia devices -# patch -Np1 -i "${srcdir}/autoconfig-nvidia.patch" + patch -Np1 -i "${srcdir}/autoconfig-nvidia.patch" # Use unofficial imedia SiS driver for supported SiS devices patch -Np0 -i "${srcdir}/autoconfig-sis.patch" - # Revert commit that causes huge slowdowns with binary nVidia driver - patch -Np1 -i "${srcdir}/revert-trapezoids.patch" - # Add post-release patches from 1.11 branch # patch -Np1 -i "${srcdir}/git-fixes.patch" Modified: autoconfig-nvidia.patch =================================================================== --- autoconfig-nvidia.patch 2012-02-10 13:45:21 UTC (rev 149763) +++ autoconfig-nvidia.patch 2012-02-10 14:41:52 UTC (rev 149764) @@ -1,29 +1,28 @@ ---- a/hw/xfree86/common/xf86pciBus.c -+++ b/hw/xfree86/common/xf86pciBus.c -@@ -1123,7 +1123,25 @@ videoPtrToDriverList(struct pci_device * +diff -Nur xorg-server-1.11.99.902.orig/hw/xfree86/common/xf86pciBus.c xorg-server-1.11.99.902/hw/xfree86/common/xf86pciBus.c +--- xorg-server-1.11.99.902.orig/hw/xfree86/common/xf86pciBus.c 2012-02-10 10:10:37.583014924 +0000 ++++ xorg-server-1.11.99.902/hw/xfree86/common/xf86pciBus.c 2012-02-10 11:16:07.148971317 +0000 +@@ -1111,7 +1111,23 @@ + { + int idx = 0; + #ifdef __linux__ +- driverList[idx++] = "nouveau"; ++ switch (dev->device_id) ++ { ++ /* NV1 */ ++ case 0x0008: ++ case 0x0009: ++ driverList[idx++] = "vesa"; ++ break; ++ /* NV3 */ ++ case 0x0018: ++ case 0x0019: ++ driverList[idx++] = "nouveau"; ++ break; ++ default: ++ driverList[idx++] = "nouveau"; ++ driverList[idx++] = "nvidia"; ++ break; ++ } + #endif + driverList[idx++] = "nv"; break; - case 0x102b: driverList[0] = "mga"; break; - case 0x10c8: driverList[0] = "neomagic"; break; -- case 0x10de: case 0x12d2: driverList[0] = "nv"; break; -+ case 0x10de: case 0x12d2: -+ switch (dev->device_id) { -+ /* NV1 */ -+ case 0x0008: -+ case 0x0009: -+ driverList[0] = "vesa"; -+ break; -+ /* NV3 */ -+ case 0x0018: -+ case 0x0019: -+ driverList[0] = "nv"; -+ break; -+ default: -+ driverList[0] = "nouveau"; -+ driverList[1] = "nv"; -+ driverList[2] = "nvidia"; -+ break; -+ } -+ break; - case 0x1106: driverList[0] = "openchrome"; break; - case 0x1b36: driverList[0] = "qxl"; break; - case 0x1163: driverList[0] = "rendition"; break; Deleted: revert-trapezoids.patch =================================================================== --- revert-trapezoids.patch 2012-02-10 13:45:21 UTC (rev 149763) +++ revert-trapezoids.patch 2012-02-10 14:41:52 UTC (rev 149764) @@ -1,179 +0,0 @@ -diff -ru a/fb/fbpict.c b/fb/fbpict.c ---- a/fb/fbpict.c 2011-08-01 01:44:24.000000000 +0200 -+++ b/fb/fbpict.c 2011-10-05 22:45:29.000000000 +0200 -@@ -364,7 +364,7 @@ - ps->Glyphs = miGlyphs; - ps->CompositeRects = miCompositeRects; - ps->RasterizeTrapezoid = fbRasterizeTrapezoid; -- ps->Trapezoids = fbTrapezoids; -+ ps->Trapezoids = miTrapezoids; - ps->AddTraps = fbAddTraps; - ps->AddTriangles = fbAddTriangles; - ps->Triangles = fbTriangles; -diff -ru a/render/mipict.c b/render/mipict.c ---- a/render/mipict.c 2011-04-04 05:19:50.000000000 +0200 -+++ b/render/mipict.c 2011-10-05 22:02:53.000000000 +0200 -@@ -573,6 +573,67 @@ - } - } - -+void -+miTrapezoids (CARD8 op, -+ PicturePtr pSrc, -+ PicturePtr pDst, -+ PictFormatPtr maskFormat, -+ INT16 xSrc, -+ INT16 ySrc, -+ int ntrap, -+ xTrapezoid *traps) -+{ -+ ScreenPtr pScreen = pDst->pDrawable->pScreen; -+ PictureScreenPtr ps = GetPictureScreen(pScreen); -+ -+ /* -+ * Check for solid alpha add -+ */ -+ if (op == PictOpAdd && miIsSolidAlpha (pSrc)) -+ { -+ for (; ntrap; ntrap--, traps++) -+ (*ps->RasterizeTrapezoid) (pDst, traps, 0, 0); -+ } -+ else if (maskFormat) -+ { -+ PicturePtr pPicture; -+ BoxRec bounds; -+ INT16 xDst, yDst; -+ INT16 xRel, yRel; -+ -+ xDst = traps[0].left.p1.x >> 16; -+ yDst = traps[0].left.p1.y >> 16; -+ -+ miTrapezoidBounds (ntrap, traps, &bounds); -+ if (bounds.y1 >= bounds.y2 || bounds.x1 >= bounds.x2) -+ return; -+ pPicture = miCreateAlphaPicture (pScreen, pDst, maskFormat, -+ bounds.x2 - bounds.x1, -+ bounds.y2 - bounds.y1); -+ if (!pPicture) -+ return; -+ for (; ntrap; ntrap--, traps++) -+ (*ps->RasterizeTrapezoid) (pPicture, traps, -+ -bounds.x1, -bounds.y1); -+ xRel = bounds.x1 + xSrc - xDst; -+ yRel = bounds.y1 + ySrc - yDst; -+ CompositePicture (op, pSrc, pPicture, pDst, -+ xRel, yRel, 0, 0, bounds.x1, bounds.y1, -+ bounds.x2 - bounds.x1, -+ bounds.y2 - bounds.y1); -+ FreePicture (pPicture, 0); -+ } -+ else -+ { -+ if (pDst->polyEdge == PolyEdgeSharp) -+ maskFormat = PictureMatchFormat (pScreen, 1, PICT_a1); -+ else -+ maskFormat = PictureMatchFormat (pScreen, 8, PICT_a8); -+ for (; ntrap; ntrap--, traps++) -+ miTrapezoids (op, pSrc, pDst, maskFormat, xSrc, ySrc, 1, traps); -+ } -+} -+ - Bool - miPictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats) - { -@@ -599,7 +660,7 @@ - ps->Composite = 0; /* requires DDX support */ - ps->Glyphs = miGlyphs; - ps->CompositeRects = miCompositeRects; -- ps->Trapezoids = 0; -+ ps->Trapezoids = miTrapezoids; - ps->Triangles = 0; - - ps->RasterizeTrapezoid = 0; /* requires DDX support */ -diff -ru a/render/mipict.h b/render/mipict.h ---- a/render/mipict.h 2011-04-04 05:19:50.000000000 +0200 -+++ b/render/mipict.h 2011-10-05 22:06:19.000000000 +0200 -@@ -129,6 +129,23 @@ - CARD32 pixel, - xRenderColor *color); - -+extern _X_EXPORT PicturePtr -+miCreateAlphaPicture (ScreenPtr pScreen, -+ PicturePtr pDst, -+ PictFormatPtr pPictFormat, -+ CARD16 width, -+ CARD16 height); -+ -+extern _X_EXPORT void -+miTrapezoids (CARD8 op, -+ PicturePtr pSrc, -+ PicturePtr pDst, -+ PictFormatPtr maskFormat, -+ INT16 xSrc, -+ INT16 ySrc, -+ int ntrap, -+ xTrapezoid *traps); -+ - extern _X_EXPORT Bool - miIsSolidAlpha (PicturePtr pSrc); - -diff -ru a/render/mitrap.c b/render/mitrap.c ---- a/render/mitrap.c 2011-04-04 05:19:50.000000000 +0200 -+++ b/render/mitrap.c 2011-10-05 22:05:29.000000000 +0200 -@@ -34,6 +34,55 @@ - #include "picturestr.h" - #include "mipict.h" - -+PicturePtr -+miCreateAlphaPicture (ScreenPtr pScreen, -+ PicturePtr pDst, -+ PictFormatPtr pPictFormat, -+ CARD16 width, -+ CARD16 height) -+{ -+ PixmapPtr pPixmap; -+ PicturePtr pPicture; -+ GCPtr pGC; -+ int error; -+ xRectangle rect; -+ -+ if (width > 32767 || height > 32767) -+ return 0; -+ -+ if (!pPictFormat) -+ { -+ if (pDst->polyEdge == PolyEdgeSharp) -+ pPictFormat = PictureMatchFormat (pScreen, 1, PICT_a1); -+ else -+ pPictFormat = PictureMatchFormat (pScreen, 8, PICT_a8); -+ if (!pPictFormat) -+ return 0; -+ } -+ -+ pPixmap = (*pScreen->CreatePixmap) (pScreen, width, height, -+ pPictFormat->depth, 0); -+ if (!pPixmap) -+ return 0; -+ pGC = GetScratchGC (pPixmap->drawable.depth, pScreen); -+ if (!pGC) -+ { -+ (*pScreen->DestroyPixmap) (pPixmap); -+ return 0; -+ } -+ ValidateGC (&pPixmap->drawable, pGC); -+ rect.x = 0; -+ rect.y = 0; -+ rect.width = width; -+ rect.height = height; -+ (*pGC->ops->PolyFillRect)(&pPixmap->drawable, pGC, 1, &rect); -+ FreeScratchGC (pGC); -+ pPicture = CreatePicture (0, &pPixmap->drawable, pPictFormat, -+ 0, 0, serverClient, &error); -+ (*pScreen->DestroyPixmap) (pPixmap); -+ return pPicture; -+} -+ - static xFixed - miLineFixedX (xLineFixed *l, xFixed y, Bool ceil) - { -