Hello community,
here is the log from the commit of package xorg-x11-driver-video-nouveau for openSUSE:Factory
checked in at Fri Sep 3 15:00:19 CEST 2010.
--------
--- xorg-x11-driver-video-nouveau/xorg-x11-driver-video-nouveau.changes 2010-07-07 18:13:47.000000000 +0200
+++ xorg-x11-driver-video-nouveau/xorg-x11-driver-video-nouveau.changes 2010-08-29 18:20:22.000000000 +0200
@@ -1,0 +2,15 @@
+Sun Aug 29 16:13:52 UTC 2010 - sndirsch@novell.com
+
+- nouveau driver 0.0.16_20100826_065576d
+ * Revert "nv04-nv40/exa: Match the blob behavior more closely on
+ PrepareCopy."
+ * nv10/exa: Bump maxX/maxY to 4096/4096.
+ * nvc0: recognise these chipsets, and allow NoAccel mode on them
+ * nouveau_exa.c: move line_count logic out of UTS/DFS loop
+ * nv50/xv: We have 18 relocs, not 16, adjust MARK_RING.
+ * nv50/xv: Fix the uncommon codepath to use width/height variable.
+ * nv50/xv: support UYVY
+ * kickoff from the flush callback chain
+ * dri2: remove explit flush from copy_region()
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
xf86-video-nouveau-0.0.16_20100615_db98ad2.tar.bz2
New:
----
xf86-video-nouveau-0.0.16_20100826_065576d.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xorg-x11-driver-video-nouveau.spec ++++++
--- /var/tmp/diff_new_pack.VOlT9J/_old 2010-09-03 14:59:47.000000000 +0200
+++ /var/tmp/diff_new_pack.VOlT9J/_new 2010-09-03 14:59:47.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package xorg-x11-driver-video-nouveau (Version 0.0.16_20100615_db98ad2)
+# spec file for package xorg-x11-driver-video-nouveau (Version 0.0.16_20100826_065576d)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -25,7 +25,7 @@
Group: System/X11/Servers/XF86_4
AutoReqProv: on
%define vers 0.0.16
-Version: %{vers}_20100615_db98ad2
+Version: %{vers}_20100826_065576d
Release: 1
Summary: Accelerated Open Source driver for nVidia cards
Requires: xorg-x11-server
++++++ xf86-video-nouveau-0.0.16_20100615_db98ad2.tar.bz2 -> xf86-video-nouveau-0.0.16_20100826_065576d.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xf86-video-nouveau-0.0.16/ChangeLog new/xf86-video-nouveau-0.0.16/ChangeLog
--- old/xf86-video-nouveau-0.0.16/ChangeLog 2010-07-07 18:04:47.000000000 +0200
+++ new/xf86-video-nouveau-0.0.16/ChangeLog 2010-08-29 18:09:44.000000000 +0200
@@ -1,3 +1,104 @@
+commit 065576d5df0df4da61050d789f548801656b62d5
+Author: Ben Skeggs
+Date: Thu Aug 26 13:22:33 2010 +1000
+
+ dri2: remove explit flush from copy_region()
+
+ Unnecessary now that we kickoff from within the flush callback chain.
+
+ Signed-off-by: Ben Skeggs
+
+commit 34025f0dc9284873d4bf7e4f547ed69fc562a3c9
+Author: Ben Skeggs
+Date: Thu Aug 26 13:19:39 2010 +1000
+
+ kickoff from the flush callback chain
+
+ This is a port of intel commit: 69d65f9184006eac790efcff78a0e425160e95aa
+
+ Submit batch buffers from flush callback chain
+
+ There are a few cases where the server will flush client output buffers
+ but our block handler only catches the most common (before going into select
+ If the server flushes client buffers before we submit our batch buffer,
+ the client may receive a damage event for rendering that hasn't happened yet
+
+ Instead, we can hook into the flush callback chain, which the server will
+ invoke just before flushing output. This lets us submit batch buffers
+ before sending out events, preserving ordering.
+
+ Fixes 28438: [bisected] incorrect character in gnome-terminal under compiz
+ https://bugs.freedesktop.org/show_bug.cgi?id=28438
+
+ Signed-off-by: Kristian Høgsberg
+
+ Signed-off-by: Ben Skeggs
+
+commit 390f1c86d9583f4ceabd407ee47410073c2a1b55
+Author: Ben Skeggs
+Date: Fri Aug 20 09:48:32 2010 +1000
+
+ nv50/xv: support UYVY
+
+ Signed-off-by: Ben Skeggs
+
+commit 00d390952c912d4e9fc2c962caaeb90bf563d5b1
+Author: Maarten Maathuis
+Date: Fri Aug 13 22:24:26 2010 +0200
+
+ nv50/xv: Fix the uncommon codepath to use width/height variable.
+
+ - The common codepath should be the correct one, because that is
+ triggered often, while the other is rare.
+ - This isn't neccesarily a problem, but let's be on the safe side.
+
+ Signed-off-by: Maarten Maathuis
+
+commit f5b486dd237679aec1987985f9ecffc6a4fd3105
+Author: Maarten Maathuis
+Date: Fri Aug 13 22:16:51 2010 +0200
+
+ nv50/xv: We have 18 relocs, not 16, adjust MARK_RING.
+
+ Signed-off-by: Maarten Maathuis
+
+commit 1cb6c91a9afe88d73f8a1180b00f56a9150a16ed
+Author: Roy Spliet
+Date: Sat Aug 7 20:59:06 2010 +0200
+
+ nouveau_exa.c: move line_count logic out of UTS/DFS loop
+
+ Signed-off-by: Roy Spliet
+ Signed-off-by: Maarten Maathuis
+
+commit 9f50b62229d5984ee5c16bc54953c7f8e2d5e575
+Author: Ben Skeggs
+Date: Fri Aug 6 08:28:34 2010 +1000
+
+ nvc0: recognise these chipsets, and allow NoAccel mode on them
+
+ Signed-off-by: Ben Skeggs
+
+commit b96170a4e51c1d3167601210ca31e98283c02885
+Author: Francisco Jerez
+Date: Thu Aug 5 00:40:40 2010 +0200
+
+ nv10/exa: Bump maxX/maxY to 4096/4096.
+
+ This way we can do accelerated 2D on larger pixmaps, it will still
+ fall back to software when we hit the 2048x2048 texturing limit in a
+ composite operation.
+
+commit 321eb2df5c8b1da4d6469037dd1d8888b508fabd
+Author: Francisco Jerez
+Date: Wed Aug 4 13:11:24 2010 +0200
+
+ Revert "nv04-nv40/exa: Match the blob behavior more closely on PrepareCopy."
+
+ This reverts commit 9de0d97bd2fc2ee8800d48b5340a3d495525ad3e. Unnecessary
+ after kernel commit "drm/nouveau: Ack the context switch interrupt before
+ switching contexts.".
+
commit db98ad23633958e52f84501c5a2061d42d346b64
Author: Francisco Jerez
Date: Tue Jun 15 15:32:36 2010 +0200
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xf86-video-nouveau-0.0.16/src/nouveau_dri2.c new/xf86-video-nouveau-0.0.16/src/nouveau_dri2.c
--- old/xf86-video-nouveau-0.0.16/src/nouveau_dri2.c 2010-07-07 17:57:59.000000000 +0200
+++ new/xf86-video-nouveau-0.0.16/src/nouveau_dri2.c 2010-08-27 11:21:38.000000000 +0200
@@ -93,7 +93,6 @@
PixmapPtr pspix = src->ppix, pdpix = dst->ppix;
ScreenPtr pScreen = pDraw->pScreen;
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
- NVPtr pNv = NVPTR(pScrn);
RegionPtr pCopyClip;
GCPtr pGC;
@@ -112,8 +111,6 @@
pDraw->width, pDraw->height, 0, 0);
FreeScratchGC(pGC);
-
- FIRE_RING(pNv->chan);
}
Bool
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xf86-video-nouveau-0.0.16/src/nouveau_exa.c new/xf86-video-nouveau-0.0.16/src/nouveau_exa.c
--- old/xf86-video-nouveau-0.0.16/src/nouveau_exa.c 2010-07-07 17:57:59.000000000 +0200
+++ new/xf86-video-nouveau-0.0.16/src/nouveau_exa.c 2010-08-27 11:21:38.000000000 +0200
@@ -52,6 +52,8 @@
unsigned cpp = pspix->drawable.bitsPerPixel / 8;
unsigned line_len = w * cpp;
unsigned src_offset = 0, src_pitch = 0, linear = 0;
+ /* Maximum DMA transfer */
+ unsigned line_count = pNv->GART->size / line_len;
if (!nv50_style_tiled_pixmap(pspix)) {
linear = 1;
@@ -59,21 +61,16 @@
src_offset += (y * src_pitch) + (x * cpp);
}
+ /* HW limitations */
+ if (line_count > 2047)
+ line_count = 2047;
+
while (h) {
- int line_count, i;
+ int i;
char *src;
- if (h * line_len <= pNv->GART->size) {
+ if (line_count > h)
line_count = h;
- } else {
- line_count = pNv->GART->size / line_len;
- if (line_count > h)
- line_count = h;
- }
-
- /* HW limitations */
- if (line_count > 2047)
- line_count = 2047;
if (MARK_RING(chan, 32, 6))
return FALSE;
@@ -169,6 +166,8 @@
unsigned cpp = pdpix->drawable.bitsPerPixel / 8;
unsigned line_len = w * cpp;
unsigned dst_offset = 0, dst_pitch = 0, linear = 0;
+ /* Maximum DMA transfer */
+ unsigned line_count = pNv->GART->size / line_len;
if (!nv50_style_tiled_pixmap(pdpix)) {
linear = 1;
@@ -176,22 +175,16 @@
dst_offset += (y * dst_pitch) + (x * cpp);
}
+ /* HW limitations */
+ if (line_count > 2047)
+ line_count = 2047;
+
while (h) {
- int line_count, i;
+ int i;
char *dst;
- /* Determine max amount of data we can DMA at once */
- if (h * line_len <= pNv->GART->size) {
+ if (line_count > h)
line_count = h;
- } else {
- line_count = pNv->GART->size / line_len;
- if (line_count > h)
- line_count = h;
- }
-
- /* HW limitations */
- if (line_count > 2047)
- line_count = 2047;
/* Upload to GART */
if (nouveau_bo_map(pNv->GART, NOUVEAU_BO_WR))
@@ -524,7 +517,7 @@
exa->maxX = 8192;
exa->maxY = 8192;
} else
- if (pNv->Architecture >= NV_ARCH_20) {
+ if (pNv->Architecture >= NV_ARCH_10) {
exa->maxX = 4096;
exa->maxY = 4096;
} else {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xf86-video-nouveau-0.0.16/src/nouveau_xv.c new/xf86-video-nouveau-0.0.16/src/nouveau_xv.c
--- old/xf86-video-nouveau-0.0.16/src/nouveau_xv.c 2010-07-07 17:57:59.000000000 +0200
+++ new/xf86-video-nouveau-0.0.16/src/nouveau_xv.c 2010-08-27 11:21:38.000000000 +0200
@@ -1983,7 +1983,8 @@
{
XVIMAGE_YV12,
XVIMAGE_I420,
- XVIMAGE_YUY2
+ XVIMAGE_YUY2,
+ XVIMAGE_UYVY
};
static XF86VideoAdaptorPtr
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xf86-video-nouveau-0.0.16/src/nv04_exa.c new/xf86-video-nouveau-0.0.16/src/nv04_exa.c
--- old/xf86-video-nouveau-0.0.16/src/nv04_exa.c 2010-02-28 19:01:26.000000000 +0100
+++ new/xf86-video-nouveau-0.0.16/src/nv04_exa.c 2010-08-27 11:21:39.000000000 +0200
@@ -207,15 +207,11 @@
return FALSE;
}
- BEGIN_RING(chan, blit, NV04_IMAGE_BLIT_SURFACE, 1);
- OUT_RING (chan, pNv->NvContextSurfaces->handle);
BEGIN_RING(chan, blit, NV01_IMAGE_BLIT_OPERATION, 1);
OUT_RING (chan, 1); /* ROP_AND */
NV04EXASetROP(pScrn, alu, planemask);
} else {
- BEGIN_RING(chan, blit, NV04_IMAGE_BLIT_SURFACE, 1);
- OUT_RING (chan, pNv->NvContextSurfaces->handle);
BEGIN_RING(chan, blit, NV01_IMAGE_BLIT_OPERATION, 1);
OUT_RING (chan, 3); /* SRCCOPY */
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xf86-video-nouveau-0.0.16/src/nv50_xv.c new/xf86-video-nouveau-0.0.16/src/nv50_xv.c
--- old/xf86-video-nouveau-0.0.16/src/nv50_xv.c 2010-03-26 19:11:42.000000000 +0100
+++ new/xf86-video-nouveau-0.0.16/src/nv50_xv.c 2010-08-27 11:21:39.000000000 +0200
@@ -70,7 +70,7 @@
const unsigned tcb_flags = NOUVEAU_BO_RDWR | NOUVEAU_BO_VRAM;
uint32_t mode = 0xd0005000 | (src->tile_mode << 22);
- if (MARK_RING(chan, 256, 16))
+ if (MARK_RING(chan, 256, 18))
return FALSE;
BEGIN_RING(chan, tesla, NV50TCL_RT_ADDRESS_HIGH(0), 5);
@@ -147,11 +147,19 @@
OUT_RING (chan, 0x03000000);
OUT_RING (chan, 0x00000000);
} else {
+ if (id == FOURCC_UYVY) {
+ OUT_RING (chan, NV50TIC_0_0_MAPA_C1 | NV50TIC_0_0_TYPEA_UNORM |
+ NV50TIC_0_0_MAPB_ZERO | NV50TIC_0_0_TYPEB_UNORM |
+ NV50TIC_0_0_MAPG_ZERO | NV50TIC_0_0_TYPEG_UNORM |
+ NV50TIC_0_0_MAPR_ZERO | NV50TIC_0_0_TYPER_UNORM |
+ NV50TIC_0_0_FMT_8_8);
+ } else {
OUT_RING (chan, NV50TIC_0_0_MAPA_C0 | NV50TIC_0_0_TYPEA_UNORM |
NV50TIC_0_0_MAPB_ZERO | NV50TIC_0_0_TYPEB_UNORM |
NV50TIC_0_0_MAPG_ZERO | NV50TIC_0_0_TYPEG_UNORM |
NV50TIC_0_0_MAPR_ZERO | NV50TIC_0_0_TYPER_UNORM |
NV50TIC_0_0_FMT_8_8);
+ }
if (OUT_RELOCl(chan, src, packed_y, NOUVEAU_BO_VRAM | NOUVEAU_BO_RD) ||
OUT_RELOC (chan, src, packed_y, NOUVEAU_BO_VRAM | NOUVEAU_BO_RD |
NOUVEAU_BO_HIGH | NOUVEAU_BO_OR, mode, mode)) {
@@ -163,11 +171,19 @@
OUT_RING (chan, (1 << NV50TIC_0_5_DEPTH_SHIFT) | src_h);
OUT_RING (chan, 0x03000000);
OUT_RING (chan, 0x00000000);
+ if (id == FOURCC_UYVY) {
+ OUT_RING (chan, NV50TIC_0_0_MAPA_C2 | NV50TIC_0_0_TYPEA_UNORM |
+ NV50TIC_0_0_MAPB_C0 | NV50TIC_0_0_TYPEB_UNORM |
+ NV50TIC_0_0_MAPG_ZERO | NV50TIC_0_0_TYPEG_UNORM |
+ NV50TIC_0_0_MAPR_ZERO | NV50TIC_0_0_TYPER_UNORM |
+ NV50TIC_0_0_FMT_8_8_8_8);
+ } else {
OUT_RING (chan, NV50TIC_0_0_MAPA_C3 | NV50TIC_0_0_TYPEA_UNORM |
NV50TIC_0_0_MAPB_C1 | NV50TIC_0_0_TYPEB_UNORM |
NV50TIC_0_0_MAPG_ZERO | NV50TIC_0_0_TYPEG_UNORM |
NV50TIC_0_0_MAPR_ZERO | NV50TIC_0_0_TYPER_UNORM |
NV50TIC_0_0_FMT_8_8_8_8);
+ }
if (OUT_RELOCl(chan, src, packed_y, NOUVEAU_BO_VRAM | NOUVEAU_BO_RD) ||
OUT_RELOC (chan, src, packed_y, NOUVEAU_BO_VRAM | NOUVEAU_BO_RD |
NOUVEAU_BO_HIGH | NOUVEAU_BO_OR, mode, mode)) {
@@ -331,7 +347,7 @@
if (AVAIL_RING(chan) < 64) {
if (!nv50_xv_state_emit(ppix, id, src, packed_y, uv,
- src_w, src_h))
+ width, height))
return BadAlloc;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xf86-video-nouveau-0.0.16/src/nv_driver.c new/xf86-video-nouveau-0.0.16/src/nv_driver.c
--- old/xf86-video-nouveau-0.0.16/src/nv_driver.c 2010-07-07 17:57:59.000000000 +0200
+++ new/xf86-video-nouveau-0.0.16/src/nv_driver.c 2010-08-27 11:21:39.000000000 +0200
@@ -254,6 +254,7 @@
case 0x80:
case 0x90:
case 0xa0:
+ case 0xc0:
break;
default:
xf86DrvMsg(-1, X_ERROR, "Unknown chipset: NV%02x\n", chipset);
@@ -354,6 +355,16 @@
ErrorF("Error dropping master: %d\n", ret);
}
+static void
+NVFlushCallback(CallbackListPtr *list, pointer user_data, pointer call_data)
+{
+ ScrnInfoPtr pScrn = user_data;
+ NVPtr pNv = NVPTR(pScrn);
+
+ if (pScrn->vtSema && !pNv->NoAccel)
+ FIRE_RING (pNv->chan);
+}
+
static void
NVBlockHandler (
int i,
@@ -366,9 +377,6 @@
ScrnInfoPtr pScrnInfo = xf86Screens[i];
NVPtr pNv = NVPTR(pScrnInfo);
- if (pScrnInfo->vtSema && !pNv->NoAccel)
- FIRE_RING (pNv->chan);
-
pScreen->BlockHandler = pNv->BlockHandler;
(*pScreen->BlockHandler) (i, blockData, pTimeout, pReadmask);
pScreen->BlockHandler = NVBlockHandler;
@@ -431,6 +439,8 @@
xf86_cursors_fini(pScreen);
+ DeleteCallback(&FlushCallback, NVFlushCallback, pScrn);
+
if (pNv->ShadowPtr) {
free(pNv->ShadowPtr);
pNv->ShadowPtr = NULL;
@@ -652,6 +662,9 @@
case 0xa0:
pNv->Architecture = NV_ARCH_50;
break;
+ case 0xc0:
+ pNv->Architecture = NV_ARCH_C0;
+ break;
default:
return FALSE;
}
@@ -674,8 +687,8 @@
break;
case 30:
/* OK on NV50 KMS */
- if (pNv->Architecture != NV_ARCH_50)
- NVPreInitFail("Depth 30 supported on G80 only\n");
+ if (pNv->Architecture < NV_ARCH_50)
+ NVPreInitFail("Depth 30 supported on G80+ only\n");
break;
case 15: /* 15 may get done one day, so leave any code for it in place */
default:
@@ -1142,6 +1155,9 @@
pNv->BlockHandler = pScreen->BlockHandler;
pScreen->BlockHandler = NVBlockHandler;
+ if (!AddCallback(&FlushCallback, NVFlushCallback, pScrn))
+ return FALSE;
+
pScrn->vtSema = TRUE;
pScrn->pScreen = pScreen;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xf86-video-nouveau-0.0.16/src/nv_type.h new/xf86-video-nouveau-0.0.16/src/nv_type.h
--- old/xf86-video-nouveau-0.0.16/src/nv_type.h 2010-02-28 19:01:27.000000000 +0100
+++ new/xf86-video-nouveau-0.0.16/src/nv_type.h 2010-08-27 11:21:39.000000000 +0200
@@ -24,6 +24,7 @@
#define NV_ARCH_30 0x30
#define NV_ARCH_40 0x40
#define NV_ARCH_50 0x50
+#define NV_ARCH_C0 0xc0
/* NV50 */
typedef struct _NVRec *NVPtr;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org