rpms/xorg-x11-drv-nouveau/devel .cvsignore, 1.17, 1.18 nouveau-fedora.patch, 1.7, 1.8 sources, 1.18, 1.19 xorg-x11-drv-nouveau.spec, 1.23, 1.24

Ben Skeggs bskeggs at fedoraproject.org
Mon Mar 23 03:00:33 UTC 2009


Author: bskeggs

Update of /cvs/pkgs/rpms/xorg-x11-drv-nouveau/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv1161

Modified Files:
	.cvsignore nouveau-fedora.patch sources 
	xorg-x11-drv-nouveau.spec 
Log Message:
* Mon Mar 23 2009 Ben Skeggs <bskeggs at redhat.com> 0.0.12-12.20090318git3e7fa97
- upstream update, various fixes to pre-nv50 modesetting, cleanups




Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-nouveau/devel/.cvsignore,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- .cvsignore	13 Mar 2009 07:43:49 -0000	1.17
+++ .cvsignore	23 Mar 2009 03:00:01 -0000	1.18
@@ -1 +1 @@
-xf86-video-nouveau-0.0.12-20090313git79d23d8.tar.bz2
+xf86-video-nouveau-0.0.12-20090318git3e7fa97.tar.bz2

nouveau-fedora.patch:

Index: nouveau-fedora.patch
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-nouveau/devel/nouveau-fedora.patch,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- nouveau-fedora.patch	13 Mar 2009 07:43:49 -0000	1.7
+++ nouveau-fedora.patch	23 Mar 2009 03:00:01 -0000	1.8
@@ -1,5 +1,5 @@
 diff --git a/src/Makefile.am b/src/Makefile.am
-index f2ba849..4294796 100644
+index f0b51d2..70813d8 100644
 --- a/src/Makefile.am
 +++ b/src/Makefile.am
 @@ -79,6 +79,7 @@ nouveau_drv_la_SOURCES = \
@@ -11,16 +11,15 @@
  			 nouveau_output.h \
  			 nouveau_connector.h \
 diff --git a/src/drmmode_display.c b/src/drmmode_display.c
-index afca718..a8612e6 100644
+index 850c9be..736757f 100644
 --- a/src/drmmode_display.c
 +++ b/src/drmmode_display.c
-@@ -129,6 +129,50 @@ drmmode_crtc_dpms(xf86CrtcPtr drmmode_crtc, int mode)
- 
+@@ -187,6 +187,50 @@ drmmode_fb_pixmap(ScrnInfoPtr pScrn, int id, int *w, int *h)
  }
  
-+static void
-+drmmode_fb_copy(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int dst_id, int src_id,
-+		int x, int y)
+ static void
++drmmode_fb_copy_sw(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int dst_id,
++		   int src_id, int x, int y)
 +{
 +	drmModeFBPtr fb;
 +	NVPtr pNv = NVPTR(pScrn);
@@ -62,10 +61,23 @@
 +	drmFree(fb);
 +}
 +
- static Bool
- drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
- 		       Rotation rotation, int x, int y)
-@@ -153,7 +197,7 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
++static void
+ drmmode_fb_copy(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int dst_id, int src_id,
+ 		int x, int y)
+ {
+@@ -196,6 +240,11 @@ drmmode_fb_copy(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int dst_id, int src_id,
+ 	PixmapPtr pspix, pdpix;
+ 	int w, h;
+ 
++	if (!pNv->exa_driver_pixmaps) {
++		drmmode_fb_copy_sw(pScrn, drmmode, dst_id, src_id, x, y);
++		return;
++	}
++
+ 	pspix = drmmode_fb_pixmap(pScrn, src_id, NULL, NULL);
+ 	if (!pspix)
+ 		return;
+@@ -241,7 +290,7 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
  		ret = drmModeAddFB(drmmode->fd,
  				   pScrn->virtualX, pScrn->virtualY,
  				   pScrn->depth, pScrn->bitsPerPixel,
@@ -74,21 +86,18 @@
  		if (ret < 0) {
  			ErrorF("failed to add fb\n");
  			return FALSE;
-@@ -206,6 +250,12 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
- 	fb_id = drmmode->fb_id;
+@@ -294,8 +343,7 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
  	if (drmmode_crtc->rotate_fb_id)
  		fb_id = drmmode_crtc->rotate_fb_id;
-+	else
+ 	else
+-	if (fb_id != drmmode_crtc->mode_crtc->buffer_id &&
+-	    pNv->exa_driver_pixmaps) {
 +	if (fb_id != drmmode_crtc->mode_crtc->buffer_id) {
-+		drmmode_fb_copy(pScrn, drmmode, fb_id,
-+				drmmode_crtc->mode_crtc->buffer_id, x, y);
-+	}
-+
- 	ret = drmModeSetCrtc(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id,
- 			     fb_id, x, y, output_ids, output_count, &kmode);
- 	if (ret)
+ 		drmmode_fb_copy(pScrn, drmmode, fb_id,
+ 				drmmode_crtc->mode_crtc->buffer_id, x, y);
+ 	}
 diff --git a/src/nouveau_exa.c b/src/nouveau_exa.c
-index 93fc3c5..61773db 100644
+index b7bcc87..aee2794 100644
 --- a/src/nouveau_exa.c
 +++ b/src/nouveau_exa.c
 @@ -265,7 +265,8 @@ nouveau_exa_wait_marker(ScreenPtr pScreen, int marker)
@@ -157,8 +166,8 @@
 +	if (NVPTR(xf86Screens[ppix->drawable.pScreen->myNum])->GART && bo->tiled) {
  		struct nouveau_pixmap *nvpix = nouveau_pixmap(ppix);
  
- 		nvpix->linear = xcalloc(1, ppix->devKind * ppix->drawable.height);
-@@ -428,7 +441,7 @@ nouveau_exa_pixmap_unmap(PixmapPtr ppix)
+ 		nvpix->map_refcount++;
+@@ -432,7 +445,7 @@ nouveau_exa_pixmap_unmap(PixmapPtr ppix)
  {
  	struct nouveau_bo *bo = nouveau_pixmap_bo(ppix);
  
@@ -166,8 +175,8 @@
 +	if (NVPTR(xf86Screens[ppix->drawable.pScreen->myNum])->GART && bo->tiled) {
  		struct nouveau_pixmap *nvpix = nouveau_pixmap(ppix);
  
- 		NVAccelUploadM2MF(ppix, 0, 0, ppix->drawable.width,
-@@ -608,6 +621,12 @@ nouveau_exa_init(ScreenPtr pScreen)
+ 		if (--nvpix->map_refcount)
+@@ -616,6 +629,12 @@ nouveau_exa_init(ScreenPtr pScreen)
  		exa->maxY = 2048;
  	}
  
@@ -195,10 +204,10 @@
  	nv_crtc->crtc->ModeSet(nv_crtc->crtc, mode);
 diff --git a/src/nv50_shadow_damage.c b/src/nv50_shadow_damage.c
 new file mode 100644
-index 0000000..713f45c
+index 0000000..942aba3
 --- /dev/null
 +++ b/src/nv50_shadow_damage.c
-@@ -0,0 +1,276 @@
+@@ -0,0 +1,275 @@
 +/*
 + * Copyright 2009 Maarten Maathuis
 + *
@@ -460,8 +469,7 @@
 +		return false;
 +	}
 +
-+	pNv->screen_damage = DamageCreate(nv50_shadow_damage_report, nv50_shadow_damage_destroy, 
-+		DamageReportRawRegion, true, pScreen, ppix);
++	pNv->screen_damage = DamageCreate(nv50_shadow_damage_report, nv50_shadow_damage_destroy, DamageReportRawRegion, true, pScreen, ppix);
 +	if (!pNv->screen_damage) {
 +		xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
 +			"No screen damage\n");
@@ -476,7 +484,7 @@
 +	return true;
 +}
 diff --git a/src/nv_bios.c b/src/nv_bios.c
-index a290996..22d5c47 100644
+index 02a6624..22421a0 100644
 --- a/src/nv_bios.c
 +++ b/src/nv_bios.c
 @@ -22,6 +22,9 @@
@@ -489,7 +497,7 @@
  #include "nv_include.h"
  
  #if defined(__FreeBSD__) || defined(__NetBSD__)
-@@ -4857,7 +4860,10 @@ uint8_t * nouveau_bios_embedded_edid(ScrnInfoPtr pScrn)
+@@ -4871,7 +4874,10 @@ uint8_t * nouveau_bios_embedded_edid(ScrnInfoPtr pScrn)
  
  bool NVInitVBIOS(ScrnInfoPtr pScrn)
  {
@@ -500,7 +508,7 @@
  
  	memset(bios, 0, sizeof(struct nvbios));
  
-@@ -4868,6 +4874,13 @@ bool NVInitVBIOS(ScrnInfoPtr pScrn)
+@@ -4882,6 +4888,13 @@ bool NVInitVBIOS(ScrnInfoPtr pScrn)
  	if (bios->length > NV_PROM_SIZE)
  		bios->length = NV_PROM_SIZE;
  
@@ -515,20 +523,20 @@
  }
  
 diff --git a/src/nv_dri.c b/src/nv_dri.c
-index e105639..95ca770 100644
+index 37538f0..ec47e0b 100644
 --- a/src/nv_dri.c
 +++ b/src/nv_dri.c
-@@ -331,7 +331,7 @@ Bool NVDRIFinishScreenInit(ScrnInfoPtr pScrn)
+@@ -332,7 +332,7 @@ Bool NVDRIFinishScreenInit(ScrnInfoPtr pScrn)
  	pNOUVEAUDRI->depth		= pScrn->depth;
  	pNOUVEAUDRI->bpp		= pScrn->bitsPerPixel;
  
--	pNOUVEAUDRI->front_offset 	= pNv->FB->offset;
-+	pNOUVEAUDRI->front_offset 	= pNv->scanout->offset;
- 	pNOUVEAUDRI->front_pitch	= pScrn->displayWidth;
- 	/* back/depth buffers will likely be allocated on a per-drawable
- 	 * basis, but these may be useful if we want to support shared back
+-	ret = nouveau_bo_handle_get(pNv->FB, &pNOUVEAUDRI->front_offset);
++	ret = nouveau_bo_handle_get(pNv->scanout, &pNOUVEAUDRI->front_offset);
+ 	if (ret) {
+ 		xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ 			   "[dri] unable to reference front buffer: %d\n", ret);
 diff --git a/src/nv_driver.c b/src/nv_driver.c
-index ed4d61b..6664373 100644
+index f54fa72..de90d19 100644
 --- a/src/nv_driver.c
 +++ b/src/nv_driver.c
 @@ -21,6 +21,7 @@
@@ -539,7 +547,7 @@
  
  #include "nv_include.h"
  
-@@ -657,14 +658,27 @@ NV50ReleaseDisplay(ScrnInfoPtr pScrn)
+@@ -650,14 +651,27 @@ NV50ReleaseDisplay(ScrnInfoPtr pScrn)
   */
  
  /* Mandatory */
@@ -564,10 +572,26 @@
 +		NVMapMemGART(pScrn);
 +	}
 +
- 	if (!pNv->kms_enable && pNv->randr12_enable)
- 		NVSave(pScrn);
+ 	if (!pNv->NoAccel)
+ 		NVAccelCommonInit(pScrn);
  
-@@ -711,6 +725,12 @@ NVLeaveVT(int scrnIndex, int flags)
+@@ -668,10 +682,11 @@ NVEnterVT(int scrnIndex, int flags)
+ 		/* Clear the framebuffer, we don't want to see garbage
+ 		 * on-screen up until X decides to draw something
+ 		 */
+-		nouveau_bo_map(pNv->FB, NOUVEAU_BO_WR);
+-		memset(pNv->FB->map, 0, NOUVEAU_ALIGN(pScrn->virtualX, 64) *
+-		       pScrn->virtualY * (pScrn->bitsPerPixel >> 3));
+-		nouveau_bo_unmap(pNv->FB);
++		nouveau_bo_map(pNv->scanout, NOUVEAU_BO_WR);
++		memset(pNv->scanout->map, 0,
++		       NOUVEAU_ALIGN(pScrn->virtualX, 64) * pScrn->virtualY *
++		       (pScrn->bitsPerPixel >> 3));
++		nouveau_bo_unmap(pNv->scanout);
+ 
+ 		if (pNv->Architecture == NV_ARCH_50) {
+ 			if (!NV50AcquireDisplay(pScrn))
+@@ -714,6 +729,12 @@ NVLeaveVT(int scrnIndex, int flags)
  
  	NVSync(pScrn);
  
@@ -577,10 +601,10 @@
 +		ioctl(nouveau_device(pNv->dev)->fd, DRM_IOCTL_DROP_MASTER, NULL);
 +	}
 +
- 	if (pNv->kms_enable)
- 		return;
- 
-@@ -1585,6 +1605,8 @@ NVMapMemSW(ScrnInfoPtr pScrn)
+ 	if (!pNv->kms_enable) {
+ 		if (pNv->Architecture == NV_ARCH_50) {
+ 			NV50ReleaseDisplay(pScrn);
+@@ -1581,6 +1602,8 @@ NVMapMemSW(ScrnInfoPtr pScrn)
  		return FALSE;
  	pNv->GART = NULL;
  
@@ -588,8 +612,8 @@
 +
  	ret = nouveau_bo_fake(&dev, Cursor0Offset,
  			      NOUVEAU_BO_VRAM | NOUVEAU_BO_PIN,
- 			      64*1024, pNv->VRAMMap + Cursor0Offset,
-@@ -1625,11 +1647,81 @@ NVMapMemSW(ScrnInfoPtr pScrn)
+ 			      64 * 64 * 4, pNv->VRAMMap + Cursor0Offset,
+@@ -1621,11 +1644,81 @@ NVMapMemSW(ScrnInfoPtr pScrn)
  }
  
  static Bool
@@ -671,7 +695,7 @@
  
  	if (!pNv->dev)
  		return NVMapMemSW(pScrn);
-@@ -1646,41 +1738,45 @@ NVMapMem(ScrnInfoPtr pScrn)
+@@ -1642,45 +1735,42 @@ NVMapMem(ScrnInfoPtr pScrn)
  		size = size * (pScrn->bitsPerPixel >> 3);
  		size = size * pScrn->virtualY;
  	} else {
@@ -706,10 +730,25 @@
 -		else
 -			/* always leave 512kb for other things like the fifos */
 -			size = pNv->AGPSize - 512*1024;
+-	} else {
+-		size = (4 << 20) - (1 << 18) ;
+-		xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+-			   "GART: PCI DMA - using %dKiB\n",
+-			   size >> 10);
+-	}
 +	/* Allocate linear scanout. */
 +	if (pNv->Architecture >= NV_ARCH_50) {
 +		unsigned scanout_size;
-+
+ 
+-	if (nouveau_bo_new(pNv->dev, NOUVEAU_BO_GART | NOUVEAU_BO_PIN, 0,
+-			   size, &pNv->GART)) {
+-		xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+-			   "Unable to allocate GART memory\n");
+-	}
+-	if (pNv->GART) {
+-		xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+-			   "GART: Allocated %dMiB as a scratch buffer\n",
+-			   (unsigned int)(pNv->GART->size >> 20));
 +		scanout_size = NOUVEAU_ALIGN(pScrn->virtualX, 64);
 +		scanout_size *= (pScrn->bitsPerPixel >> 3);
 +		scanout_size *= pScrn->virtualY;
@@ -720,24 +759,12 @@
 +				   "Failed to allocate scanout buffer\n");
 +			return FALSE;
 +		}
- 	} else {
--		size = (4 << 20) - (1 << 18) ;
--		xf86DrvMsg(pScrn->scrnIndex, X_INFO,
--			   "GART: PCI DMA - using %dKiB\n",
--			   size >> 10);
++	} else {
 +		nouveau_bo_ref(pNv->FB, &pNv->scanout);
  	}
  
--	if (nouveau_bo_new(pNv->dev, NOUVEAU_BO_GART | NOUVEAU_BO_PIN, 0,
--			   size, &pNv->GART)) {
--		xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
--			   "Unable to allocate GART memory\n");
--	}
-+	NVMapMemGART(pScrn);
- 	if (pNv->GART) {
- 		xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- 			   "GART: Allocated %dMiB as a scratch buffer\n",
-@@ -1758,6 +1854,7 @@ NVUnmapMem(ScrnInfoPtr pScrn)
+ 	/* We don't need to allocate cursors / lut here if we're using
+@@ -1754,6 +1844,7 @@ NVUnmapMem(ScrnInfoPtr pScrn)
  	}
  
  	nouveau_bo_ref(NULL, &pNv->FB);
@@ -745,22 +772,7 @@
  	nouveau_bo_ref(NULL, &pNv->GART);
  	nouveau_bo_ref(NULL, &pNv->Cursor);
  	nouveau_bo_ref(NULL, &pNv->Cursor2);
-@@ -2078,10 +2175,11 @@ NVScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
- 	 * up until X decides to draw something
- 	 */
- 	if (!pNv->kms_enable) {
--		nouveau_bo_map(pNv->FB, NOUVEAU_BO_WR);
--		memset(pNv->FB->map, 0, NOUVEAU_ALIGN(pScrn->virtualX, 64) *
-+		nouveau_bo_map(pNv->scanout, NOUVEAU_BO_WR);
-+		memset(pNv->scanout->map, 0,
-+		       NOUVEAU_ALIGN(pScrn->virtualX, 64) *
- 		       pScrn->virtualY * (pScrn->bitsPerPixel >> 3));
--		nouveau_bo_unmap(pNv->FB);
-+		nouveau_bo_unmap(pNv->scanout);
- 	}
- 
- 	if (!pNv->randr12_enable) {
-@@ -2293,6 +2391,15 @@ NVSaveScreen(ScreenPtr pScreen, int mode)
+@@ -2265,6 +2356,15 @@ NVSaveScreen(ScreenPtr pScreen, int mode)
  	bool on = xf86IsUnblank(mode);
  	int i;
  
@@ -777,10 +789,10 @@
  		return vgaHWSaveScreen(pScreen, mode);
  
 diff --git a/src/nv_proto.h b/src/nv_proto.h
-index dac8fdb..289c8a2 100644
+index af888d0..dd78719 100644
 --- a/src/nv_proto.h
 +++ b/src/nv_proto.h
-@@ -281,6 +281,10 @@ void nv50_xv_video_stop(ScrnInfoPtr, pointer, Bool);
+@@ -284,6 +284,10 @@ void nv50_xv_video_stop(ScrnInfoPtr, pointer, Bool);
  int nv50_xv_port_attribute_set(ScrnInfoPtr, Atom, INT32, pointer);
  int nv50_xv_port_attribute_get(ScrnInfoPtr, Atom, INT32 *, pointer);
  
@@ -792,10 +804,10 @@
  #ifndef exaMoveInPixmap
  extern void exaMoveInPixmap(PixmapPtr pPixmap);
 diff --git a/src/nv_type.h b/src/nv_type.h
-index 3130f9e..1c4fd10 100644
+index 4a7c04f..8a0e7a1 100644
 --- a/src/nv_type.h
 +++ b/src/nv_type.h
-@@ -272,6 +272,7 @@ typedef struct _NVRec {
+@@ -268,6 +268,7 @@ typedef struct _NVRec {
      /* Various pinned memory regions */
      struct nouveau_bo * FB;
      void *              FBMap;
@@ -803,7 +815,7 @@
      //struct nouveau_bo * FB_old; /* for KMS */
      struct nouveau_bo * shadow[2]; /* for easy acces by exa */
      struct nouveau_bo * Cursor;
-@@ -280,6 +281,9 @@ typedef struct _NVRec {
+@@ -276,6 +277,9 @@ typedef struct _NVRec {
  
      struct nvbios	VBIOS;
      struct nouveau_bios_info	*vbios;


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-nouveau/devel/sources,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- sources	13 Mar 2009 07:43:49 -0000	1.18
+++ sources	23 Mar 2009 03:00:01 -0000	1.19
@@ -1 +1 @@
-9ff23ca87b9a18558308746d1b19ec43  xf86-video-nouveau-0.0.12-20090313git79d23d8.tar.bz2
+0ead6335c852ae47cf7b14fea0c3d87b  xf86-video-nouveau-0.0.12-20090318git3e7fa97.tar.bz2


Index: xorg-x11-drv-nouveau.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-nouveau/devel/xorg-x11-drv-nouveau.spec,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- xorg-x11-drv-nouveau.spec	13 Mar 2009 07:43:49 -0000	1.23
+++ xorg-x11-drv-nouveau.spec	23 Mar 2009 03:00:01 -0000	1.24
@@ -7,8 +7,8 @@
 # git clone git://git.freedesktop.org/git/nouveau/xf86-video-nouveau
 # git-archive --format=tar --prefix=xf86-video-nouveau-0.0.10/ %{git_version} | bzip2 > xf86-video-nouveau-0.0.10-%{gitdate}.tar.bz2
 
-%define gitdate 20090313
-%define git_version 79d23d8
+%define gitdate 20090318
+%define git_version 3e7fa97
 
 %define snapshot %{gitdate}git%{git_version}
 
@@ -19,7 +19,7 @@
 # need to set an epoch to get version number in sync with upstream
 Epoch:     1
 Version:   %{nouveau_version}
-Release:   11.%{snapshot}%{?dist}
+Release:   12.%{snapshot}%{?dist}
 URL:       http://www.x.org
 License: MIT
 Group:     User Interface/X Hardware Support
@@ -43,6 +43,7 @@
 
 Patch0: nouveau-fedora.patch
 Patch1: nouveau-eedid.patch
+Patch2: dcbconf_7_4_ignore.diff
 
 %description 
 X.Org X11 nouveau video driver.
@@ -52,6 +53,7 @@
 
 %patch0 -p1 -b .fedora
 %patch1 -p1 -b .eedid
+%patch2 -p1 -b .dcbconf
 
 %build
 autoreconf -v --install
@@ -75,6 +77,9 @@
 %{_mandir}/man4/nouveau.4*
 
 %changelog
+* Mon Mar 23 2009 Ben Skeggs <bskeggs at redhat.com> 0.0.12-12.20090318git3e7fa97
+- upstream update, various fixes to pre-nv50 modesetting, cleanups
+
 * Fri Mar 13 2009 Ben Skeggs <bskeggs at redhat.com> 0.0.12-11.20090313git79d23d8
 - kms: dpms fixes
 - kms: nicer reporting of output properties to users




More information about the fedora-extras-commits mailing list