Hello community, here is the log from the commit of package xorg-x11-driver-video checked in at Mon Nov 3 14:33:26 CET 2008. -------- --- xorg-x11-driver-video/xorg-x11-driver-video.changes 2008-10-28 22:59:11.000000000 +0100 +++ /mounts/work_src_done/STABLE/xorg-x11-driver-video/xorg-x11-driver-video.changes 2008-10-30 16:46:10.169864800 +0100 @@ -1,0 +2,16 @@ +Thu Oct 30 16:44:14 CET 2008 - sndirsch@suse.de + +- xf86-video-intel-G33-1mb.diff + * fix 1MB issue on Intel Onboard Graphics G33 (bnc #391261) + +------------------------------------------------------------------- +Wed Oct 29 16:10:28 CET 2008 - sndirsch@suse.de + +- xf86-video-intel-commit-7ddea04.diff + * revert commit 7ddea04, which broke Xserver start at least on + Intel G4X/i386 (bnc #439865) +- xf86-video-intel-commit-4dd0068.diff + * revert commit 4dd0068, which broke Xserver start at least on + Intel G4X/i386 (bnc #439865) + +------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- xf86-video-intel-commit-4dd0068.diff xf86-video-intel-commit-7ddea04.diff xf86-video-intel-G33-1mb.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xorg-x11-driver-video.spec ++++++ --- /var/tmp/diff_new_pack.V21596/_old 2008-11-03 14:33:15.000000000 +0100 +++ /var/tmp/diff_new_pack.V21596/_new 2008-11-03 14:33:15.000000000 +0100 @@ -22,7 +22,7 @@ BuildRequires: Mesa-devel libdrm-devel pkgconfig xorg-x11-proto-devel xorg-x11-server-sdk Url: http://xorg.freedesktop.org/ Version: 7.4 -Release: 13 +Release: 14 License: X11/MIT BuildRoot: %{_tmppath}/%{name}-%{version}-build Group: System/X11/Servers/XF86_4 @@ -72,7 +72,9 @@ Source54: xf86-video-mach64-6.8.0.tar.bz2 Source55: xf86-video-r128-6.8.0.tar.bz2 Source100: sax2-hwinfo-data.tar.gz +Patch: xf86-video-intel-commit-4dd0068.diff Patch1: xf86-video-intel-nottm.diff +Patch2: xf86-video-intel-commit-7ddea04.diff Patch3: ps_nv.diff Patch4: xf86-video-nv.diff Patch10: xf86-video-tdfx.diff @@ -85,6 +87,7 @@ Patch51: xf86-video-s3virge.diff Patch54: xf86-video-vesa_verbose.diff Patch56: xf86-video-mga-g200se-swcursor.diff +Patch57: xf86-video-intel-G33-1mb.diff Patch103: xf86-video-ati-6.7.197-r128-xvideo.patch %description @@ -111,6 +114,9 @@ popd pushd xf86-video-intel-* %patch1 +%patch -R -p1 +%patch2 -R -p1 +%patch57 -p1 popd pushd xf86-video-nv-* %patch3 -p0 @@ -235,6 +241,16 @@ /var/lib/hardware/ids/20.%{name} %changelog +* Thu Oct 30 2008 sndirsch@suse.de +- xf86-video-intel-G33-1mb.diff + * fix 1MB issue on Intel Onboard Graphics G33 (bnc #391261) +* Wed Oct 29 2008 sndirsch@suse.de +- xf86-video-intel-commit-7ddea04.diff + * revert commit 7ddea04, which broke Xserver start at least on + Intel G4X/i386 (bnc #439865) +- xf86-video-intel-commit-4dd0068.diff + * revert commit 4dd0068, which broke Xserver start at least on + Intel G4X/i386 (bnc #439865) * Tue Oct 28 2008 sndirsch@suse.de - removed xf86-video-intel-memleak.diff, which resulted in a Xserver crash (bnc #439642) ++++++ xf86-video-intel-commit-4dd0068.diff ++++++ diff --git a/src/i830_driver.c b/src/i830_driver.c index c1d61f4..eaf5d27 100644 --- a/src/i830_driver.c +++ b/src/i830_driver.c @@ -502,8 +502,8 @@ I830DetectMemory(ScrnInfoPtr pScrn) range = gtt_size + 4; /* new 4 series hardware has seperate GTT stolen with GFX stolen */ - if (IS_G4X(pI830)) - range = 0; + if (IS_G4X(pI830) || IS_GM45(pI830)) + range = 4; if (IS_I85X(pI830) || IS_I865G(pI830) || IS_I9XX(pI830)) { switch (gmch_ctrl & I855_GMCH_GMS_MASK) { ++++++ xf86-video-intel-commit-7ddea04.diff ++++++ diff --git a/src/i830.h b/src/i830.h index 89f19d2..5da4181 100644 --- a/src/i830.h +++ b/src/i830.h @@ -748,7 +748,7 @@ extern Bool I830CursorInit(ScreenPtr pScreen); extern void IntelEmitInvarientState(ScrnInfoPtr pScrn); extern void I830EmitInvarientState(ScrnInfoPtr pScrn); extern void I915EmitInvarientState(ScrnInfoPtr pScrn); -extern void I830SelectBuffer(ScrnInfoPtr pScrn, int buffer); +extern Bool I830SelectBuffer(ScrnInfoPtr pScrn, int buffer); void i830_update_cursor_offsets(ScrnInfoPtr pScrn); /* CRTC-based cursor functions */ diff --git a/src/i830_accel.c b/src/i830_accel.c index a9b3005..2743445 100644 --- a/src/i830_accel.c +++ b/src/i830_accel.c @@ -244,7 +244,7 @@ I830EmitFlush(ScrnInfoPtr pScrn) } } -void +Bool I830SelectBuffer(ScrnInfoPtr pScrn, int buffer) { I830Ptr pI830 = I830PTR(pScrn); @@ -253,12 +253,18 @@ I830SelectBuffer(ScrnInfoPtr pScrn, int buffer) #ifdef XF86DRI case I830_SELECT_BACK: pI830->bufferOffset = pI830->back_buffer->offset; + if (pI830->back_buffer->tiling == TILE_YMAJOR) + return FALSE; break; case I830_SELECT_THIRD: pI830->bufferOffset = pI830->third_buffer->offset; + if (pI830->third_buffer->tiling == TILE_YMAJOR) + return FALSE; break; case I830_SELECT_DEPTH: pI830->bufferOffset = pI830->depth_buffer->offset; + if (pI830->depth_buffer->tiling == TILE_YMAJOR) + return FALSE; break; #endif default: @@ -270,6 +276,7 @@ I830SelectBuffer(ScrnInfoPtr pScrn, int buffer) if (I810_DEBUG & DEBUG_VERBOSE_ACCEL) ErrorF("I830SelectBuffer %d --> offset %x\n", buffer, pI830->bufferOffset); + return TRUE; } /* The following function sets up the supported acceleration. Call it diff --git a/src/i830_dri.c b/src/i830_dri.c index bf64fa3..16f3735 100644 --- a/src/i830_dri.c +++ b/src/i830_dri.c @@ -1193,47 +1193,41 @@ I830DRIInitBuffers(WindowPtr pWin, RegionPtr prgn, CARD32 index) { ScreenPtr pScreen = pWin->drawable.pScreen; ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; - BoxPtr pbox = REGION_RECTS(prgn); - int nbox = REGION_NUM_RECTS(prgn); + BoxPtr pbox; + int nbox; + int buffer, first_buffer, last_buffer; if (I810_DEBUG & DEBUG_VERBOSE_DRI) ErrorF("I830DRIInitBuffers\n"); - I830SetupForSolidFill(pScrn, 0, GXcopy, -1); - while (nbox--) { - I830SelectBuffer(pScrn, I830_SELECT_BACK); - I830SubsequentSolidFillRect(pScrn, pbox->x1, pbox->y1, - pbox->x2 - pbox->x1, pbox->y2 - pbox->y1); + first_buffer = I830_SELECT_BACK; + last_buffer = I830_SELECT_DEPTH; + if (I830PTR(pScrn)->third_buffer) + last_buffer = I830_SELECT_THIRD; - if (I830PTR(pScrn)->third_buffer) { - I830SelectBuffer(pScrn, I830_SELECT_THIRD); + for (buffer = first_buffer; buffer <= last_buffer; buffer++) { + pbox = REGION_RECTS(prgn); + nbox = REGION_NUM_RECTS(prgn); + + if (!I830SelectBuffer(pScrn, buffer)) + continue; + + if (buffer == I830_SELECT_DEPTH) { + switch (pScrn->bitsPerPixel) { + case 16: + I830SetupForSolidFill(pScrn, 0xffff, GXcopy, -1); + break; + case 32: + I830SetupForSolidFill(pScrn, 0xffffff, GXcopy, -1); + break; + } + } else + I830SetupForSolidFill(pScrn, 0, GXcopy, -1); + while (nbox--) { I830SubsequentSolidFillRect(pScrn, pbox->x1, pbox->y1, pbox->x2 - pbox->x1, pbox->y2 - pbox->y1); + pbox++; } - - pbox++; - } - - /* Clear the depth buffer - uses 0xffff rather than 0. - */ - pbox = REGION_RECTS(prgn); - nbox = REGION_NUM_RECTS(prgn); - - I830SelectBuffer(pScrn, I830_SELECT_DEPTH); - - switch (pScrn->bitsPerPixel) { - case 16: - I830SetupForSolidFill(pScrn, 0xffff, GXcopy, -1); - break; - case 32: - I830SetupForSolidFill(pScrn, 0xffffff, GXcopy, -1); - break; - } - - while (nbox--) { - I830SubsequentSolidFillRect(pScrn, pbox->x1, pbox->y1, - pbox->x2 - pbox->x1, pbox->y2 - pbox->y1); - pbox++; } I830SelectBuffer(pScrn, I830_SELECT_FRONT); @@ -1274,6 +1269,7 @@ I830DRIMoveBuffers(WindowPtr pParent, DDXPointRec ptOldOrg, int dx = pParent->drawable.x - ptOldOrg.x; int dy = pParent->drawable.y - ptOldOrg.y; + int buffer, first_buffer, last_buffer; /* If the copy will overlap in Y, reverse the order */ if (dy > 0) { @@ -1355,44 +1351,47 @@ I830DRIMoveBuffers(WindowPtr pParent, DDXPointRec ptOldOrg, /* SelectBuffer isn't really a good concept for the i810. */ I830EmitFlush(pScrn); - I830SetupForScreenToScreenCopy(pScrn, xdir, ydir, GXcopy, -1, -1); - for (; nbox--; pbox++) { - - int x1 = pbox->x1; - int y1 = pbox->y1; - int destx = x1 + dx; - int desty = y1 + dy; - int w = pbox->x2 - x1 + 1; - int h = pbox->y2 - y1 + 1; - - if (destx < 0) - x1 -= destx, w += destx, destx = 0; - if (desty < 0) - y1 -= desty, h += desty, desty = 0; - if (destx + w > screenwidth) - w = screenwidth - destx; - if (desty + h > screenheight) - h = screenheight - desty; - if (w <= 0) - continue; - if (h <= 0) - continue; + first_buffer = I830_SELECT_BACK; + last_buffer = I830_SELECT_DEPTH; + if (pI830->third_buffer) + last_buffer = I830_SELECT_THIRD; - if (I810_DEBUG & DEBUG_VERBOSE_DRI) - ErrorF("MoveBuffers %d,%d %dx%d dx: %d dy: %d\n", - x1, y1, w, h, dx, dy); + for (buffer = first_buffer; buffer <= last_buffer; buffer++) { + if (!I830SelectBuffer(pScrn, buffer)) + continue; + I830SetupForScreenToScreenCopy(pScrn, xdir, ydir, GXcopy, -1, -1); + pbox = REGION_RECTS(prgnSrc); + nbox = REGION_NUM_RECTS(prgnSrc); + for (; nbox--; pbox++) { + + int x1 = pbox->x1; + int y1 = pbox->y1; + int destx = x1 + dx; + int desty = y1 + dy; + int w = pbox->x2 - x1 + 1; + int h = pbox->y2 - y1 + 1; + + if (destx < 0) + x1 -= destx, w += destx, destx = 0; + if (desty < 0) + y1 -= desty, h += desty, desty = 0; + if (destx + w > screenwidth) + w = screenwidth - destx; + if (desty + h > screenheight) + h = screenheight - desty; + if (w <= 0) + continue; + if (h <= 0) + continue; + + if (I810_DEBUG & DEBUG_VERBOSE_DRI) + ErrorF("MoveBuffers %d,%d %dx%d dx: %d dy: %d\n", + x1, y1, w, h, dx, dy); - I830SelectBuffer(pScrn, I830_SELECT_BACK); - I830SubsequentScreenToScreenCopy(pScrn, x1, y1, destx, desty, w, h); - if (pI830->third_buffer) { - I830SelectBuffer(pScrn, I830_SELECT_THIRD); I830SubsequentScreenToScreenCopy(pScrn, x1, y1, destx, desty, w, h); } - if (!IS_I965G(pI830)) { - I830SelectBuffer(pScrn, I830_SELECT_DEPTH); - I830SubsequentScreenToScreenCopy(pScrn, x1, y1, destx, desty, w, h); - } } + I830SelectBuffer(pScrn, I830_SELECT_FRONT); I830EmitFlush(pScrn); ++++++ xf86-video-intel-G33-1mb.diff ++++++ diff --git a/src/i830_driver.c b/src/i830_driver.c index b28b4de..c824e85 100644 --- a/src/i830_driver.c +++ b/src/i830_driver.c @@ -514,6 +514,8 @@ I830DetectMemory(ScrnInfoPtr pScrn) if (IS_I85X(pI830) || IS_I865G(pI830) || IS_I9XX(pI830)) { switch (gmch_ctrl & I855_GMCH_GMS_MASK) { case I855_GMCH_GMS_STOLEN_1M: + if (IS_G33CLASS(pI830)) + range = 0; memsize = MB(1) - KB(range); break; case I855_GMCH_GMS_STOLEN_4M: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org