[arch-commits] Commit in libdrm/trunk (PKGBUILD git_nouveau.diff)

andyrtr at archlinux.org andyrtr at archlinux.org
Fri Dec 17 18:54:14 UTC 2010


    Date: Friday, December 17, 2010 @ 13:54:14
  Author: andyrtr
Revision: 103303

upgpkg: libdrm 2.4.23-1
new upstream release 2.4.23

Modified:
  libdrm/trunk/PKGBUILD
Deleted:
  libdrm/trunk/git_nouveau.diff

------------------+
 PKGBUILD         |   22 +--
 git_nouveau.diff |  327 -----------------------------------------------------
 2 files changed, 10 insertions(+), 339 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2010-12-17 18:16:09 UTC (rev 103302)
+++ PKGBUILD	2010-12-17 18:54:14 UTC (rev 103303)
@@ -2,8 +2,8 @@
 # Maintainer: Jan de Groot <jgc at archlinux.org>
 
 pkgname=libdrm
-pkgver=2.4.22
-pkgrel=3
+pkgver=2.4.23
+pkgrel=1
 pkgdesc="Userspace interface to kernel DRM services"
 arch=(i686 x86_64)
 license=('custom')
@@ -12,27 +12,25 @@
 url="http://dri.freedesktop.org/"
 source=(http://dri.freedesktop.org/${pkgname}/${pkgname}-${pkgver}.tar.bz2
         no-pthread-stubs.patch
-        COPYING
-	git_nouveau.diff)
-md5sums=('3bdfa33f35d1c902e5115cceb5500c83'
+        COPYING)
+md5sums=('7577ff36ec364d88fae466d4f7fc5fc6'
          '9b5ec3bbebe86921e2057694c42f65b8'
-         'ba65e71c481b94ef0fb6c23c7f21ffa1'
-         '3321345270053234c0071d804e5b89f3')
+         'ba65e71c481b94ef0fb6c23c7f21ffa1')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
   patch -Np1 -i "${srcdir}/no-pthread-stubs.patch"
-  # add future nouveau api
-#  patch -Np1 -i ${srcdir}/git_nouveau.diff
   
   libtoolize --force
   aclocal
   autoconf
   automake
   ./configure --prefix=/usr \
-      --enable-intel --enable-radeon \
-      --enable-vmwgfx-experimental-api --enable-nouveau-experimental-api \
-      --enable-udev
+      --enable-udev \
+      --enable-intel \
+      --enable-radeon \
+      --enable-vmwgfx-experimental-api \
+      --enable-nouveau-experimental-api
   make
 }
 

Deleted: git_nouveau.diff
===================================================================
--- git_nouveau.diff	2010-12-17 18:16:09 UTC (rev 103302)
+++ git_nouveau.diff	2010-12-17 18:54:14 UTC (rev 103303)
@@ -1,327 +0,0 @@
-From 09b1062628f2cbddb3ebae20e7b3b8a0a93acebf Mon Sep 17 00:00:00 2001
-From: Francisco Jerez <currojerez at riseup.net>
-Date: Tue, 28 Sep 2010 20:45:27 +0000
-Subject: nouveau: Let the user choose the push buffer size.
-
-Signed-off-by: Francisco Jerez <currojerez at riseup.net>
-Acked-by: Ben Skeggs <bskeggs at redhat.com>
----
-diff --git a/nouveau/nouveau_channel.c b/nouveau/nouveau_channel.c
-index 40a0b34..ded5424 100644
---- a/nouveau/nouveau_channel.c
-+++ b/nouveau/nouveau_channel.c
-@@ -28,7 +28,8 @@
- 
- int
- nouveau_channel_alloc(struct nouveau_device *dev, uint32_t fb_ctxdma,
--		      uint32_t tt_ctxdma, struct nouveau_channel **chan)
-+		      uint32_t tt_ctxdma, int pushbuf_size,
-+		      struct nouveau_channel **chan)
- {
- 	struct nouveau_device_priv *nvdev = nouveau_device(dev);
- 	struct nouveau_channel_priv *nvchan;
-@@ -90,7 +91,7 @@ nouveau_channel_alloc(struct nouveau_device *dev, uint32_t fb_ctxdma,
- 		return ret;
- 	}
- 
--	ret = nouveau_pushbuf_init(&nvchan->base);
-+	ret = nouveau_pushbuf_init(&nvchan->base, pushbuf_size);
- 	if (ret) {
- 		nouveau_channel_free((void *)&nvchan);
- 		return ret;
-diff --git a/nouveau/nouveau_channel.h b/nouveau/nouveau_channel.h
-index ddcf8e4..d61a4c0 100644
---- a/nouveau/nouveau_channel.h
-+++ b/nouveau/nouveau_channel.h
-@@ -49,7 +49,7 @@ struct nouveau_channel {
- 
- int
- nouveau_channel_alloc(struct nouveau_device *, uint32_t fb, uint32_t tt,
--		      struct nouveau_channel **);
-+		      int pushbuf_size, struct nouveau_channel **);
- 
- void
- nouveau_channel_free(struct nouveau_channel **);
-diff --git a/nouveau/nouveau_private.h b/nouveau/nouveau_private.h
-index 5a952f7..4c53534 100644
---- a/nouveau/nouveau_private.h
-+++ b/nouveau/nouveau_private.h
-@@ -37,8 +37,8 @@
- #include "nouveau_pushbuf.h"
- #include "nouveau_reloc.h"
- 
--#define CALPB_BUFFERS 4
--#define CALPB_BUFSZ   16384
-+#define CALPB_BUFFERS 3
-+
- struct nouveau_pushbuf_priv {
- 	uint32_t cal_suffix0;
- 	uint32_t cal_suffix1;
-@@ -64,7 +64,7 @@ struct nouveau_pushbuf_priv {
- #define nouveau_pushbuf(n) ((struct nouveau_pushbuf_priv *)(n))
- 
- int
--nouveau_pushbuf_init(struct nouveau_channel *);
-+nouveau_pushbuf_init(struct nouveau_channel *, int buf_size);
- void
- nouveau_pushbuf_fini(struct nouveau_channel *);
- 
-diff --git a/nouveau/nouveau_pushbuf.c b/nouveau/nouveau_pushbuf.c
-index 28b8018..90836bc 100644
---- a/nouveau/nouveau_pushbuf.c
-+++ b/nouveau/nouveau_pushbuf.c
-@@ -78,7 +78,7 @@ nouveau_pushbuf_fini_call(struct nouveau_channel *chan)
- }
- 
- static int
--nouveau_pushbuf_init_call(struct nouveau_channel *chan)
-+nouveau_pushbuf_init_call(struct nouveau_channel *chan, int buf_size)
- {
- 	struct drm_nouveau_gem_pushbuf req;
- 	struct nouveau_channel_priv *nvchan = nouveau_channel(chan);
-@@ -101,7 +101,7 @@ nouveau_pushbuf_init_call(struct nouveau_channel *chan)
- 
- 	for (i = 0; i < CALPB_BUFFERS; i++) {
- 		ret = nouveau_bo_new(dev, flags | NOUVEAU_BO_MAP,
--				     0, CALPB_BUFSZ, &nvpb->buffer[i]);
-+				     0, buf_size, &nvpb->buffer[i]);
- 		if (ret) {
- 			nouveau_pushbuf_fini_call(chan);
- 			return ret;
-@@ -114,13 +114,13 @@ nouveau_pushbuf_init_call(struct nouveau_channel *chan)
- }
- 
- int
--nouveau_pushbuf_init(struct nouveau_channel *chan)
-+nouveau_pushbuf_init(struct nouveau_channel *chan, int buf_size)
- {
- 	struct nouveau_channel_priv *nvchan = nouveau_channel(chan);
- 	struct nouveau_pushbuf_priv *nvpb = &nvchan->pb;
- 	int ret;
- 
--	ret = nouveau_pushbuf_init_call(chan);
-+	ret = nouveau_pushbuf_init_call(chan, buf_size);
- 	if (ret)
- 		return ret;
- 
---
-cgit v0.8.3-6-g21f6
-From 1b9187c43a0c17600611edb9e299141748e87974 Mon Sep 17 00:00:00 2001
-From: Francisco Jerez <currojerez at riseup.net>
-Date: Tue, 28 Sep 2010 20:47:11 +0000
-Subject: nouveau: Define buffer object usage flags.
-
-Signed-off-by: Francisco Jerez <currojerez at riseup.net>
-Acked-by: Ben Skeggs <bskeggs at redhat.com>
----
-diff --git a/include/drm/nouveau_drm.h b/include/drm/nouveau_drm.h
-index fe917de..f115eab 100644
---- a/include/drm/nouveau_drm.h
-+++ b/include/drm/nouveau_drm.h
-@@ -80,6 +80,7 @@ struct drm_nouveau_gpuobj_free {
- #define NOUVEAU_GETPARAM_VM_VRAM_BASE    12
- #define NOUVEAU_GETPARAM_GRAPH_UNITS     13
- #define NOUVEAU_GETPARAM_PTIMER_TIME     14
-+#define NOUVEAU_GETPARAM_HAS_BO_USAGE    15
- struct drm_nouveau_getparam {
- 	uint64_t param;
- 	uint64_t value;
-@@ -95,6 +96,12 @@ struct drm_nouveau_setparam {
- #define NOUVEAU_GEM_DOMAIN_GART      (1 << 2)
- #define NOUVEAU_GEM_DOMAIN_MAPPABLE  (1 << 3)
- 
-+#define NOUVEAU_GEM_TILE_LAYOUT_MASK 0x0000ff00
-+#define NOUVEAU_GEM_TILE_16BPP       0x00000001
-+#define NOUVEAU_GEM_TILE_32BPP       0x00000002
-+#define NOUVEAU_GEM_TILE_ZETA        0x00000004
-+#define NOUVEAU_GEM_TILE_NONCONTIG   0x00000008
-+
- struct drm_nouveau_gem_info {
- 	uint32_t handle;
- 	uint32_t domain;
-diff --git a/nouveau/nouveau_bo.c b/nouveau/nouveau_bo.c
-index 32b23b6..c1432b0 100644
---- a/nouveau/nouveau_bo.c
-+++ b/nouveau/nouveau_bo.c
-@@ -52,7 +52,8 @@ nouveau_bo_info(struct nouveau_bo_priv *nvbo, struct drm_nouveau_gem_info *arg)
- 	nvbo->offset = arg->offset;
- 	nvbo->map_handle = arg->map_handle;
- 	nvbo->base.tile_mode = arg->tile_mode;
--	nvbo->base.tile_flags = arg->tile_flags;
-+	/* XXX - flag inverted for backwards compatibility */
-+	nvbo->base.tile_flags = arg->tile_flags ^ NOUVEAU_GEM_TILE_NONCONTIG;
- 	return 0;
- }
- 
-@@ -140,6 +141,10 @@ nouveau_bo_kalloc(struct nouveau_bo_priv *nvbo, struct nouveau_channel *chan)
- 
- 	info->tile_mode = nvbo->base.tile_mode;
- 	info->tile_flags = nvbo->base.tile_flags;
-+	/* XXX - flag inverted for backwards compatibility */
-+	info->tile_flags ^= NOUVEAU_GEM_TILE_NONCONTIG;
-+	if (!nvdev->has_bo_usage)
-+		info->tile_flags &= NOUVEAU_GEM_TILE_LAYOUT_MASK;
- 
- 	ret = drmCommandWriteRead(nvdev->fd, DRM_NOUVEAU_GEM_NEW,
- 				  &req, sizeof(req));
-diff --git a/nouveau/nouveau_bo.h b/nouveau/nouveau_bo.h
-index 1e77ab0..3a1f2d4 100644
---- a/nouveau/nouveau_bo.h
-+++ b/nouveau/nouveau_bo.h
-@@ -39,6 +39,12 @@
- #define NOUVEAU_BO_IFLUSH (1 << 15)
- #define NOUVEAU_BO_DUMMY  (1 << 31)
- 
-+#define NOUVEAU_BO_TILE_LAYOUT_MASK 0x0000ff00
-+#define NOUVEAU_BO_TILE_16BPP       0x00000001
-+#define NOUVEAU_BO_TILE_32BPP       0x00000002
-+#define NOUVEAU_BO_TILE_ZETA        0x00000004
-+#define NOUVEAU_BO_TILE_SCANOUT     0x00000008
-+
- struct nouveau_bo {
- 	struct nouveau_device *device;
- 	uint32_t handle;
-diff --git a/nouveau/nouveau_device.c b/nouveau/nouveau_device.c
-index 9a091fb..2ffcba6 100644
---- a/nouveau/nouveau_device.c
-+++ b/nouveau/nouveau_device.c
-@@ -95,6 +95,11 @@ nouveau_device_open_existing(struct nouveau_device **dev, int close,
- 	}
- 	nvdev->base.chipset = value;
- 
-+	ret = nouveau_device_get_param(&nvdev->base,
-+				       NOUVEAU_GETPARAM_HAS_BO_USAGE, &value);
-+	if (!ret)
-+		nvdev->has_bo_usage = value;
-+
- 	*dev = &nvdev->base;
- 	return 0;
- }
-diff --git a/nouveau/nouveau_drmif.h b/nouveau/nouveau_drmif.h
-index bc860d2..ec226a2 100644
---- a/nouveau/nouveau_drmif.h
-+++ b/nouveau/nouveau_drmif.h
-@@ -35,6 +35,7 @@ struct nouveau_device_priv {
- 	drm_context_t ctx;
- 	drmLock *lock;
- 	int needs_close;
-+	int has_bo_usage;
- };
- #define nouveau_device(n) ((struct nouveau_device_priv *)(n))
- 
---
-cgit v0.8.3-6-g21f6
-From c5286f4a871e054b63dee8a60a6f06574c4ca1b8 Mon Sep 17 00:00:00 2001
-From: Francisco Jerez <currojerez at riseup.net>
-Date: Thu, 21 Oct 2010 21:02:43 +0000
-Subject: nouveau: Define the HAS_PAGEFLIP getparam.
-
-Signed-off-by: Francisco Jerez <currojerez at riseup.net>
----
-diff --git a/include/drm/nouveau_drm.h b/include/drm/nouveau_drm.h
-index f115eab..b18cad0 100644
---- a/include/drm/nouveau_drm.h
-+++ b/include/drm/nouveau_drm.h
-@@ -81,6 +81,7 @@ struct drm_nouveau_gpuobj_free {
- #define NOUVEAU_GETPARAM_GRAPH_UNITS     13
- #define NOUVEAU_GETPARAM_PTIMER_TIME     14
- #define NOUVEAU_GETPARAM_HAS_BO_USAGE    15
-+#define NOUVEAU_GETPARAM_HAS_PAGEFLIP    16
- struct drm_nouveau_getparam {
- 	uint64_t param;
- 	uint64_t value;
---
-cgit v0.8.3-6-g21f6
-From d0a4f2e292e5b347f7e5ee2cdbe4f077986eb9da Mon Sep 17 00:00:00 2001
-From: Francisco Jerez <currojerez at riseup.net>
-Date: Sun, 31 Oct 2010 00:22:29 +0000
-Subject: nouveau: Avoid unnecessary call to CPU_FINI.
-
-nouveau_bo_unmap called the CPU_FINI IOCTL even if it was a NOSYNC
-mapping. It caused no harmful effects (actually CPU_FINI is a no-op on
-recent enough kernels) besides the precious CPU cycles being wasted.
-
-Signed-off-by: Francisco Jerez <currojerez at riseup.net>
----
-diff --git a/nouveau/nouveau_bo.c b/nouveau/nouveau_bo.c
-index c1432b0..d6bb22d 100644
---- a/nouveau/nouveau_bo.c
-+++ b/nouveau/nouveau_bo.c
-@@ -434,6 +434,8 @@ nouveau_bo_map_range(struct nouveau_bo *bo, uint32_t delta, uint32_t size,
- 					      (flags & NOUVEAU_BO_NOWAIT), 0);
- 			if (ret)
- 				return ret;
-+
-+			nvbo->map_refcnt++;
- 		}
- 
- 		bo->map = (char *)nvbo->map + delta;
-@@ -458,13 +460,14 @@ nouveau_bo_unmap(struct nouveau_bo *bo)
- {
- 	struct nouveau_bo_priv *nvbo = nouveau_bo(bo);
- 
--	if (bo->map && !nvbo->sysmem) {
-+	if (bo->map && !nvbo->sysmem && nvbo->map_refcnt) {
- 		struct nouveau_device_priv *nvdev = nouveau_device(bo->device);
- 		struct drm_nouveau_gem_cpu_fini req;
- 
- 		req.handle = nvbo->handle;
- 		drmCommandWrite(nvdev->fd, DRM_NOUVEAU_GEM_CPU_FINI,
- 				&req, sizeof(req));
-+		nvbo->map_refcnt--;
- 	}
- 
- 	bo->map = NULL;
-diff --git a/nouveau/nouveau_private.h b/nouveau/nouveau_private.h
-index 4c53534..124fe87 100644
---- a/nouveau/nouveau_private.h
-+++ b/nouveau/nouveau_private.h
-@@ -115,6 +115,7 @@ struct nouveau_bo_priv {
- 	uint32_t global_handle;
- 	drm_handle_t handle;
- 	uint64_t map_handle;
-+	int map_refcnt;
- 	void *map;
- 
- 	/* Last known information from kernel on buffer status */
---
-cgit v0.8.3-6-g21f6
-From d17681d538ce86a3f8d6d1c7407df3ceb2bcc499 Mon Sep 17 00:00:00 2001
-From: Francisco Jerez <currojerez at riseup.net>
-Date: Sat, 20 Nov 2010 13:32:45 +0000
-Subject: nouveau: Add implicit pushbuf flush before gpuobj destruction.
-
-It makes sure that GPU object destruction is executed in order with
-respect to the previous FIFO commands.
-
-Signed-off-by: Francisco Jerez <currojerez at riseup.net>
-Acked-by: Ben Skeggs <bskeggs at redhat.com>
----
-diff --git a/nouveau/nouveau_grobj.c b/nouveau/nouveau_grobj.c
-index 2b6e53a..df2ffb9 100644
---- a/nouveau/nouveau_grobj.c
-+++ b/nouveau/nouveau_grobj.c
-@@ -99,6 +99,8 @@ nouveau_grobj_free(struct nouveau_grobj **grobj)
- 	if (nvgrobj->base.grclass) {
- 		struct drm_nouveau_gpuobj_free f;
- 
-+		FIRE_RING(&chan->base);
-+
- 		f.channel = chan->drm.channel;
- 		f.handle  = nvgrobj->base.handle;
- 		drmCommandWrite(nvdev->fd, DRM_NOUVEAU_GPUOBJ_FREE,
-diff --git a/nouveau/nouveau_notifier.c b/nouveau/nouveau_notifier.c
-index f8cfd8b..513fa63 100644
---- a/nouveau/nouveau_notifier.c
-+++ b/nouveau/nouveau_notifier.c
-@@ -80,6 +80,8 @@ nouveau_notifier_free(struct nouveau_notifier **notifier)
- 	nvchan = nouveau_channel(nvnotify->base.channel);
- 	nvdev   = nouveau_device(nvchan->base.device);
- 
-+	FIRE_RING(&nvchan->base);
-+
- 	f.channel = nvchan->drm.channel;
- 	f.handle  = nvnotify->base.handle;
- 	drmCommandWrite(nvdev->fd, DRM_NOUVEAU_GPUOBJ_FREE, &f, sizeof(f));		
---
-cgit v0.8.3-6-g21f6




More information about the arch-commits mailing list