libdrm: Changes to 'ubuntu'
.gitignore | 1
ChangeLog | 262 +++++++++++++++++++
configure.ac | 2
debian/changelog | 49 +++
debian/control | 38 ++
debian/libdrm-dev.install | 11
debian/libdrm-intel1.symbols | 1
debian/libdrm-nouveau1.symbols | 26 -
debian/libdrm-radeon1.install | 2
debian/libdrm-radeon1.symbols | 16 +
debian/rules | 13
debian/xsfbs/xsfbs.mk | 4
debian/xsfbs/xsfbs.sh | 229 -----------------
libdrm/intel/Makefile.am | 2
libdrm/intel/intel_bufmgr.c | 7
libdrm/intel/intel_bufmgr.h | 1
libdrm/intel/intel_bufmgr_gem.c | 120 +++------
libdrm/intel/intel_bufmgr_priv.h | 8
libdrm/intel/intel_chipset.h | 10
libdrm/nouveau/Makefile.am | 3
libdrm/nouveau/nouveau_bo.c | 405 +++---------------------------
libdrm/nouveau/nouveau_bo.h | 8
libdrm/nouveau/nouveau_channel.c | 66 ----
libdrm/nouveau/nouveau_class.h | 505 +++++++++++++++++++++++++++++++++-----
libdrm/nouveau/nouveau_device.c | 10
libdrm/nouveau/nouveau_dma.c | 217 ----------------
libdrm/nouveau/nouveau_dma.h | 154 -----------
libdrm/nouveau/nouveau_drmif.h | 2
libdrm/nouveau/nouveau_fence.c | 243 ------------------
libdrm/nouveau/nouveau_notifier.c | 4
libdrm/nouveau/nouveau_private.h | 92 ------
libdrm/nouveau/nouveau_pushbuf.c | 209 ++++++++++-----
libdrm/radeon/radeon_bo.h | 28 ++
libdrm/radeon/radeon_bo_gem.c | 81 +++++-
libdrm/radeon/radeon_cs.h | 9
libdrm/radeon/radeon_cs_gem.c | 24 -
libdrm/radeon/radeon_cs_space.c | 2
libdrm/radeon/radeon_track.c | 1
libdrm/xf86drmMode.c | 3
shared-core/drm.h | 1
shared-core/nouveau_drm.h | 124 +--------
shared-core/radeon_drm.h | 57 +++-
42 files changed, 1289 insertions(+), 1761 deletions(-)
New commits:
commit 767dfb494eb1bf560d07b9a07fc4a098d13910ff
Author: Timo Aaltonen <tjaalton@cc.hut.fi>
Date: Thu Oct 8 16:35:30 2009 +0300
More imported changes.
diff --git a/debian/changelog b/debian/changelog
index 0621293..d3561b6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -6,6 +6,34 @@ libdrm (2.4.14-1) unstable; urgency=low
-- Julien Cristau <jcristau@debian.org> Thu, 24 Sep 2009 21:53:09 +0200
+libdrm (2.4.13-1ubuntu1) karmic; urgency=low
+
+ * Merge with Debian. (LP: #420803)
+ + Included fixes:
+ - radeon: fix GTT writing space check
+ (LP: #411115)
+ + Remaining Ubuntu changes:
+ - control:
+ + libdrm-intel1 Replaces libdrm2 (<= 2.4.1-0ubuntu5)
+ + libdrm-dev depends on newer linux-libc-dev on !lpia
+ + libdrm-dev depends on libdrm-{radeon1,nouveau1}
+ + add libdrm-{radeon1,nouveau1}{,-dbg} source packages
+ - rules:
+ + Add libdrm-nouveau1 and libdrm-nouveau1-dbg package
+ + Enable radeon and nouveau experimental apis
+ - copyright:
+ + Update to include new files from add_libdrm-nouveau.patch
+ - libdrm-dev.install: Also install r300_reg.h, via_3d_reg.h,
+ xgi_drm.h, the nouveau headers, and other headers not provided by
+ the kernel.
+ - libdrm-{radeon1,nouveau1}.{install,symbols}: Add nouveau and
+ radeon
+ * control:
+ + Increase linux-libc-dev version dependency to 2.6.30-2.4 for !lpia
+ + Drop Replaces on linux-libc-dev
+
+ -- Bryce Harrington <bryce@ubuntu.com> Tue, 08 Sep 2009 15:18:34 -0700
+
libdrm (2.4.13-1) unstable; urgency=low
[ Christopher James Halse Rogers ]
diff --git a/debian/libdrm-dev.install b/debian/libdrm-dev.install
index 49b0732..6cd8ddd 100644
--- a/debian/libdrm-dev.install
+++ b/debian/libdrm-dev.install
@@ -1,13 +1,4 @@
-usr/include/nouveau/*
-usr/include/drm/mach64_drm.h
-usr/include/drm/nouveau_drm.h
-usr/include/drm/nouveau_drmif.h
-usr/include/drm/r300_reg.h
-usr/include/drm/via_3d_reg.h
-usr/include/drm/xgi_drm.h
-usr/include/intel_bufmgr.h
-usr/include/xf86drm.h
-usr/include/xf86drmMode.h
+usr/include/*
usr/lib/lib*.a
usr/lib/lib*.so
usr/lib/pkgconfig/*
commit cee87ebd54e2e59d38f760f6aaaf04e498f45337
Author: Timo Aaltonen <tjaalton@cc.hut.fi>
Date: Thu Oct 8 16:03:15 2009 +0300
Import changes from the non-vcs fork.
diff --git a/debian/control b/debian/control
index afd891f..2ef6fff 100644
--- a/debian/control
+++ b/debian/control
@@ -15,8 +15,9 @@ Architecture: any
Depends: libdrm2 (= ${binary:Version}),
libdrm-intel1 (= ${binary:Version}) [amd64 i386 kfreebsd-amd64 kfreebsd-i386],
libdrm-nouveau1 (= ${binary:Version}),
- linux-libc-dev (>= 2.6.28-5.15) [amd64 armel i386], linux-libc-dev (>= 2.6.28-2.4) [lpia]
-Replaces: linux-libc-dev (<= 2.6.28-3.4)
+ libdrm-radeon1 (= ${binary:Version}),
+ linux-libc-dev (>= 2.6.30-2.4) [amd64 armel i386],
+ linux-libc-dev (>= 2.6.28-2.4) [lpia]
Description: Userspace interface to kernel DRM services -- development files
This library implements the userspace interface to the kernel DRM
services. DRM stands for "Direct Rendering Manager", which is the
@@ -99,3 +100,34 @@ Description: Userspace interface to nouveau-specific kernel DRM services -- debu
Linux to provide hardware-accelerated OpenGL drivers.
.
This package provides the debugging symbols for the libdrm-nouveau1 package.
+
+Package: libdrm-radeon1
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Userspace interface to radeon-specific kernel rendering services -- runtime
+ This library implements the userspace interface to the radeon-specific kernel
+ DRM services. DRM stands for "Direct Rendering Manager", which is the
+ kernelspace portion of the "Direct Rendering Infrastructure" (DRI). The DRI is
+ currently used on Linux to provide hardware-accelerated OpenGL drivers.
+ .
+ This package is built from a snapshot of DRM development code, to provide the
+ features necessary for testing new X.org drivers. Do NOT expect this package
+ to be stable!
+
+Package: libdrm-radeon1-dbg
+Section: debug
+Priority: extra
+Architecture: any
+Depends: libdrm-radeon1 (= ${binary:Version}), ${misc:Depends}
+Description: Userspace interface to radeon-specific kernel rendering -- debugging symbols
+ This library implements the userspace interface to the kernel DRM services.
+ DRM stands for "Direct Rendering Manager", which is the kernelspace portion
+ of the "Direct Rendering Infrastructure" (DRI). The DRI is currently used on
+ Linux to provide hardware-accelerated OpenGL drivers.
+ .
+ This package is built from a snapshot of DRM development code, to provide the
+ features necessary for testing new X.org drivers. Do NOT expect this package
+ to be stable!
+ .
+ This package provides the debugging symbols for the libdrm-radeon1 package.
+
diff --git a/debian/libdrm-nouveau1.symbols b/debian/libdrm-nouveau1.symbols
index 2a8af0a..8b73e1d 100644
--- a/debian/libdrm-nouveau1.symbols
+++ b/debian/libdrm-nouveau1.symbols
@@ -1,8 +1,8 @@
libdrm_nouveau.so.1 libdrm-nouveau1 #MINVER#
- dma@Base 2.4.4
+#MISSING: 2.4.12+git20090729.5a73f066# dma@Base 2.4.4
nouveau_bo_busy@Base 2.4.4
nouveau_bo_emit_buffer@Base 2.4.4
- nouveau_bo_fake@Base 2.4.4
+#MISSING: 2.4.12+git20090729.5a73f066# nouveau_bo_fake@Base 2.4.4
nouveau_bo_handle_get@Base 2.4.4
nouveau_bo_handle_ref@Base 2.4.4
nouveau_bo_init@Base 2.4.4
@@ -14,11 +14,11 @@ libdrm_nouveau.so.1 libdrm-nouveau1 #MINVER#
nouveau_bo_pin@Base 2.4.4
nouveau_bo_ref@Base 2.4.4
nouveau_bo_takedown@Base 2.4.4
- nouveau_bo_tile@Base 2.4.4
+#MISSING: 2.4.12+git20090729.5a73f066# nouveau_bo_tile@Base 2.4.4
nouveau_bo_unmap@Base 2.4.4
nouveau_bo_unpin@Base 2.4.4
nouveau_bo_user@Base 2.4.4
- nouveau_bo_validate_nomm@Base 2.4.4
+#MISSING: 2.4.12+git20090729.5a73f066# nouveau_bo_validate_nomm@Base 2.4.4
nouveau_bo_wrap@Base 2.4.11-1ubuntu1~
nouveau_channel_alloc@Base 2.4.4
nouveau_channel_free@Base 2.4.4
@@ -27,15 +27,15 @@ libdrm_nouveau.so.1 libdrm-nouveau1 #MINVER#
nouveau_device_open@Base 2.4.4
nouveau_device_open_existing@Base 2.4.4
nouveau_device_set_param@Base 2.4.4
- nouveau_dma_channel_init@Base 2.4.4
- nouveau_dma_kickoff@Base 2.4.4
- nouveau_dma_wait@Base 2.4.4
- nouveau_fence_emit@Base 2.4.4
- nouveau_fence_flush@Base 2.4.4
- nouveau_fence_new@Base 2.4.4
- nouveau_fence_ref@Base 2.4.4
- nouveau_fence_signal_cb@Base 2.4.4
- nouveau_fence_wait@Base 2.4.4
+#MISSING: 2.4.12+git20090729.5a73f066# nouveau_dma_channel_init@Base 2.4.4
+#MISSING: 2.4.12+git20090729.5a73f066# nouveau_dma_kickoff@Base 2.4.4
+#MISSING: 2.4.12+git20090729.5a73f066# nouveau_dma_wait@Base 2.4.4
+#MISSING: 2.4.12+git20090729.5a73f066# nouveau_fence_emit@Base 2.4.4
+#MISSING: 2.4.12+git20090729.5a73f066# nouveau_fence_flush@Base 2.4.4
+#MISSING: 2.4.12+git20090729.5a73f066# nouveau_fence_new@Base 2.4.4
+#MISSING: 2.4.12+git20090729.5a73f066# nouveau_fence_ref@Base 2.4.4
+#MISSING: 2.4.12+git20090729.5a73f066# nouveau_fence_signal_cb@Base 2.4.4
+#MISSING: 2.4.12+git20090729.5a73f066# nouveau_fence_wait@Base 2.4.4
nouveau_grobj_alloc@Base 2.4.4
nouveau_grobj_autobind@Base 2.4.4
nouveau_grobj_free@Base 2.4.4
diff --git a/debian/libdrm-radeon1.install b/debian/libdrm-radeon1.install
new file mode 100644
index 0000000..08c0f7e
--- /dev/null
+++ b/debian/libdrm-radeon1.install
@@ -0,0 +1,2 @@
+usr/lib/libdrm_radeon.so.*
+
diff --git a/debian/libdrm-radeon1.symbols b/debian/libdrm-radeon1.symbols
new file mode 100644
index 0000000..503ecb9
--- /dev/null
+++ b/debian/libdrm-radeon1.symbols
@@ -0,0 +1,16 @@
+libdrm_radeon.so.1 libdrm-radeon1 #MINVER#
+ radeon_bo_manager_gem_ctor@Base 2.4.12
+ radeon_bo_manager_gem_dtor@Base 2.4.12
+ radeon_cs_manager_gem_ctor@Base 2.4.12
+ radeon_cs_manager_gem_dtor@Base 2.4.12
+ radeon_cs_space_add_persistent_bo@Base 2.4.12
+ radeon_cs_space_check@Base 2.4.12
+ radeon_cs_space_check_with_bo@Base 2.4.12
+ radeon_cs_space_reset_bos@Base 2.4.12
+ radeon_gem_get_kernel_name@Base 2.4.12
+ radeon_gem_name_bo@Base 2.4.12
+ radeon_gem_set_domain@Base 2.4.12
+ radeon_track_add_event@Base 2.4.12
+ radeon_tracker_add_track@Base 2.4.12
+ radeon_tracker_print@Base 2.4.12
+ radeon_tracker_remove_track@Base 2.4.12
diff --git a/debian/rules b/debian/rules
index 3f23530..641d473 100755
--- a/debian/rules
+++ b/debian/rules
@@ -52,6 +52,7 @@ obj-$(DEB_BUILD_GNU_TYPE)/config.status: configure
--infodir=\$${prefix}/share/info \
--enable-static=yes $(confflags) \
--enable-nouveau-experimental-api=yes \
+ --enable-radeon-experimental-api=yes \
CFLAGS="$(CFLAGS)"
build: build-stamp
@@ -107,12 +108,14 @@ binary-arch: build install
dh_strip -plibdrm2 --dbg-package=libdrm2-dbg
dh_strip -plibdrm-intel1 --dbg-package=libdrm-intel1-dbg
dh_strip -plibdrm-nouveau1 --dbg-package=libdrm-nouveau1-dbg
+ dh_strip -plibdrm-radeon1 --dbg-package=libdrm-radeon1-dbg
dh_strip
dh_compress
dh_fixperms
dh_makeshlibs -plibdrm2 -V'libdrm2 (>= 2.4.3)' -- -c4
dh_makeshlibs -plibdrm-intel1 -V'libdrm-intel1 (>= 2.4.13)' -- -c4
- dh_makeshlibs -plibdrm-nouveau1 -V'libdrm-nouveau1 (>= 2.4.5)' -- -c4
+ dh_makeshlibs -plibdrm-nouveau1 -V'libdrm-nouveau1 (>= 2.4.13)' -- -c4
+ dh_makeshlibs -plibdrm-radeon1 -V'libdrm-radeon1 (>= 2.4.13)' -- -c4
dh_installdeb
dh_shlibdeps
dh_gencontrol
commit 268376961bf59079077c80cefe1c1cf3728b1800
Author: Julien Cristau <jcristau@debian.org>
Date: Thu Sep 24 21:53:25 2009 +0200
Prepare changelog for upload
diff --git a/debian/changelog b/debian/changelog
index 6c06509..6073662 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,10 +1,10 @@
-libdrm (2.4.14-1) UNRELEASED; urgency=low
+libdrm (2.4.14-1) unstable; urgency=low
* Parse space-separated DEB_BUILD_OPTIONS, and handle parallel=N.
* New upstream release.
* Bump Standards-Version to 3.8.3.
- -- Julien Cristau <jcristau@debian.org> Sat, 05 Sep 2009 14:14:29 +0200
+ -- Julien Cristau <jcristau@debian.org> Thu, 24 Sep 2009 21:53:09 +0200
libdrm (2.4.13-1) unstable; urgency=low
commit d3f408c2ef67cd532b9790f0e1adb1b5f06ae1e6
Author: Julien Cristau <jcristau@debian.org>
Date: Thu Sep 24 21:52:12 2009 +0200
Bump Standards-Version to 3.8.3.
diff --git a/debian/changelog b/debian/changelog
index a394c8b..6c06509 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,7 @@ libdrm (2.4.14-1) UNRELEASED; urgency=low
* Parse space-separated DEB_BUILD_OPTIONS, and handle parallel=N.
* New upstream release.
+ * Bump Standards-Version to 3.8.3.
-- Julien Cristau <jcristau@debian.org> Sat, 05 Sep 2009 14:14:29 +0200
diff --git a/debian/control b/debian/control
index b128dbc..adb6f36 100644
--- a/debian/control
+++ b/debian/control
@@ -3,7 +3,7 @@ Priority: optional
Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
Uploaders: Julien Cristau <jcristau@debian.org>, David Nusinow <dnusinow@debian.org>, Brice Goglin <bgoglin@debian.org>
Build-Depends: debhelper (>= 5.0.0), libx11-dev, dpkg-dev (>= 1.13.19), quilt (>= 0.40), automake, libtool, pkg-config, libpthread-stubs0-dev
-Standards-Version: 3.8.1
+Standards-Version: 3.8.3
Section: libs
Vcs-Git: git://git.debian.org/git/pkg-xorg/lib/libdrm
Vcs-Browser: http://git.debian.org/?p=pkg-xorg/lib/libdrm.git
commit a474dd48cc59fa71be9859def132e5363297f5e0
Author: Julien Cristau <jcristau@debian.org>
Date: Thu Sep 24 21:03:54 2009 +0200
Bump changelogs
diff --git a/ChangeLog b/ChangeLog
index 9932baa..a8c7b97 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,68 @@
+commit ac71f0849928f4b2fbb69c01304ac6f9df8916a1
+Author: Eric Anholt <eric@anholt.net>
+Date: Mon Sep 21 15:29:58 2009 -0700
+
+ Bump to 2.4.14 for release.
+
+commit 51b89733c53458b6827f0db99eb46a20fa1c7020
+Author: Eric Anholt <eric@anholt.net>
+Date: Sun Sep 6 23:17:14 2009 -0700
+
+ intel: Remove the max_entries stuff that complicated bo reuse.
+
+ I thought I was going to do all sorts of crazy experiments with it. I never
+ did, and it turned out the free-after-a-few-seconds plan is working out fine.
+
+commit 456a358b9ade5c90ff86b2322a79648c69cddcdc
+Author: Eric Anholt <eric@anholt.net>
+Date: Sun Sep 6 23:02:21 2009 -0700
+
+ intel: Remove the old swrast flag for reducing cache flushing.
+
+ It hasn't been doing anything effective since
+ 52e5d24fae4af6f2f4a5304a516c8c5ab347a11b, and we pretty much don't bo_map
+ pinned buffers any more anyway.
+
+commit 0a24654129847cf5cd61b5e8fb54c8f9c7441c55
+Author: Keith Packard <keithp@keithp.com>
+Date: Thu Sep 17 17:28:08 2009 -0700
+
+ drmModeFreeConnector: free encoders and properties
+
+ These were leaking.
+
+ Signed-off-by: Keith Packard <keithp@keithp.com>
+
+commit cdd325b59a17a614b90fc2f8b388175e6d79e3cf
+Author: Dave Airlie <airlied@linux.ie>
+Date: Tue Sep 15 07:29:02 2009 +1000
+
+ radeon: fix 32/64 bit issue with sign extension
+
+ Not sure what intptr_t was up to here.
+
+ Reported and tested by: Kevin DeKorte
+ Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit 67e4172394a88d4922fb8d9c7c3d96ce7e02c5a6
+Author: Zhenyu Wang <zhenyuw@linux.intel.com>
+Date: Mon Sep 7 16:17:04 2009 +0800
+
+ libdrm_intel: include B43 chipset check
+
+ Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
+
+commit 121b9648f846d900e67818869974ee82046e9b25
+Author: Zhenyu Wang <zhenyuw@linux.intel.com>
+Date: Fri Sep 4 09:24:23 2009 +0800
+
+ libdrm_intel: add new pci ids
+
+ New ids for G41, Clarkdale and Arrandale.
+ Make sure we don't need to count fence also on new chips.
+
+ Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
+
commit 73b59c894380995a2889b98e79acadd2da0bb237
Author: Eric Anholt <eric@anholt.net>
Date: Fri Aug 28 15:20:22 2009 -0700
diff --git a/debian/changelog b/debian/changelog
index 42352d6..a394c8b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
-libdrm (2.4.13-2) UNRELEASED; urgency=low
+libdrm (2.4.14-1) UNRELEASED; urgency=low
* Parse space-separated DEB_BUILD_OPTIONS, and handle parallel=N.
+ * New upstream release.
-- Julien Cristau <jcristau@debian.org> Sat, 05 Sep 2009 14:14:29 +0200
commit ac71f0849928f4b2fbb69c01304ac6f9df8916a1
Author: Eric Anholt <eric@anholt.net>
Date: Mon Sep 21 15:29:58 2009 -0700
Bump to 2.4.14 for release.
diff --git a/configure.ac b/configure.ac
index 425417e..d707052 100644
--- a/configure.ac
+++ b/configure.ac
@@ -19,7 +19,7 @@
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
AC_PREREQ(2.60)
-AC_INIT([libdrm], 2.4.13, [dri-devel@lists.sourceforge.net], libdrm)
+AC_INIT([libdrm], 2.4.14, [dri-devel@lists.sourceforge.net], libdrm)
AC_USE_SYSTEM_EXTENSIONS
AC_CONFIG_SRCDIR([Makefile.am])
AM_INIT_AUTOMAKE([dist-bzip2])
commit 51b89733c53458b6827f0db99eb46a20fa1c7020
Author: Eric Anholt <eric@anholt.net>
Date: Sun Sep 6 23:17:14 2009 -0700
intel: Remove the max_entries stuff that complicated bo reuse.
I thought I was going to do all sorts of crazy experiments with it. I never
did, and it turned out the free-after-a-few-seconds plan is working out fine.
diff --git a/libdrm/intel/intel_bufmgr_gem.c b/libdrm/intel/intel_bufmgr_gem.c
index 84836a8..78297e0 100644
--- a/libdrm/intel/intel_bufmgr_gem.c
+++ b/libdrm/intel/intel_bufmgr_gem.c
@@ -69,15 +69,6 @@ typedef struct _drm_intel_bo_gem drm_intel_bo_gem;
struct drm_intel_gem_bo_bucket {
drmMMListHead head;
-
- /**
- * Limit on the number of entries in this bucket.
- *
- * 0 means that this caching at this bucket size is disabled.
- * -1 means that there is no limit to caching at this size.
- */
- int max_entries;
- int num_entries;
unsigned long size;
};
@@ -105,6 +96,7 @@ typedef struct _drm_intel_bufmgr_gem {
uint64_t gtt_size;
int available_fences;
int pci_device;
+ char bo_reuse;
} drm_intel_bufmgr_gem;
struct _drm_intel_bo_gem {
@@ -342,7 +334,7 @@ drm_intel_gem_bo_alloc_internal(drm_intel_bufmgr *bufmgr, const char *name,
/* If we don't have caching at this size, don't actually round the
* allocation up.
*/
- if (bucket == NULL || bucket->max_entries == 0) {
+ if (bucket == NULL) {
bo_size = size;
if (bo_size < page_size)
bo_size = page_size;
@@ -352,7 +344,7 @@ drm_intel_gem_bo_alloc_internal(drm_intel_bufmgr *bufmgr, const char *name,
pthread_mutex_lock(&bufmgr_gem->lock);
/* Get a buffer out of the cache if available */
- if (bucket != NULL && bucket->num_entries > 0) {
+ if (bucket != NULL && !DRMLISTEMPTY(&bucket->head)) {
if (for_render) {
/* Allocate new render-target BOs from the tail (MRU)
* of the list, as it will likely be hot in the GPU cache
@@ -360,7 +352,6 @@ drm_intel_gem_bo_alloc_internal(drm_intel_bufmgr *bufmgr, const char *name,
*/
bo_gem = DRMLISTENTRY(drm_intel_bo_gem, bucket->head.prev, head);
DRMLISTDEL(&bo_gem->head);
- bucket->num_entries--;
alloc_from_cache = 1;
} else {
/* For non-render-target BOs (where we're probably going to map it
@@ -374,7 +365,6 @@ drm_intel_gem_bo_alloc_internal(drm_intel_bufmgr *bufmgr, const char *name,
if (!drm_intel_gem_bo_busy(&bo_gem->bo)) {
alloc_from_cache = 1;
DRMLISTDEL(&bo_gem->head);
- bucket->num_entries--;
}
}
}
@@ -553,7 +543,6 @@ drm_intel_gem_cleanup_bo_cache(drm_intel_bufmgr_gem *bufmgr_gem, time_t time)
break;
DRMLISTDEL(&bo_gem->head);
- bucket->num_entries--;
drm_intel_gem_bo_free(&bo_gem->bo);
}
@@ -587,11 +576,7 @@ drm_intel_gem_bo_unreference_locked(drm_intel_bo *bo)
bucket = drm_intel_gem_bo_bucket_for_size(bufmgr_gem, bo->size);
/* Put the buffer into our internal cache for reuse if we can. */
tiling_mode = I915_TILING_NONE;
- if (bo_gem->reusable &&
- bucket != NULL &&
- (bucket->max_entries == -1 ||
- (bucket->max_entries > 0 &&
- bucket->num_entries < bucket->max_entries)) &&
+ if (bufmgr_gem->bo_reuse && bo_gem->reusable && bucket != NULL &&
drm_intel_gem_bo_set_tiling(bo, &tiling_mode, 0) == 0)
{
struct timespec time;
@@ -606,7 +591,6 @@ drm_intel_gem_bo_unreference_locked(drm_intel_bo *bo)
bo_gem->reloc_count = 0;
DRMLISTADDTAIL(&bo_gem->head, &bucket->head);
- bucket->num_entries++;
drm_intel_gem_cleanup_bo_cache(bufmgr_gem, time.tv_sec);
} else {
@@ -931,7 +915,6 @@ drm_intel_bufmgr_gem_destroy(drm_intel_bufmgr *bufmgr)
while (!DRMLISTEMPTY(&bucket->head)) {
bo_gem = DRMLISTENTRY(drm_intel_bo_gem, bucket->head.next, head);
DRMLISTDEL(&bo_gem->head);
- bucket->num_entries--;
drm_intel_gem_bo_free(&bo_gem->bo);
}
@@ -1225,11 +1208,8 @@ void
drm_intel_bufmgr_gem_enable_reuse(drm_intel_bufmgr *bufmgr)
{
drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *)bufmgr;
- int i;
- for (i = 0; i < DRM_INTEL_GEM_BO_BUCKETS; i++) {
- bufmgr_gem->cache_bucket[i].max_entries = -1;
- }
+ bufmgr_gem->bo_reuse = 1;
}
/**
commit 456a358b9ade5c90ff86b2322a79648c69cddcdc
Author: Eric Anholt <eric@anholt.net>
Date: Sun Sep 6 23:02:21 2009 -0700
intel: Remove the old swrast flag for reducing cache flushing.
It hasn't been doing anything effective since
52e5d24fae4af6f2f4a5304a516c8c5ab347a11b, and we pretty much don't bo_map
pinned buffers any more anyway.
diff --git a/libdrm/intel/intel_bufmgr_gem.c b/libdrm/intel/intel_bufmgr_gem.c
index baa0ee6..84836a8 100644
--- a/libdrm/intel/intel_bufmgr_gem.c
+++ b/libdrm/intel/intel_bufmgr_gem.c
@@ -127,13 +127,6 @@ struct _drm_intel_bo_gem {
int validate_index;
/**
- * Boolean whether we've started swrast
- * Set when the buffer has been mapped
- * Cleared when the buffer is unmapped
- */
- int swrast;
-
- /**
* Current tiling mode
*/
uint32_t tiling_mode;
@@ -663,30 +656,26 @@ drm_intel_gem_bo_map(drm_intel_bo *bo, int write_enable)
return ret;
}
bo_gem->mem_virtual = (void *)(uintptr_t)mmap_arg.addr_ptr;
- bo_gem->swrast = 0;
}
DBG("bo_map: %d (%s) -> %p\n", bo_gem->gem_handle, bo_gem->name,
bo_gem->mem_virtual);
bo->virtual = bo_gem->mem_virtual;
- if (bo_gem->global_name != 0 || !bo_gem->swrast) {
- set_domain.handle = bo_gem->gem_handle;
- set_domain.read_domains = I915_GEM_DOMAIN_CPU;
- if (write_enable)
- set_domain.write_domain = I915_GEM_DOMAIN_CPU;
- else
- set_domain.write_domain = 0;
- do {
- ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_SET_DOMAIN,
- &set_domain);
- } while (ret == -1 && errno == EINTR);
- if (ret != 0) {
- fprintf (stderr, "%s:%d: Error setting swrast %d: %s\n",
- __FILE__, __LINE__, bo_gem->gem_handle, strerror (errno));
- pthread_mutex_unlock(&bufmgr_gem->lock);
- return ret;
- }
- bo_gem->swrast = 1;
+ set_domain.handle = bo_gem->gem_handle;
+ set_domain.read_domains = I915_GEM_DOMAIN_CPU;
+ if (write_enable)
+ set_domain.write_domain = I915_GEM_DOMAIN_CPU;
+ else
+ set_domain.write_domain = 0;
+ do {
+ ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_SET_DOMAIN,
+ &set_domain);
+ } while (ret == -1 && errno == EINTR);
+ if (ret != 0) {
+ fprintf (stderr, "%s:%d: Error setting to CPU domain %d: %s\n",
+ __FILE__, __LINE__, bo_gem->gem_handle, strerror (errno));
+ pthread_mutex_unlock(&bufmgr_gem->lock);
+ return ret;
}
pthread_mutex_unlock(&bufmgr_gem->lock);
@@ -797,14 +786,16 @@ drm_intel_gem_bo_unmap(drm_intel_bo *bo)
assert(bo_gem->mem_virtual != NULL);
pthread_mutex_lock(&bufmgr_gem->lock);
- if (bo_gem->swrast) {
- sw_finish.handle = bo_gem->gem_handle;
- do {
- ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_SW_FINISH,
- &sw_finish);
- } while (ret == -1 && errno == EINTR);
- bo_gem->swrast = 0;
- }
+
+ /* Cause a flush to happen if the buffer's pinned for scanout, so the
+ * results show up in a timely manner.
+ */
+ sw_finish.handle = bo_gem->gem_handle;
+ do {
+ ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_SW_FINISH,
+ &sw_finish);
+ } while (ret == -1 && errno == EINTR);
+
bo->virtual = NULL;
pthread_mutex_unlock(&bufmgr_gem->lock);
return 0;
@@ -1100,9 +1091,6 @@ drm_intel_gem_bo_exec(drm_intel_bo *bo, int used,
drm_intel_bo *bo = bufmgr_gem->exec_bos[i];
drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *)bo;
- /* Need to call swrast on next bo_map */
- bo_gem->swrast = 0;
-
/* Disconnect the buffer from the validate list */
bo_gem->validate_index = -1;
drm_intel_gem_bo_unreference_locked(bo);
commit 0a24654129847cf5cd61b5e8fb54c8f9c7441c55
Author: Keith Packard <keithp@keithp.com>
Date: Thu Sep 17 17:28:08 2009 -0700
drmModeFreeConnector: free encoders and properties
These were leaking.
Signed-off-by: Keith Packard <keithp@keithp.com>
diff --git a/libdrm/xf86drmMode.c b/libdrm/xf86drmMode.c
index ea11207..88b4fe3 100644
--- a/libdrm/xf86drmMode.c
+++ b/libdrm/xf86drmMode.c
@@ -116,6 +116,9 @@ void drmModeFreeConnector(drmModeConnectorPtr ptr)
if (!ptr)
return;
+ drmFree(ptr->encoders);
+ drmFree(ptr->prop_values);
+ drmFree(ptr->props);
drmFree(ptr->modes);
drmFree(ptr);
commit cdd325b59a17a614b90fc2f8b388175e6d79e3cf
Author: Dave Airlie <airlied@linux.ie>
Date: Tue Sep 15 07:29:02 2009 +1000
radeon: fix 32/64 bit issue with sign extension
Not sure what intptr_t was up to here.
Reported and tested by: Kevin DeKorte
Signed-off-by: Dave Airlie <airlied@redhat.com>
diff --git a/libdrm/radeon/radeon_cs_gem.c b/libdrm/radeon/radeon_cs_gem.c
index a0db53b..e42ec48 100644
--- a/libdrm/radeon/radeon_cs_gem.c
+++ b/libdrm/radeon/radeon_cs_gem.c
@@ -100,10 +100,10 @@ static struct radeon_cs *cs_gem_create(struct radeon_cs_manager *csm,
}
csg->chunks[0].chunk_id = RADEON_CHUNK_ID_IB;
csg->chunks[0].length_dw = 0;
- csg->chunks[0].chunk_data = (uint64_t)(intptr_t)csg->base.packets;
+ csg->chunks[0].chunk_data = (uint64_t)(uintptr_t)csg->base.packets;
csg->chunks[1].chunk_id = RADEON_CHUNK_ID_RELOCS;
csg->chunks[1].length_dw = 0;
- csg->chunks[1].chunk_data = (uint64_t)(intptr_t)csg->relocs;
+ csg->chunks[1].chunk_data = (uint64_t)(uintptr_t)csg->relocs;
return (struct radeon_cs*)csg;
}
@@ -184,7 +184,7 @@ static int cs_gem_write_reloc(struct radeon_cs *cs,
}
cs->relocs = csg->relocs = tmp;
csg->nrelocs += 1;
- csg->chunks[1].chunk_data = (uint64_t)(intptr_t)csg->relocs;
+ csg->chunks[1].chunk_data = (uint64_t)(uintptr_t)csg->relocs;
}
csg->relocs_bo[csg->base.crelocs] = bo;
idx = (csg->base.crelocs++) * RELOC_SIZE;
@@ -269,11 +269,11 @@ static int cs_gem_emit(struct radeon_cs *cs)
csg->chunks[0].length_dw = cs->cdw;
- chunk_array[0] = (uint64_t)(intptr_t)&csg->chunks[0];
- chunk_array[1] = (uint64_t)(intptr_t)&csg->chunks[1];
+ chunk_array[0] = (uint64_t)(uintptr_t)&csg->chunks[0];
+ chunk_array[1] = (uint64_t)(uintptr_t)&csg->chunks[1];
csg->cs.num_chunks = 2;
- csg->cs.chunks = (uint64_t)(intptr_t)chunk_array;
+ csg->cs.chunks = (uint64_t)(uintptr_t)chunk_array;
r = drmCommandWriteRead(cs->csm->fd, DRM_RADEON_CS,
&csg->cs, sizeof(struct drm_radeon_cs));
commit 67e4172394a88d4922fb8d9c7c3d96ce7e02c5a6
Author: Zhenyu Wang <zhenyuw@linux.intel.com>
Date: Mon Sep 7 16:17:04 2009 +0800
libdrm_intel: include B43 chipset check
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
diff --git a/libdrm/intel/intel_chipset.h b/libdrm/intel/intel_chipset.h
index 26bc585..688476a 100644
--- a/libdrm/intel/intel_chipset.h
+++ b/libdrm/intel/intel_chipset.h
@@ -50,6 +50,7 @@
(dev)->pci_device == 0x2E12 || \
(dev)->pci_device == 0x2E22 || \
(dev)->pci_device == 0x2E32 || \
+ (dev)->pci_device == 0x2E42 || \
(dev)->pci_device == 0x0042 || \
(dev)->pci_device == 0x0046)
@@ -59,7 +60,9 @@
#define IS_G4X(dev) ((dev)->pci_device == 0x2E02 || \
(dev)->pci_device == 0x2E12 || \
- (dev)->pci_device == 0x2E22)
+ (dev)->pci_device == 0x2E22 || \
+ (dev)->pci_device == 0x2E32 || \
+ (dev)->pci_device == 0x2E42)
#define IS_G33(dev) ((dev)->pci_device == 0x29C2 || \
(dev)->pci_device == 0x29B2 || \
commit 7f0e2de49e0a4006f5c28e6dac2e161f7a96b50c
Author: Julien Cristau <jcristau@debian.org>
Date: Sat Sep 5 14:14:51 2009 +0200
Parse space-separated DEB_BUILD_OPTIONS, and handle parallel=N.
diff --git a/debian/changelog b/debian/changelog
index 34bb470..42352d6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+libdrm (2.4.13-2) UNRELEASED; urgency=low
+
+ * Parse space-separated DEB_BUILD_OPTIONS, and handle parallel=N.
+
+ -- Julien Cristau <jcristau@debian.org> Sat, 05 Sep 2009 14:14:29 +0200
+
libdrm (2.4.13-1) unstable; urgency=low
[ Christopher James Halse Rogers ]
diff --git a/debian/rules b/debian/rules
index 284509d..c6252d6 100755
--- a/debian/rules
+++ b/debian/rules
@@ -30,11 +30,15 @@ endif
CFLAGS = -Wall -g
-ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS)))
CFLAGS += -O0
else
CFLAGS += -O2
endif
+ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+ NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+ MAKEFLAGS += -j$(NUMJOBS)
+endif
configure: $(STAMP_DIR)/patch
dh_testdir
commit a209119784450b02794fe94545875f071777c4c0
Author: Julien Cristau <jcristau@debian.org>
Date: Sat Sep 5 12:57:20 2009 +0200
Prepare changelog for upload
diff --git a/debian/changelog b/debian/changelog
index c809e49..34bb470 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-libdrm (2.4.13-1) UNRELEASED; urgency=low
+libdrm (2.4.13-1) unstable; urgency=low
[ Christopher James Halse Rogers ]
* debian/control:
@@ -9,7 +9,7 @@ libdrm (2.4.13-1) UNRELEASED; urgency=low
* New upstream release.
* Update libdrm-intel1.symbols.
- -- Christopher James Halse Rogers <raof@ubuntu.com> Wed, 11 Feb 2009 18:12:41 +1100
+ -- Julien Cristau <jcristau@debian.org> Sat, 05 Sep 2009 13:15:36 +0200
libdrm (2.4.12-1) unstable; urgency=low
commit c5927ee69fb74eb278f161de2b334fb1f9862f24
Author: Julien Cristau <jcristau@debian.org>
Date: Sat Sep 5 12:54:35 2009 +0200
Update changelogs and symbols file for new release
diff --git a/ChangeLog b/ChangeLog
index 4ef5518..9932baa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,200 @@
+commit 73b59c894380995a2889b98e79acadd2da0bb237
+Author: Eric Anholt <eric@anholt.net>
+Date: Fri Aug 28 15:20:22 2009 -0700
+
+ Bump to version 2.4.13 for release.
+
+commit 8214a65ad1f4ccd4966e0def0d43f0c4289e4bc6
+Author: Eric Anholt <eric@anholt.net>
+Date: Thu Aug 27 18:32:07 2009 -0700
+
+ Add drm_intel_bo_busy to query whether mapping a BO would block.
+
+commit 19d6fadfa29993b261ebac2869b2289f6d3091c3
+Author: Michel Dänzer <daenzer@vmware.com>
+Date: Fri Aug 28 11:42:07 2009 +0200
+
+ Revert "libdrm_radeon: Always wait for BO idle in bo_map."
+
+ This reverts commit 0a732983f059c353b267b6bf877e1f0eea4e033f.
+
+ Paul Nieminen and Dave Airlie pointed out on IRC that this shouldn't be
+ necessary. I was seeing visual corruption in X before I made this change, but
+ I can't reproduce that anymore so it was probably an unrelated issue.
+
+commit 0a732983f059c353b267b6bf877e1f0eea4e033f
+Author: Michel Dänzer <daenzer@vmware.com>
+Date: Thu Aug 27 08:36:58 2009 +0200
+
+ libdrm_radeon: Always wait for BO idle in bo_map.
+
+ This allows users to eliminate explicit bo_wait calls before bo_map calls.
+
+commit ce6c68dc8a893ed8673f49d381a8500c2ee3c29f
+Author: Jakob Bornecrantz <jakob@vmware.com>
+Date: Fri Aug 21 14:06:51 2009 +0200
+
+ Kill last remnant of replacefb ioctl
+
+ Kenrels doesn't expose this ioctl
+
+commit 02a4d22e95de863fe3e01a9f5658ef81417c28cd
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Mon Aug 24 18:15:03 2009 -0400
+
+ radeon: pull in z pipe changes from kernel
+
+commit caad8d85559709301c00760b9e8707d57f8c6c67
+Author: Pauli Nieminen <suokkos@gmail.com>
+Date: Sat Aug 22 13:16:18 2009 +1000
+
+ radeon: add support for busy/domain check interface.
+
+ airlied: modified the interface to drop busy return value, just return
+ it normally, also fixed int->uint32_t for domain
+
+ Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
+
+commit cbb3ae3dab9dc82d95524726135b8d6ef86bcf27
+Author: Ben Skeggs <bskeggs@redhat.com>
+Date: Wed Aug 19 15:55:05 2009 +1000
+
+ nouveau: fix a thinko in copyless pushbuf ioctl
+
+ No idea why G80 doesn't hit this, but, this fixes at least one NV40 card.
+
+commit 8c43b79b21929e9e54e13e892f7787e222e73f39
+Author: Pauli Nieminen <suokkos@gmail.com>
+Date: Tue Aug 18 18:51:38 2009 +0300
+
+ libdrm_radeon: Optimize copy of table to cs buffer with specialized call.
+
+ Using this call in OUT_BATCH_TABLE reduces radeonEmitState cpu usage from
+ 9% to 5% and emit_vpu goes from 7% to 1.5%. I did use calgrind to profile
+ gears for cpu hotspots with r500 card.
+
+ Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
+
+commit a474fd978c0dedbed21b5dff24126acb1c7effef
+Author: Pauli Nieminen <suokkos@gmail.com>
+Date: Tue Aug 18 18:51:37 2009 +0300
+
+ libdrm_radeon: Fix loops so that compiler can optimize them.
+
+ GCC did war about optimization not possible because possible forever loop.
+
+ Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
+
+commit 64cef1e46554fbf82388acfcfc8051ce956a3dc2
+Author: Pauli Nieminen <suokkos@gmail.com>
+Date: Fri Aug 7 20:03:26 2009 +0300
+
+ libdrm/radeon: Update head of linked list not to point freed memory.
+
+ Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
+
+commit 28f4bfa04b8ad4dfcc55027f4b2385f4dd6c23c5
+Author: Ben Skeggs <bskeggs@redhat.com>
+Date: Wed Aug 12 14:21:00 2009 +1000
+
+ nouveau: support for copy-less pushbuf ioctl
+
+commit 250ab3a38eb6ef18d747717cabd0195ad04a82e0
+Author: Ben Skeggs <bskeggs@redhat.com>
+Date: Tue Aug 18 14:25:50 2009 +1000
+
+ nouveau: for the moment, assert if we exceed some reloc limits
+
+ Nasty, but nicer than silently not writing into the pushbuf
+
+commit 1978f6d8d1215a9501882eb074901bcd0dfc0775
+Author: Dave Airlie <airlied@redhat.com>
+Date: Mon Aug 17 21:21:02 2009 +1000
+
+ radeon: fix bo wait at map time.
+
+commit f7996165fffe0a835752e8b9bb6b4d81bba5c91d
+Author: Christoph Brill <egore911@egore911.de>
+Date: Sun Aug 16 08:26:25 2009 +0200
+
+ Filter radeon pkgconfig file as do intel and nouveau
+
+commit 1d465178fbab77a9c0e830ea8c47bf61735def71
+Author: Dave Airlie <airlied@redhat.com>
+Date: Sat Aug 15 21:32:35 2009 +1000
+
+ radeon: fix GTT writing space check
+
+ Noticed by vehemens on irc.
+
+ Signed-off-by: Dave Airlie <airlied@redhat.com>
Reply to: