[arch-commits] Commit in libdrm/trunk (PKGBUILD nouveau_fix.patch nouveau_fix2.patch)
Date: Sunday, March 14, 2010 @ 05:32:01 Author: andyrtr Revision: 72332 upgpkg: libdrm 2.4.19-1 new version 2.4.19 Modified: libdrm/trunk/PKGBUILD Deleted: libdrm/trunk/nouveau_fix.patch libdrm/trunk/nouveau_fix2.patch + PKGBUILD | 15 nouveau_fix.patch | 21 nouveau_fix2.patch | 1258 --- 3 files changed, 4 insertions(+), 1290 deletions(-) Modified: PKGBUILD === --- PKGBUILD2010-03-14 09:12:16 UTC (rev 72331) +++ PKGBUILD2010-03-14 09:32:01 UTC (rev 72332) @@ -2,8 +2,8 @@ # Maintainer: Jan de Groot pkgname=libdrm -pkgver=2.4.18 -pkgrel=3 +pkgver=2.4.19 +pkgrel=1 pkgdesc="Userspace interface to kernel DRM services" arch=(i686 x86_64) license=('custom') @@ -12,21 +12,14 @@ url="http://dri.freedesktop.org/"; source=(http://dri.freedesktop.org/${pkgname}/${pkgname}-${pkgver}.tar.bz2 no-pthread-stubs.patch - nouveau_fix.patch - nouveau_fix2.patch COPYING) -md5sums=('d2b5fbfd37742af7d2169f7d26ce3007' +md5sums=('c2699b5d8ebc9e47fb56da15f460107f' '9b5ec3bbebe86921e2057694c42f65b8' - '298588fad4d1d6f4f746a0fabb91f09d' - '8199a3e929dab7e4fa87dccec7bf1e54' 'ba65e71c481b94ef0fb6c23c7f21ffa1') - + build() { cd "${srcdir}/${pkgname}-${pkgver}" patch -Np1 -i "${srcdir}/no-pthread-stubs.patch" || return 1 - # revert incompatible late nouveau commits that would requiere a new ddx driver shot based on a not yet released kernel :S - patch -Rp1 -i "${srcdir}/nouveau_fix.patch" || return 1 - patch -Rp1 -i "${srcdir}/nouveau_fix2.patch" || return 1 libtoolize --force || return 1 aclocal || return 1 autoconf || return 1 Deleted: nouveau_fix.patch === --- nouveau_fix.patch 2010-03-14 09:12:16 UTC (rev 72331) +++ nouveau_fix.patch 2010-03-14 09:32:01 UTC (rev 72332) @@ -1,21 +0,0 @@ -From 88e8a8bbaf026aa10225880001ab7ca1c392168a Mon Sep 17 00:00:00 2001 -From: Ben Skeggs -Date: Tue, 16 Feb 2010 05:42:00 + -Subject: nouveau: bump MAX_PUSH to 512 - -diff --git a/include/drm/nouveau_drm.h b/include/drm/nouveau_drm.h -index af13e46..a6a9f4a 100644 a/include/drm/nouveau_drm.h -+++ b/include/drm/nouveau_drm.h -@@ -140,7 +140,7 @@ struct drm_nouveau_gem_pushbuf_reloc { - uint32_t tor; - }; - --#define NOUVEAU_GEM_MAX_PUSH 64 -+#define NOUVEAU_GEM_MAX_PUSH 512 - struct drm_nouveau_gem_pushbuf_push { - uint32_t bo_index; - uint32_t pad; --- -cgit v0.8.3-6-g21f6 Deleted: nouveau_fix2.patch === --- nouveau_fix2.patch 2010-03-14 09:12:16 UTC (rev 72331) +++ nouveau_fix2.patch 2010-03-14 09:32:01 UTC (rev 72332) @@ -1,1258 +0,0 @@ -From b496c63143e9a4ca02011582329bce2df99d9b7c Mon Sep 17 00:00:00 2001 -From: Luca Barbieri -Date: Fri, 29 Jan 2010 08:53:24 + -Subject: nouveau: interface changes for 0.0.16 DRM - -This commit encompasses the changes necessary to run on top of the 0.0.16 -nouveau interface, additional APIs to support the new features of the -interface, as well as code from Luca Barbieri to improve the pushbuf -interface, which just happens to break nouveau's libdrm ABI so was delayed -until now. - -API changes as a result of 0.0.16 DRM interface: - -1. No more bo_pin()/bo_unpin(), these were only there for UMS and we no - longer support it. - -2. Any random nouveau_bo can be submitted to the GPU as a push buffer. - -3. Relocations can be applied on any nouveau_bo - -This patch changes the pushbuffer ABI to: - -1. No longer use/expose nouveau_pushbuffer. Everything is directly - in nouveau_channel. This saves the extra "pushbuf" pointer dereference. - -2. Use cur/end pointers instead of tracking the remaining size. - Pushing data now only needs to alter cur and not both cur and remaining. - -The goal is to make the *_RING macros faster and make the interface simpler -and cleaner in the process. - -The *_RING APIs are unchanged, but those are inlined and the ABI is changed. - -Also, anything accessing pushbuf->remaining instead of using AVAIL_RING -will need to be fixed. -diff --git a/include/drm/nouveau_drm.h b/include/drm/nouveau_drm.h -index f745948..af13e46 100644 a/include/drm/nouveau_drm.h -+++ b/include/drm/nouveau_drm.h -@@ -25,13 +25,14 @@ - #ifndef __NOUVEAU_DRM_H__ - #define __NOUVEAU_DRM_H__ - --#define NOUVEAU_DRM_HEADER_PATCHLEVEL 15 -+#define NOUVEAU_DRM_HEADER_PATCHLEVEL 16 - - struct drm_nouveau_channel_alloc { - uint32_t fb_ctxdma_handle; - uint32_t tt_ctxdma_handle; - - int channel; -+ uint32_t pushbuf_domains; - - /* Notifier memory */ - uint32_t notifier_handle; -@@ -109,68 +110,58 @@ struct drm_nouveau_gem_new { - uint32_t align; - }; - -+#define NOUVEAU_GEM_MAX_BUFFERS 1024 -+
[arch-commits] Commit in libdrm/trunk (PKGBUILD nouveau_fix.patch nouveau_fix2.patch)
Date: Friday, February 19, 2010 @ 04:04:16 Author: andyrtr Revision: 69230 upgpkg: libdrm 2.4.18-2 revert breaking nouveau changes Added: libdrm/trunk/nouveau_fix.patch libdrm/trunk/nouveau_fix2.patch Modified: libdrm/trunk/PKGBUILD + PKGBUILD |9 nouveau_fix.patch | 21 nouveau_fix2.patch | 1258 +++ 3 files changed, 1287 insertions(+), 1 deletion(-) Modified: PKGBUILD === --- PKGBUILD2010-02-19 08:44:27 UTC (rev 69229) +++ PKGBUILD2010-02-19 09:04:16 UTC (rev 69230) @@ -3,7 +3,7 @@ pkgname=libdrm pkgver=2.4.18 -pkgrel=1 +pkgrel=2 pkgdesc="Userspace interface to kernel DRM services" arch=(i686 x86_64) license=('custom') @@ -12,14 +12,21 @@ url="http://dri.freedesktop.org/"; source=(http://dri.freedesktop.org/${pkgname}/${pkgname}-${pkgver}.tar.bz2 no-pthread-stubs.patch + nouveau_fix.patch + nouveau_fix2.patch COPYING) md5sums=('d2b5fbfd37742af7d2169f7d26ce3007' '9b5ec3bbebe86921e2057694c42f65b8' + '298588fad4d1d6f4f746a0fabb91f09d' + '8199a3e929dab7e4fa87dccec7bf1e54' 'ba65e71c481b94ef0fb6c23c7f21ffa1') build() { cd "${srcdir}/${pkgname}-${pkgver}" patch -Np1 -i "${srcdir}/no-pthread-stubs.patch" || return 1 + # revert incompatible late nouveau commits that would requiere a new ddx driver shot based on a not yet released kernel :S + patch -Rp1 -i "${srcdir}/nouveau_fix.patch" || return 1 + patch -Rp1 -i "${srcdir}/nouveau_fix2.patch" || return 1 libtoolize --force || return 1 aclocal || return 1 autoconf || return 1 Added: nouveau_fix.patch === --- nouveau_fix.patch (rev 0) +++ nouveau_fix.patch 2010-02-19 09:04:16 UTC (rev 69230) @@ -0,0 +1,21 @@ +From 88e8a8bbaf026aa10225880001ab7ca1c392168a Mon Sep 17 00:00:00 2001 +From: Ben Skeggs +Date: Tue, 16 Feb 2010 05:42:00 + +Subject: nouveau: bump MAX_PUSH to 512 + +--- +diff --git a/include/drm/nouveau_drm.h b/include/drm/nouveau_drm.h +index af13e46..a6a9f4a 100644 +--- a/include/drm/nouveau_drm.h b/include/drm/nouveau_drm.h +@@ -140,7 +140,7 @@ struct drm_nouveau_gem_pushbuf_reloc { + uint32_t tor; + }; + +-#define NOUVEAU_GEM_MAX_PUSH 64 ++#define NOUVEAU_GEM_MAX_PUSH 512 + struct drm_nouveau_gem_pushbuf_push { + uint32_t bo_index; + uint32_t pad; +-- +cgit v0.8.3-6-g21f6 Added: nouveau_fix2.patch === --- nouveau_fix2.patch (rev 0) +++ nouveau_fix2.patch 2010-02-19 09:04:16 UTC (rev 69230) @@ -0,0 +1,1258 @@ +From b496c63143e9a4ca02011582329bce2df99d9b7c Mon Sep 17 00:00:00 2001 +From: Luca Barbieri +Date: Fri, 29 Jan 2010 08:53:24 + +Subject: nouveau: interface changes for 0.0.16 DRM + +This commit encompasses the changes necessary to run on top of the 0.0.16 +nouveau interface, additional APIs to support the new features of the +interface, as well as code from Luca Barbieri to improve the pushbuf +interface, which just happens to break nouveau's libdrm ABI so was delayed +until now. + +API changes as a result of 0.0.16 DRM interface: + +1. No more bo_pin()/bo_unpin(), these were only there for UMS and we no + longer support it. + +2. Any random nouveau_bo can be submitted to the GPU as a push buffer. + +3. Relocations can be applied on any nouveau_bo + +This patch changes the pushbuffer ABI to: + +1. No longer use/expose nouveau_pushbuffer. Everything is directly + in nouveau_channel. This saves the extra "pushbuf" pointer dereference. + +2. Use cur/end pointers instead of tracking the remaining size. + Pushing data now only needs to alter cur and not both cur and remaining. + +The goal is to make the *_RING macros faster and make the interface simpler +and cleaner in the process. + +The *_RING APIs are unchanged, but those are inlined and the ABI is changed. + +Also, anything accessing pushbuf->remaining instead of using AVAIL_RING +will need to be fixed. +--- +diff --git a/include/drm/nouveau_drm.h b/include/drm/nouveau_drm.h +index f745948..af13e46 100644 +--- a/include/drm/nouveau_drm.h b/include/drm/nouveau_drm.h +@@ -25,13 +25,14 @@ + #ifndef __NOUVEAU_DRM_H__ + #define __NOUVEAU_DRM_H__ + +-#define NOUVEAU_DRM_HEADER_PATCHLEVEL 15 ++#define NOUVEAU_DRM_HEADER_PATCHLEVEL 16 + + struct drm_nouveau_channel_alloc { + uint32_t fb_ctxdma_handle; + uint32_t tt_ctxdma_handle; + + int channel; ++ uint32_t pushbuf_domains; + + /* Notifier memory */ + uint32_t notifier_handle; +@@ -109,68 +110,58 @@ struct drm_nouveau_gem_new { + uint32_t align; + }; + ++#define NOUVEAU_GEM_MAX_BUFFERS 1024 ++struct drm_nouveau_gem_pushbuf_bo_presumed { ++ uint32_t valid; ++ uint32_t domai