.gitignore | 1 Makefile.am | 4 - configure.ac | 22 +++++++- intel/intel_chipset.h | 8 ++- man/Makefile.am | 37 ++++++++------ nouveau/libdrm_nouveau.pc.in | 2 radeon/r600_pci_ids.h | 14 +++++ radeon/radeon_surface.c | 112 ++++++++++++++++++++++++++++++++++--------- 8 files changed, 156 insertions(+), 44 deletions(-)
New commits: commit 183b5f20b59c83f57967b41d1e3a90c073e8df76 Author: Maarten Lankhorst <maarten.lankho...@canonical.com> Date: Tue Feb 5 14:08:41 2013 +0100 configure.ac: bump version to 2.4.42 for release Signed-off-by: Maarten Lankhorst <maarten.lankho...@canonical.com> diff --git a/configure.ac b/configure.ac index 9ee7940..e2e3466 100644 --- a/configure.ac +++ b/configure.ac @@ -20,7 +20,7 @@ AC_PREREQ([2.63]) AC_INIT([libdrm], - [2.4.41], + [2.4.42], [https://bugs.freedesktop.org/enter_bug.cgi?product=DRI], [libdrm]) commit f9a9311c5e96606de9726ae4021209897b9bb2d7 Author: Maarten Lankhorst <maarten.lankho...@canonical.com> Date: Tue Feb 5 14:12:06 2013 +0100 libdrm: remove DISTCHECK_CONFIGURE_FLAGS I'm fairly sure the extra flags it specifies no longer exist, so there is no point in keeping it. It only adds a warning when running make distcheck. Signed-off-by: Maarten Lankhorst <maarten.lankho...@canonical.com> diff --git a/Makefile.am b/Makefile.am index 8ecd9d9..94572d0 100644 --- a/Makefile.am +++ b/Makefile.am @@ -20,8 +20,6 @@ ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} -DISTCHECK_CONFIGURE_FLAGS = --enable-nouveau-experimental-api --enable-radeon-experimental-api - pkgconfigdir = @pkgconfigdir@ pkgconfig_DATA = libdrm.pc commit 353f073bc134a94d13fe82e4f3d983efe3cf70ad Author: Alex Deucher <alexander.deuc...@amd.com> Date: Thu Jan 24 17:53:37 2013 -0500 radeon: add OLAND pci ids Signed-off-by: Alex Deucher <alexander.deuc...@amd.com> diff --git a/radeon/r600_pci_ids.h b/radeon/r600_pci_ids.h index 3b67cbe..ccc3ea5 100644 --- a/radeon/r600_pci_ids.h +++ b/radeon/r600_pci_ids.h @@ -361,3 +361,17 @@ CHIPSET(0x6839, VERDE_6839, VERDE) CHIPSET(0x683B, VERDE_683B, VERDE) CHIPSET(0x683D, VERDE_683D, VERDE) CHIPSET(0x683F, VERDE_683F, VERDE) + +CHIPSET(0x6600, OLAND_6600, OLAND) +CHIPSET(0x6601, OLAND_6601, OLAND) +CHIPSET(0x6602, OLAND_6602, OLAND) +CHIPSET(0x6603, OLAND_6603, OLAND) +CHIPSET(0x6606, OLAND_6606, OLAND) +CHIPSET(0x6607, OLAND_6607, OLAND) +CHIPSET(0x6610, OLAND_6610, OLAND) +CHIPSET(0x6611, OLAND_6611, OLAND) +CHIPSET(0x6613, OLAND_6613, OLAND) +CHIPSET(0x6620, OLAND_6620, OLAND) +CHIPSET(0x6621, OLAND_6621, OLAND) +CHIPSET(0x6623, OLAND_6623, OLAND) +CHIPSET(0x6631, OLAND_6631, OLAND) commit 76ae1f4837ceb2c15ccf847e4abe2b5c4f66df85 Author: Alex Deucher <alexander.deuc...@amd.com> Date: Thu Jan 24 17:37:10 2013 -0500 radeon: add OLAND family Signed-off-by: Alex Deucher <alexander.deuc...@amd.com> diff --git a/radeon/radeon_surface.c b/radeon/radeon_surface.c index 8e93873..d52f457 100644 --- a/radeon/radeon_surface.c +++ b/radeon/radeon_surface.c @@ -72,6 +72,7 @@ enum radeon_family { CHIP_TAHITI, CHIP_PITCAIRN, CHIP_VERDE, + CHIP_OLAND, CHIP_LAST, }; commit ef866c7293e699b119ae61738e221857a36a5362 Author: Jesse Barnes <jbar...@virtuousgeek.org> Date: Sat Feb 2 11:10:24 2013 +0100 intel: add more VLV PCI IDs diff --git a/intel/intel_chipset.h b/intel/intel_chipset.h index a2eb894..ebec2f8 100644 --- a/intel/intel_chipset.h +++ b/intel/intel_chipset.h @@ -84,6 +84,9 @@ #define PCI_CHIP_HASWELL_CRW_S_GT2_PLUS 0x0D3A #define PCI_CHIP_VALLEYVIEW_PO 0x0f30 /* power on board */ +#define PCI_CHIP_VALLEYVIEW_1 0x0f31 +#define PCI_CHIP_VALLEYVIEW_2 0x0f32 +#define PCI_CHIP_VALLEYVIEW_3 0x0f33 #define IS_830(dev) (dev == 0x3577) #define IS_845(dev) (dev == 0x2562) @@ -124,7 +127,10 @@ #define IS_I965GM(dev) (dev == 0x2A02) -#define IS_VALLEYVIEW(dev) (dev == 0xf30) +#define IS_VALLEYVIEW(dev) (((dev) == PCI_CHIP_VALLEYVIEW_PO) || \ + ((dev) == PCI_CHIP_VALLEYVIEW_1) || \ + ((dev) == PCI_CHIP_VALLEYVIEW_2) || \ + ((dev) == PCI_CHIP_VALLEYVIEW_3)) #define IS_GEN4(dev) (dev == 0x2972 || \ dev == 0x2982 || \ commit 9dc0072e8d5a47fb0b2ada50fb897cb2c740bb40 Author: Thierry Reding <thierry.red...@avionic-design.de> Date: Fri Jan 18 13:22:01 2013 +0100 man: Fix typo and use $() for make expressions Due to the typo, none of the .xml files would end up in the release tarball and cause make distcheck as well as builds from the tarball to fail. Using $() isn't strictly necessary but other variables and expressions use that variant already so it makes the usage consistent. Reviewed-by: David Herrmann <dh.herrm...@googlemail.com> Signed-off-by: Thierry Reding <thierry.red...@avionic-design.de> diff --git a/man/Makefile.am b/man/Makefile.am index 25202e2..d25a293 100644 --- a/man/Makefile.am +++ b/man/Makefile.am @@ -17,7 +17,8 @@ MANPAGES_ALIASES = \ drm-ttm.7 XML_FILES = \ - ${patsubst %.1,%.xml,${patsubst %.3,%.xml,${patsubst %.5,%.xml,${patsubs %.7,%.xml,$(MANPAGES)}}}} + $(patsubst %.1,%.xml,$(patsubst %.3,%.xml,$(patsubst %.5,%.xml,$(patsubst %.7,%.xml,$(MANPAGES))))) + EXTRA_DIST = $(XML_FILES) CLEANFILES = $(MANPAGES) $(MANPAGES_ALIASES) .man_fixup man_MANS = commit 303ca37e722e68900cb7eb43ddbef8069b0c711b Author: Michel Dänzer <michel.daen...@amd.com> Date: Thu Jan 17 19:03:42 2013 +0100 radeon: Fix 1D tiling layout on SI. Very similar to Evergreen, but slightly different rules for tile / slice alignment. Fortunately, these map quite naturally onto the previous fixes for linear aligned layout on SI. 2D tiling still needs more work here and possibly in the kernel. Signed-off-by: Michel Dänzer <michel.daen...@amd.com> diff --git a/radeon/radeon_surface.c b/radeon/radeon_surface.c index eb587d2..8e93873 100644 --- a/radeon/radeon_surface.c +++ b/radeon/radeon_surface.c @@ -1000,25 +1000,28 @@ static int eg_surface_best(struct radeon_surface_manager *surf_man, * Southern Islands family */ -static void si_surf_minify_linear_aligned(struct radeon_surface *surf, - unsigned level, - uint32_t xalign, uint32_t yalign, uint32_t zalign, uint32_t slice_align, - unsigned offset) +static void si_surf_minify(struct radeon_surface *surf, + struct radeon_surface_level *surflevel, + unsigned bpe, unsigned level, + uint32_t xalign, uint32_t yalign, uint32_t zalign, uint32_t slice_align, + unsigned offset) { - surf->level[level].npix_x = mip_minify(surf->npix_x, level); - surf->level[level].npix_y = mip_minify(surf->npix_y, level); - surf->level[level].npix_z = mip_minify(surf->npix_z, level); + surflevel->npix_x = mip_minify(surf->npix_x, level); + surflevel->npix_y = mip_minify(surf->npix_y, level); + surflevel->npix_z = mip_minify(surf->npix_z, level); if (level == 0 && surf->last_level > 0) { - surf->level[level].nblk_x = (next_power_of_two(surf->level[level].npix_x) + surf->blk_w - 1) / surf->blk_w; - surf->level[level].nblk_y = (next_power_of_two(surf->level[level].npix_y) + surf->blk_h - 1) / surf->blk_h; - surf->level[level].nblk_z = (next_power_of_two(surf->level[level].npix_z) + surf->blk_d - 1) / surf->blk_d; + surflevel->nblk_x = (next_power_of_two(surflevel->npix_x) + surf->blk_w - 1) / surf->blk_w; + surflevel->nblk_y = (next_power_of_two(surflevel->npix_y) + surf->blk_h - 1) / surf->blk_h; + surflevel->nblk_z = (next_power_of_two(surflevel->npix_z) + surf->blk_d - 1) / surf->blk_d; } else { - surf->level[level].nblk_x = (surf->level[level].npix_x + surf->blk_w - 1) / surf->blk_w; - surf->level[level].nblk_y = (surf->level[level].npix_y + surf->blk_h - 1) / surf->blk_h; - surf->level[level].nblk_z = (surf->level[level].npix_z + surf->blk_d - 1) / surf->blk_d; + surflevel->nblk_x = (surflevel->npix_x + surf->blk_w - 1) / surf->blk_w; + surflevel->nblk_y = (surflevel->npix_y + surf->blk_h - 1) / surf->blk_h; + surflevel->nblk_z = (surflevel->npix_z + surf->blk_d - 1) / surf->blk_d; } + surflevel->nblk_y = ALIGN(surflevel->nblk_y, yalign); + /* XXX: Texture sampling uses unexpectedly large pitches in some cases, * these are just guesses for the rules behind those */ @@ -1027,17 +1030,16 @@ static void si_surf_minify_linear_aligned(struct radeon_surface *surf, xalign = MAX2(xalign, slice_align / surf->bpe); else /* Small rows evenly distributed across slice */ - xalign = MAX2(xalign, slice_align / surf->bpe / surf->level[level].npix_y); + xalign = MAX2(xalign, slice_align / surf->bpe / surflevel->nblk_y); - surf->level[level].nblk_x = ALIGN(surf->level[level].nblk_x, xalign); - surf->level[level].nblk_y = ALIGN(surf->level[level].nblk_y, yalign); - surf->level[level].nblk_z = ALIGN(surf->level[level].nblk_z, zalign); + surflevel->nblk_x = ALIGN(surflevel->nblk_x, xalign); + surflevel->nblk_z = ALIGN(surflevel->nblk_z, zalign); - surf->level[level].offset = offset; - surf->level[level].pitch_bytes = surf->level[level].nblk_x * surf->bpe * surf->nsamples; - surf->level[level].slice_size = ALIGN(surf->level[level].pitch_bytes * surf->level[level].nblk_y, slice_align); + surflevel->offset = offset; + surflevel->pitch_bytes = surflevel->nblk_x * surf->bpe * surf->nsamples; + surflevel->slice_size = ALIGN(surflevel->pitch_bytes * surflevel->nblk_y, slice_align); - surf->bo_size = offset + surf->level[level].slice_size * surf->level[level].nblk_z * surf->array_size; + surf->bo_size = offset + surflevel->slice_size * surflevel->nblk_z * surf->array_size; } static int si_surface_init_linear_aligned(struct radeon_surface_manager *surf_man, @@ -1059,7 +1061,48 @@ static int si_surface_init_linear_aligned(struct radeon_surface_manager *surf_ma /* build mipmap tree */ for (i = start_level; i <= surf->last_level; i++) { surf->level[i].mode = RADEON_SURF_MODE_LINEAR_ALIGNED; - si_surf_minify_linear_aligned(surf, i, xalign, yalign, zalign, slice_align, offset); + si_surf_minify(surf, surf->level+i, surf->bpe, i, xalign, yalign, + zalign, slice_align, offset); + /* level0 and first mipmap need to have alignment */ + offset = surf->bo_size; + if ((i == 0)) { + offset = ALIGN(offset, surf->bo_alignment); + } + } + return 0; +} + +static int si_surface_init_1d(struct radeon_surface_manager *surf_man, + struct radeon_surface *surf, + struct radeon_surface_level *level, + unsigned bpe, + uint64_t offset, unsigned start_level) +{ + uint32_t xalign, yalign, zalign, slice_align; + unsigned i; + + /* compute alignment */ + xalign = 8; + yalign = 8; + zalign = 1; + slice_align = surf_man->hw_info.group_bytes; + if (surf->flags & RADEON_SURF_SCANOUT) { + xalign = MAX2((bpe == 1) ? 64 : 32, xalign); + } + + if (!start_level) { + unsigned alignment = MAX2(256, surf_man->hw_info.group_bytes); + surf->bo_alignment = MAX2(surf->bo_alignment, alignment); + + if (offset) { + offset = ALIGN(offset, alignment); + } + } + + /* build mipmap tree */ + for (i = start_level; i <= surf->last_level; i++) { + level[i].mode = RADEON_SURF_MODE_1D; + si_surf_minify(surf, level+i, bpe, i, xalign, yalign, zalign, slice_align, offset); /* level0 and first mipmap need to have alignment */ offset = surf->bo_size; if ((i == 0)) { @@ -1069,6 +1112,28 @@ static int si_surface_init_linear_aligned(struct radeon_surface_manager *surf_ma return 0; } +static int si_surface_init_1d_miptrees(struct radeon_surface_manager *surf_man, + struct radeon_surface *surf) +{ + unsigned zs_flags = RADEON_SURF_ZBUFFER | RADEON_SURF_SBUFFER; + int r, is_depth_stencil = (surf->flags & zs_flags) == zs_flags; + /* Old libdrm headers didn't have stencil_level in it. This prevents crashes. */ + struct radeon_surface_level tmp[RADEON_SURF_MAX_LEVEL]; + struct radeon_surface_level *stencil_level = + (surf->flags & RADEON_SURF_HAS_SBUFFER_MIPTREE) ? surf->stencil_level : tmp; + + r = si_surface_init_1d(surf_man, surf, surf->level, surf->bpe, 0, 0); + if (r) + return r; + + if (is_depth_stencil) { + r = si_surface_init_1d(surf_man, surf, stencil_level, 1, + surf->bo_size, 0); + surf->stencil_offset = stencil_level[0].offset; + } + return r; +} + static int si_surface_init(struct radeon_surface_manager *surf_man, struct radeon_surface *surf) { @@ -1115,7 +1180,7 @@ static int si_surface_init(struct radeon_surface_manager *surf_man, r = si_surface_init_linear_aligned(surf_man, surf, 0, 0); break; case RADEON_SURF_MODE_1D: - r = eg_surface_init_1d_miptrees(surf_man, surf); + r = si_surface_init_1d_miptrees(surf_man, surf); break; case RADEON_SURF_MODE_2D: r = eg_surface_init_2d_miptrees(surf_man, surf); commit 08cb5c1d0245f6bfc1dd4d041eb418bc160c7b05 Author: David Herrmann <dh.herrm...@googlemail.com> Date: Wed Jan 16 19:35:25 2013 +0100 man: fix manpage build instructions This fixes all the out-of-tree build-failures with manpages and uses a .man_fixup file to avoid overriding man-pages on every build. Manpages are only built if xsltproc is found and the stylesheets are available locally. You can disable building manpages with --disable-manpages so the quite expensive xsltproc procedure can be skipped. Signed-off-by: David Herrmann <dh.herrm...@googlemail.com> diff --git a/.gitignore b/.gitignore index 1de66bc..225fd80 100644 --- a/.gitignore +++ b/.gitignore @@ -52,6 +52,7 @@ libkms.pc libtool ltmain.sh mach64.kld +man/.man_fixup mga.kld missing mkinstalldirs diff --git a/Makefile.am b/Makefile.am index 9f106d3..8ecd9d9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -49,7 +49,7 @@ if HAVE_EXYNOS EXYNOS_SUBDIR = exynos endif -SUBDIRS = . $(LIBKMS_SUBDIR) $(INTEL_SUBDIR) $(NOUVEAU_SUBDIR) $(RADEON_SUBDIR) $(OMAP_SUBDIR) $(EXYNOS_SUBDIR) tests include +SUBDIRS = . $(LIBKMS_SUBDIR) $(INTEL_SUBDIR) $(NOUVEAU_SUBDIR) $(RADEON_SUBDIR) $(OMAP_SUBDIR) $(EXYNOS_SUBDIR) tests include man libdrm_la_LTLIBRARIES = libdrm.la libdrm_ladir = $(libdir) diff --git a/configure.ac b/configure.ac index 10cc9a4..9ee7940 100644 --- a/configure.ac +++ b/configure.ac @@ -226,8 +226,26 @@ if test "x$HAVE_LIBUDEV" = xyes; then fi AM_CONDITIONAL(HAVE_LIBUDEV, [test "x$HAVE_LIBUDEV" = xyes]) +# xsltproc for docbook manpages +AC_ARG_ENABLE([manpages], + AS_HELP_STRING([--disable-manpages], [disable manpages @<:@default=enabled@:>@]), + [MANS=$enableval], [MANS=auto]) AC_PATH_PROG(XSLTPROC, xsltproc) -AM_CONDITIONAL([HAVE_XSLTPROC], [test "x$XSLTPROC" != "x"]) +AM_CONDITIONAL([BUILD_MANPAGES], [test "x$XSLTPROC" != "x" -a "x$MANS" != "xno"]) + +# check for offline man-pages stylesheet +AC_MSG_CHECKING([for docbook manpages stylesheet]) +MANPAGES_STYLESHEET="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" +AC_PATH_PROGS_FEATURE_CHECK([XSLTPROC_TMP], [xsltproc], + AS_IF([`"$ac_path_XSLTPROC_TMP" --nonet "$MANPAGES_STYLESHEET" > /dev/null 2>&1`], + [HAVE_MANPAGES_STYLESHEET=yes])) +if test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"; then + AC_SUBST(MANPAGES_STYLESHEET) + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([no]) +fi +AM_CONDITIONAL([HAVE_MANPAGES_STYLESHEET], [test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"]) if test "x$INTEL" != "xno" -o "x$RADEON" != "xno" -o "x$NOUVEAU" != "xno" -o "x$OMAP" != "xno"; then # Check for atomic intrinsics diff --git a/man/Makefile.am b/man/Makefile.am index 32acd07..25202e2 100644 --- a/man/Makefile.am +++ b/man/Makefile.am @@ -18,37 +18,45 @@ MANPAGES_ALIASES = \ XML_FILES = \ ${patsubst %.1,%.xml,${patsubst %.3,%.xml,${patsubst %.5,%.xml,${patsubs %.7,%.xml,$(MANPAGES)}}}} -CLEANFILES = -EXTRA_DIST = +EXTRA_DIST = $(XML_FILES) +CLEANFILES = $(MANPAGES) $(MANPAGES_ALIASES) .man_fixup man_MANS = -if HAVE_XSLTPROC +if BUILD_MANPAGES +if HAVE_MANPAGES_STYLESHEET -CLEANFILES += $(MANPAGES) $(MANPAGES_ALIASES) -EXTRA_DIST += $(MANPAGES) $(MANPAGES_ALIASES) $(XML_FILES) man_MANS += $(MANPAGES) $(MANPAGES_ALIASES) XSLTPROC_FLAGS = \ --stringparam man.authors.section.enabled 0 \ --stringparam man.copyright.section.enabled 0 \ --stringparam funcsynopsis.style ansi \ - --stringparam man.output.quietly 1 + --stringparam man.output.quietly 1 \ + --nonet XSLTPROC_PROCESS_MAN = \ $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \ - $(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< && \ - $(SED) -i -e 's/^\.so \(.*\)\.\(.\)$$/\.so man\2\/\1\.\2/' $(MANPAGES_ALIASES) + $(XSLTPROC) -o "$@" $(XSLTPROC_FLAGS) $(MANPAGES_STYLESHEET) "$<" && \ + touch .man_fixup -%.1: %.xml +# Force .man_fixup if $(MANPAGES) are not built +.man_fixup: | $(MANPAGES) + @touch .man_fixup + +$(MANPAGES_ALIASES): $(MANPAGES) .man_fixup + $(AM_V_GEN)if test -n "$@" ; then $(SED) -i -e 's/^\.so \([a-z_]\+\)\.\([0-9]\)$$/\.so man\2\/\1\.\2/' "$@" ; fi + +%.1: $(top_srcdir)/man/%.xml $(XSLTPROC_PROCESS_MAN) -%.3: %.xml +%.3: $(top_srcdir)/man/%.xml $(XSLTPROC_PROCESS_MAN) -%.5: %.xml +%.5: $(top_srcdir)/man/%.xml $(XSLTPROC_PROCESS_MAN) -%.7: %.xml +%.7: $(top_srcdir)/man/%.xml $(XSLTPROC_PROCESS_MAN) -endif # HAVE_XSLTPROC +endif # HAVE_MANPAGES_STYLESHEET +endif # BUILD_MANPAGES commit 481763c2c7f5224a9f053ab3a2b2356eb89a96f0 Author: Maarten Lankhorst <maarten.lankho...@canonical.com> Date: Wed Jan 16 14:29:14 2013 +0100 nouveau: use @PACKAGE_VERSION@ in libdrm_nouveau.pc Signed-off-by: Maarten Lankhorst <maarten.lankho...@canonical.com> diff --git a/nouveau/libdrm_nouveau.pc.in b/nouveau/libdrm_nouveau.pc.in index 454fc87..9abfd81 100644 --- a/nouveau/libdrm_nouveau.pc.in +++ b/nouveau/libdrm_nouveau.pc.in @@ -5,7 +5,7 @@ includedir=@includedir@ Name: libdrm_nouveau Description: Userspace interface to nouveau kernel DRM services -Version: 2.4.33 +Version: @PACKAGE_VERSION@ Libs: -L${libdir} -ldrm_nouveau Cflags: -I${includedir} -I${includedir}/libdrm Requires.private: libdrm -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1u3njg-0002g5...@vasks.debian.org