debian/changelog | 17 +++++++++++++++-- debian/control | 2 +- debian/drm-modules-source.dirs | 1 + debian/libdrm2.dirs | 1 - debian/patches/02_link.diff | 39 --------------------------------------- debian/patches/series | 1 - libdrm/Makefile.am | 3 +-- libdrm/intel/Makefile.am | 1 + libdrm/intel/intel_bufmgr.c | 10 ++++++++++ libdrm/intel/intel_bufmgr.h | 2 ++ libdrm/intel/intel_bufmgr_fake.c | 20 ++++++++++++-------- libdrm/intel/intel_bufmgr_gem.c | 23 +++++++++++++++++++++++ libdrm/intel/intel_bufmgr_priv.h | 9 +++++++++ 13 files changed, 75 insertions(+), 54 deletions(-)
New commits: commit dc7981759a1669a08c5227fd4c840d132b32e33c Author: Chris Lamb <[EMAIL PROTECTED]> Date: Wed Oct 15 01:21:21 2008 +0100 Releasing drm-snapshot 2.3.1+git+20081015+458e2d5-1 Many thanks to Julien Cristau for advice and patience. Signed-off-by: Chris Lamb <[EMAIL PROTECTED]> diff --git a/debian/changelog b/debian/changelog index e521f2c..0024445 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -drm-snapshot (2.3.1+git+20081015+458e2d5-1) UNRELEASED; urgency=low +drm-snapshot (2.3.1+git+20081015+458e2d5-1) experimental; urgency=low [ Julien Cristau ] * Fixup the merge of upstream git on the debian branch. @@ -26,7 +26,7 @@ drm-snapshot (2.3.1+git+20081015+458e2d5-1) UNRELEASED; urgency=low * Create /usr/share/modass/packages in drm-modules-source.dirs instead of libdrm2.dirs. - -- Chris Lamb <[EMAIL PROTECTED]> Wed, 15 Oct 2008 01:04:32 +0100 + -- Chris Lamb <[EMAIL PROTECTED]> Wed, 15 Oct 2008 01:20:26 +0100 drm-snapshot (2.3.1+git+20081012+f5327ac-1) experimental; urgency=low commit f52d12947db3999b103275fefdd75e4823df325c Author: Chris Lamb <[EMAIL PROTECTED]> Date: Wed Oct 15 01:16:44 2008 +0100 Create /usr/share/modass/packages in drm-modules-source.dirs instead of libdrm2.dirs. Signed-off-by: Chris Lamb <[EMAIL PROTECTED]> diff --git a/debian/changelog b/debian/changelog index 46e9ba5..e521f2c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -23,6 +23,8 @@ drm-snapshot (2.3.1+git+20081015+458e2d5-1) UNRELEASED; urgency=low - c6109df... libdrm: don't depend or link to libdrm_intel * Bump debhelper dependency in drm-modules-source binary package to match source package. + * Create /usr/share/modass/packages in drm-modules-source.dirs instead of + libdrm2.dirs. -- Chris Lamb <[EMAIL PROTECTED]> Wed, 15 Oct 2008 01:04:32 +0100 diff --git a/debian/drm-modules-source.dirs b/debian/drm-modules-source.dirs index b601f22..a7360b8 100644 --- a/debian/drm-modules-source.dirs +++ b/debian/drm-modules-source.dirs @@ -1 +1,2 @@ usr/src +usr/share/modass/packages diff --git a/debian/libdrm2.dirs b/debian/libdrm2.dirs index 551faf3..6845771 100644 --- a/debian/libdrm2.dirs +++ b/debian/libdrm2.dirs @@ -1,2 +1 @@ usr/lib -usr/share/modass/packages commit cef6275af90e80cacb25da96dedfb2a40251f095 Author: Chris Lamb <[EMAIL PROTECTED]> Date: Wed Oct 15 01:10:46 2008 +0100 Bump debhelper dependency in drm-modules-source binary package to match source package. Signed-off-by: Chris Lamb <[EMAIL PROTECTED]> diff --git a/debian/changelog b/debian/changelog index 7e76630..46e9ba5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -21,6 +21,8 @@ drm-snapshot (2.3.1+git+20081015+458e2d5-1) UNRELEASED; urgency=low - d9c2f65... link libdrm_intel properly - 3e03d78... intel: Avoid pthread mutex recursion in bufmgr_fake. - c6109df... libdrm: don't depend or link to libdrm_intel + * Bump debhelper dependency in drm-modules-source binary package to match + source package. -- Chris Lamb <[EMAIL PROTECTED]> Wed, 15 Oct 2008 01:04:32 +0100 diff --git a/debian/control b/debian/control index e55c09b..65f7696 100644 --- a/debian/control +++ b/debian/control @@ -91,7 +91,7 @@ Description: Userspace interface to intel-specific kernel DRM services -- debugg Package: drm-modules-source Architecture: all -Depends: debhelper (>= 5), quilt, make, git-core, module-assistant, ${misc:Depends} +Depends: debhelper (>= 7), quilt, make, git-core, module-assistant, ${misc:Depends} Suggests: kernel-package, linux-headers | linux-source Description: Source for the drm kernel modules This package provides the source code for the DRM kernel modules. The DRM commit 2a6dd5daa082d2335286404559fd848852bbcf0d Author: Chris Lamb <[EMAIL PROTECTED]> Date: Wed Oct 15 01:05:26 2008 +0100 New upstream snapshot. Signed-off-by: Chris Lamb <[EMAIL PROTECTED]> diff --git a/debian/changelog b/debian/changelog index 569191d..7e76630 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,6 @@ -drm-snapshot (2.3.1+git+20081012+f5327ac-2) UNRELEASED; urgency=low +drm-snapshot (2.3.1+git+20081015+458e2d5-1) UNRELEASED; urgency=low + [ Julien Cristau ] * Fixup the merge of upstream git on the debian branch. * Add a new package for the intel-specific bits (libdrm-intel1). * Build-depend on pkg-config and libpthread-stubs0-dev (closes: #502078). @@ -13,7 +14,15 @@ drm-snapshot (2.3.1+git+20081012+f5327ac-2) UNRELEASED; urgency=low * Put /usr/share/modass/packages/drm-modules-source in the modules package, not libdrm2. - -- Julien Cristau <[EMAIL PROTECTED]> Mon, 13 Oct 2008 23:51:24 +0200 + [ Chris Lamb ] + * New upstream snapshot (for d9c2f65 linking patch): + - 458e2d5... intel: Fix compile warning. + - 9933838... intel: Add interface for getting tiling mode of a bo. + - d9c2f65... link libdrm_intel properly + - 3e03d78... intel: Avoid pthread mutex recursion in bufmgr_fake. + - c6109df... libdrm: don't depend or link to libdrm_intel + + -- Chris Lamb <[EMAIL PROTECTED]> Wed, 15 Oct 2008 01:04:32 +0100 drm-snapshot (2.3.1+git+20081012+f5327ac-1) experimental; urgency=low commit f725efb214c921741cc1b94feaeb6e73abe30816 Author: Chris Lamb <[EMAIL PROTECTED]> Date: Wed Oct 15 00:39:59 2008 +0100 Drop 02_link.diff now that it is merged upstream (d9c2f65dd..) Signed-off-by: Chris Lamb <[EMAIL PROTECTED]> diff --git a/debian/patches/02_link.diff b/debian/patches/02_link.diff deleted file mode 100644 index 7f8a34a..0000000 --- a/debian/patches/02_link.diff +++ /dev/null @@ -1,39 +0,0 @@ -From: Julien Cristau <[EMAIL PROTECTED]> -Subject: Fix libdrm vs libdrm_intel link - -libdrm_intel needs to be linked against libdrm, not the other way around. -libdrm_intel is also the only user of the pthread stubs. - -Index: drm-snapshot/libdrm/Makefile.am -=================================================================== ---- drm-snapshot.orig/libdrm/Makefile.am -+++ drm-snapshot/libdrm/Makefile.am -@@ -18,7 +18,7 @@ - # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - --SUBDIRS = intel -+SUBDIRS = . intel - - libdrm_la_LTLIBRARIES = libdrm.la - libdrm_ladir = $(libdir) -@@ -27,7 +27,6 @@ - AM_CFLAGS = -I$(top_srcdir)/shared-core - libdrm_la_SOURCES = xf86drm.c xf86drmHash.c xf86drmRandom.c xf86drmSL.c \ - libdrm_lists.h --libdrm_la_LIBADD = intel/libdrm_intel.la @PTHREADSTUBS_LIBS@ - - libdrmincludedir = ${includedir} - libdrminclude_HEADERS = xf86drm.h -Index: drm-snapshot/libdrm/intel/Makefile.am -=================================================================== ---- drm-snapshot.orig/libdrm/intel/Makefile.am -+++ drm-snapshot/libdrm/intel/Makefile.am -@@ -32,6 +32,7 @@ - libdrm_intel_la_LTLIBRARIES = libdrm_intel.la - libdrm_intel_ladir = $(libdir) - libdrm_intel_la_LDFLAGS = -version-number 1:0:0 -no-undefined -+libdrm_intel_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ - - libdrm_intel_la_SOURCES = \ - intel_bufmgr.c \ diff --git a/debian/patches/series b/debian/patches/series index d46ec9d..8ca2297 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,2 +1 @@ 01_default_perms.diff -02_link.diff commit 458e2d5bc5f949d00cfcc9a3f9ce89f0c9f5628c Author: Eric Anholt <[EMAIL PROTECTED]> Date: Tue Oct 14 13:33:38 2008 -0700 intel: Fix compile warning. diff --git a/libdrm/intel/intel_bufmgr_fake.c b/libdrm/intel/intel_bufmgr_fake.c index cfe9a73..8e476c4 100644 --- a/libdrm/intel/intel_bufmgr_fake.c +++ b/libdrm/intel/intel_bufmgr_fake.c @@ -732,7 +732,6 @@ static void dri_fake_bo_wait_rendering(dri_bo *bo) { dri_bufmgr_fake *bufmgr_fake = (dri_bufmgr_fake *)bo->bufmgr; - dri_bo_fake *bo_fake = (dri_bo_fake *)bo; pthread_mutex_lock(&bufmgr_fake->lock); dri_fake_bo_wait_rendering_locked(bo); commit 993383873c215ab11975d98b93f131a4e3ea7ce6 Author: Eric Anholt <[EMAIL PROTECTED]> Date: Tue Oct 14 13:18:11 2008 -0700 intel: Add interface for getting tiling mode of a bo. diff --git a/libdrm/intel/intel_bufmgr.c b/libdrm/intel/intel_bufmgr.c index fc7284b..92b6046 100644 --- a/libdrm/intel/intel_bufmgr.c +++ b/libdrm/intel/intel_bufmgr.c @@ -192,3 +192,13 @@ int dri_bo_set_tiling(dri_bo *bo, uint32_t *tiling_mode) *tiling_mode = I915_TILING_NONE; return 0; } + +int dri_bo_get_tiling(dri_bo *bo, uint32_t *tiling_mode, uint32_t *swizzle_mode) +{ + if (bo->bufmgr->bo_get_tiling) + return bo->bufmgr->bo_get_tiling(bo, tiling_mode, swizzle_mode); + + *tiling_mode = I915_TILING_NONE; + *swizzle_mode = I915_BIT_6_SWIZZLE_NONE; + return 0; +} diff --git a/libdrm/intel/intel_bufmgr.h b/libdrm/intel/intel_bufmgr.h index c44d596..0c7b0e4 100644 --- a/libdrm/intel/intel_bufmgr.h +++ b/libdrm/intel/intel_bufmgr.h @@ -87,6 +87,8 @@ int dri_bo_emit_reloc(dri_bo *reloc_buf, int dri_bo_pin(dri_bo *buf, uint32_t alignment); int dri_bo_unpin(dri_bo *buf); int dri_bo_set_tiling(dri_bo *buf, uint32_t *tiling_mode); +int dri_bo_get_tiling(dri_bo *buf, uint32_t *tiling_mode, + uint32_t *swizzle_mode); int dri_bo_flink(dri_bo *buf, uint32_t *name); /* intel_bufmgr_gem.c */ diff --git a/libdrm/intel/intel_bufmgr_gem.c b/libdrm/intel/intel_bufmgr_gem.c index 9bd4441..33853c4 100644 --- a/libdrm/intel/intel_bufmgr_gem.c +++ b/libdrm/intel/intel_bufmgr_gem.c @@ -873,6 +873,28 @@ dri_gem_bo_set_tiling(dri_bo *bo, uint32_t *tiling_mode) } static int +dri_gem_bo_get_tiling(dri_bo *bo, uint32_t *tiling_mode, uint32_t *swizzle_mode) +{ + dri_bufmgr_gem *bufmgr_gem = (dri_bufmgr_gem *)bo->bufmgr; + dri_bo_gem *bo_gem = (dri_bo_gem *)bo; + struct drm_i915_gem_get_tiling get_tiling; + int ret; + + get_tiling.handle = bo_gem->gem_handle; + + ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_GET_TILING, &get_tiling); + if (ret != 0) { + *tiling_mode = I915_TILING_NONE; + *swizzle_mode = I915_BIT_6_SWIZZLE_NONE; + return -errno; + } + + *tiling_mode = get_tiling.tiling_mode; + *swizzle_mode = get_tiling.swizzle_mode; + return 0; +} + +static int dri_gem_bo_flink(dri_bo *bo, uint32_t *name) { dri_bufmgr_gem *bufmgr_gem = (dri_bufmgr_gem *)bo->bufmgr; @@ -959,6 +981,7 @@ intel_bufmgr_gem_init(int fd, int batch_size) bufmgr_gem->bufmgr.bo_emit_reloc = dri_gem_bo_emit_reloc; bufmgr_gem->bufmgr.bo_pin = dri_gem_bo_pin; bufmgr_gem->bufmgr.bo_unpin = dri_gem_bo_unpin; + bufmgr_gem->bufmgr.bo_get_tiling = dri_gem_bo_get_tiling; bufmgr_gem->bufmgr.bo_set_tiling = dri_gem_bo_set_tiling; bufmgr_gem->bufmgr.bo_flink = dri_gem_bo_flink; bufmgr_gem->bufmgr.bo_exec = dri_gem_bo_exec; diff --git a/libdrm/intel/intel_bufmgr_priv.h b/libdrm/intel/intel_bufmgr_priv.h index 7f39bfc..cbf3b31 100644 --- a/libdrm/intel/intel_bufmgr_priv.h +++ b/libdrm/intel/intel_bufmgr_priv.h @@ -150,6 +150,15 @@ struct _dri_bufmgr { */ int (*bo_set_tiling) (dri_bo *bo, uint32_t *tiling_mode); /** + * Get the current tiling (and resulting swizzling) mode for the bo. + * + * \param buf Buffer to get tiling mode for + * \param tiling_mode returned tiling mode + * \param swizzle_mode returned swizzling mode + */ + int (*bo_get_tiling) (dri_bo *bo, uint32_t *tiling_mode, + uint32_t *swizzle_mode); + /** * Create a visible name for a buffer which can be used by other apps * * \param buf Buffer to create a name for commit d9c2f65dd8e50736a33e97a55c257ef6843e1ce7 Author: Julien Cristau <[EMAIL PROTECTED]> Date: Tue Oct 14 01:25:57 2008 +0200 link libdrm_intel properly libdrm_intel needs symbols from libdrm, so link against it. diff --git a/libdrm/Makefile.am b/libdrm/Makefile.am index dbe58fb..63f6e64 100644 --- a/libdrm/Makefile.am +++ b/libdrm/Makefile.am @@ -18,7 +18,7 @@ # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -SUBDIRS = intel +SUBDIRS = . intel libdrm_la_LTLIBRARIES = libdrm.la libdrm_ladir = $(libdir) @@ -27,7 +27,6 @@ libdrm_la_LDFLAGS = -version-number 2:3:0 -no-undefined AM_CFLAGS = -I$(top_srcdir)/shared-core libdrm_la_SOURCES = xf86drm.c xf86drmHash.c xf86drmRandom.c xf86drmSL.c \ libdrm_lists.h -libdrm_la_LIBADD = @PTHREADSTUBS_LIBS@ libdrmincludedir = ${includedir} libdrminclude_HEADERS = xf86drm.h diff --git a/libdrm/intel/Makefile.am b/libdrm/intel/Makefile.am index 92388c2..5e3dee0 100644 --- a/libdrm/intel/Makefile.am +++ b/libdrm/intel/Makefile.am @@ -32,6 +32,7 @@ AM_CFLAGS = \ libdrm_intel_la_LTLIBRARIES = libdrm_intel.la libdrm_intel_ladir = $(libdir) libdrm_intel_la_LDFLAGS = -version-number 1:0:0 -no-undefined +libdrm_intel_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ libdrm_intel_la_SOURCES = \ intel_bufmgr.c \ commit 3e03d781f7c41a88d5d5f895be9c443bf3592ef0 Author: Eric Anholt <[EMAIL PROTECTED]> Date: Mon Oct 13 13:41:10 2008 -0700 intel: Avoid pthread mutex recursion in bufmgr_fake. Bug #18035. Fixes deadlock in glean texCube testcase. diff --git a/libdrm/intel/intel_bufmgr_fake.c b/libdrm/intel/intel_bufmgr_fake.c index 1be4698..cfe9a73 100644 --- a/libdrm/intel/intel_bufmgr_fake.c +++ b/libdrm/intel/intel_bufmgr_fake.c @@ -717,20 +717,25 @@ dri_bufmgr_fake_wait_idle(dri_bufmgr_fake *bufmgr_fake) * the necessary flushing. */ static void -dri_fake_bo_wait_rendering(dri_bo *bo) +dri_fake_bo_wait_rendering_locked(dri_bo *bo) { dri_bufmgr_fake *bufmgr_fake = (dri_bufmgr_fake *)bo->bufmgr; dri_bo_fake *bo_fake = (dri_bo_fake *)bo; - pthread_mutex_lock(&bufmgr_fake->lock); - - if (bo_fake->block == NULL || !bo_fake->block->fenced) { - pthread_mutex_unlock(&bufmgr_fake->lock); + if (bo_fake->block == NULL || !bo_fake->block->fenced) return; - } _fence_wait_internal(bufmgr_fake, bo_fake->block->fence); +} + +static void +dri_fake_bo_wait_rendering(dri_bo *bo) +{ + dri_bufmgr_fake *bufmgr_fake = (dri_bufmgr_fake *)bo->bufmgr; + dri_bo_fake *bo_fake = (dri_bo_fake *)bo; + pthread_mutex_lock(&bufmgr_fake->lock); + dri_fake_bo_wait_rendering_locked(bo); pthread_mutex_unlock(&bufmgr_fake->lock); } @@ -972,7 +977,7 @@ dri_fake_bo_map_locked(dri_bo *bo, int write_enable) if (!(bo_fake->flags & BM_NO_FENCE_SUBDATA) && bo_fake->block->fenced) { - dri_fake_bo_wait_rendering(bo); + dri_fake_bo_wait_rendering_locked(bo); } bo->virtual = bo_fake->block->virtual; @@ -987,7 +992,7 @@ dri_fake_bo_map_locked(dri_bo *bo, int write_enable) if ((bo_fake->card_dirty == 1) && bo_fake->block) { if (bo_fake->block->fenced) - dri_fake_bo_wait_rendering(bo); + dri_fake_bo_wait_rendering_locked(bo); memcpy(bo_fake->backing_store, bo_fake->block->virtual, bo_fake->block->bo->size); bo_fake->card_dirty = 0; commit c6109df93bc062d3ec2ff2808babe826532d11b3 Author: Dave Airlie <[EMAIL PROTECTED]> Date: Mon Oct 13 07:16:33 2008 +1000 libdrm: don't depend or link to libdrm_intel diff --git a/libdrm/Makefile.am b/libdrm/Makefile.am index 543b278..dbe58fb 100644 --- a/libdrm/Makefile.am +++ b/libdrm/Makefile.am @@ -27,7 +27,7 @@ libdrm_la_LDFLAGS = -version-number 2:3:0 -no-undefined AM_CFLAGS = -I$(top_srcdir)/shared-core libdrm_la_SOURCES = xf86drm.c xf86drmHash.c xf86drmRandom.c xf86drmSL.c \ libdrm_lists.h -libdrm_la_LIBADD = intel/libdrm_intel.la @PTHREADSTUBS_LIBS@ +libdrm_la_LIBADD = @PTHREADSTUBS_LIBS@ libdrmincludedir = ${includedir} libdrminclude_HEADERS = xf86drm.h -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]