From ec0060cc129fe26357d2c56bf4e3f514897f2258 Mon Sep 17 00:00:00 2001 From: matthieu Date: Sat, 5 Jan 2013 17:00:06 +0000 Subject: [PATCH] Update to xf86-video-mach64 6.9.4 --- driver/xf86-video-mach64/ChangeLog | 98 +++++++++++++++++++ driver/xf86-video-mach64/Makefile.in | 8 +- driver/xf86-video-mach64/aclocal.m4 | 41 +------- driver/xf86-video-mach64/config.guess | 17 +++- driver/xf86-video-mach64/config.sub | 29 +++--- driver/xf86-video-mach64/configure | 20 ++-- driver/xf86-video-mach64/configure.ac | 2 +- driver/xf86-video-mach64/depcomp | 86 +++++++++++++++- driver/xf86-video-mach64/man/Makefile.in | 2 +- driver/xf86-video-mach64/src/Makefile.in | 2 +- driver/xf86-video-mach64/src/atimach64exa.c | 60 ------------ .../xf86-video-mach64/src/atimach64render.c | 17 +--- driver/xf86-video-mach64/src/atiscreen.c | 19 +--- driver/xf86-video-mach64/src/atistruct.h | 1 + 14 files changed, 238 insertions(+), 164 deletions(-) diff --git a/driver/xf86-video-mach64/ChangeLog b/driver/xf86-video-mach64/ChangeLog index c038a6130..fe45b7b22 100644 --- a/driver/xf86-video-mach64/ChangeLog +++ b/driver/xf86-video-mach64/ChangeLog @@ -1,3 +1,101 @@ +commit 0d8639f3cd4128ae856ae27f3787c1da224bb564 +Author: Alan Coopersmith +Date: Wed Dec 19 22:14:08 2012 -0800 + + xf86-video-mach64 6.9.4 + + Signed-off-by: Alan Coopersmith + +commit f694490b3cec78d7b17eeb0a9c4daadd1028776a +Author: Alan Coopersmith +Date: Tue Dec 18 15:42:30 2012 -0800 + + Remove call to obsolete miInitializeBackingStore() + + Definition was deleted from Xorg during 1.14 merge window, but has + been a no-op since 1.10 merge window. + + Signed-off-by: Alan Coopersmith + Reviewed-by: Alex Deucher + +commit ece8d3557eb1ffb27104bffb7841503aae4dcd6f +Author: Connor Behan +Date: Fri Dec 7 13:53:38 2012 -0800 + + Remove dummy UTS / DFS hooks + + When EXA was added to mach64, it included UploadToScreen and + DownloadFromScreen hooks that did the same thing that EXA would do in a + software fallback. Now they are out of date and cause crashes. The + slight benefit of reimplementing those hooks (if there is any) is not + worth the maintenance burden of having to rewrite them every time there + is a change to the way EXA handles pixmaps. + Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=51137 + + Signed-off-by: Connor Behan + Tested-by: Alan Coopersmith + Signed-off-by: Alan Coopersmith + +commit f0d44c18d71e7450b99189c1221a2f89c7817ab6 +Author: Alan Coopersmith +Date: Thu Dec 6 16:49:12 2012 -0800 + + Mach64PixelARGB should use exaGetPixmapFirstPixel + + Fixes crash attempting to read a pixel from a NULL pPixmap->devPrivate.ptr + + Signed-off-by: Alan Coopersmith + Reviewed-by: Michel Dänzer + +commit 42c4e423eec789606eec9703be23a9fd4483a14a +Author: Adam Jackson +Date: Tue Oct 2 10:19:47 2012 -0400 + + Fix build with neither XAA nor EXA against xserver 1.13.0 + + Pull in picturestr.h to get GLYPH_HAS_GLYPH_PICTURE_ACCESSOR defined + before compat-api.h is parsed, otherwise you fail with: + + In file included from /usr/include/xorg/picturestr.h:28:0, + from /usr/include/xorg/exa.h:38, + from atimach64accel.h:31, + from atiscreen.c:46: + /usr/include/xorg/glyphstr.h:138:2: error: expected ')' before '*' token + /usr/include/xorg/glyphstr.h:138:2: error: expected ')' before '(' token + /usr/include/xorg/glyphstr.h:140:2: error: expected ')' before '*' token + /usr/include/xorg/glyphstr.h:140:2: error: expected ')' before '(' token + + Signed-off-by: Adam Jackson + +commit 104e3e067a7dcac143cb672fe42d56396ba6087b +Author: Adam Jackson +Date: Wed Sep 26 16:21:25 2012 -0400 + + Don't gratuitously disable Render when ShadowFBing + + There's no reason to do this, and I am at a loss to explain why that was + ever done. The first instance of this logic comes from xfree86 (over 11 + years ago!): + + http://cvsweb.xfree86.org/cvsweb/xc/programs/Xserver/hw/xfree86/drivers/ati/atiscreen.c.diff?r1=1.15&r2=1.16 + + Now, cfb never had Render support, so that might make some sense if + there was an intermediate uncommitted state where the driver used fb for + direct but cfb for shadowed. But that's really the only plausible + explanation I can think of. + + Signed-off-by: Adam Jackson + +commit 5eb7fec958bc6ba8a1a2b0be4916cac818866e1c +Author: Dave Airlie +Date: Wed Jul 18 18:46:49 2012 +1000 + + mach64: fix build on 32-bit. + + tvout code only builds on 32-bit, fix build. + + Signed-off-by: Dave Airlie + commit 2776fc9cd69f18ba6f09f39ca747f3a9333bf9e4 Author: Dave Airlie Date: Tue Jul 17 16:05:09 2012 +1000 diff --git a/driver/xf86-video-mach64/Makefile.in b/driver/xf86-video-mach64/Makefile.in index e5d2db9d5..8d71f6ef9 100644 --- a/driver/xf86-video-mach64/Makefile.in +++ b/driver/xf86-video-mach64/Makefile.in @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.12.2 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. @@ -626,9 +626,9 @@ distcheck: dist *.zip*) \ unzip $(distdir).zip ;;\ esac - chmod -R a-w $(distdir); chmod u+w $(distdir) - mkdir $(distdir)/_build - mkdir $(distdir)/_inst + chmod -R a-w $(distdir) + chmod u+w $(distdir) + mkdir $(distdir)/_build $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ diff --git a/driver/xf86-video-mach64/aclocal.m4 b/driver/xf86-video-mach64/aclocal.m4 index c01424d69..8ff952022 100644 --- a/driver/xf86-video-mach64/aclocal.m4 +++ b/driver/xf86-video-mach64/aclocal.m4 @@ -1,4 +1,4 @@ -# generated automatically by aclocal 1.12.2 -*- Autoconf -*- +# generated automatically by aclocal 1.12.5 -*- Autoconf -*- # Copyright (C) 1996-2012 Free Software Foundation, Inc. @@ -8770,8 +8770,6 @@ fi[]dnl # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 8 - # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been @@ -8781,7 +8779,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.12' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.12.2], [], +m4_if([$1], [1.12.5], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -8797,7 +8795,7 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.12.2])dnl +[AM_AUTOMAKE_VERSION([1.12.5])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) @@ -8810,8 +8808,6 @@ _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 2 - # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to # '$srcdir', '$srcdir/..', or '$srcdir/../..'. @@ -8865,8 +8861,6 @@ am_aux_dir=`cd $ac_aux_dir && pwd` # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 10 - # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. @@ -8898,7 +8892,6 @@ fi])]) # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 17 # There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, @@ -9090,7 +9083,6 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 6 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ @@ -9167,8 +9159,6 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 19 - # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. @@ -9320,8 +9310,6 @@ echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_co # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 8 - # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. @@ -9343,8 +9331,6 @@ AC_SUBST([install_sh])]) # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 2 - # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], @@ -9367,8 +9353,6 @@ AC_SUBST([am__leading_dot])]) # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 7 - # AM_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. @@ -9406,8 +9390,6 @@ AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 5 - # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. @@ -9458,8 +9440,6 @@ rm -f confinc confmf # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 7 - # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], @@ -9467,7 +9447,6 @@ AC_DEFUN([AM_MISSING_PROG], $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) - # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. @@ -9500,8 +9479,6 @@ fi # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 6 - # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], @@ -9533,8 +9510,6 @@ AC_DEFUN([_AM_IF_OPTION], # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 9 - # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], @@ -9616,8 +9591,6 @@ rm -f conftest.file # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 3 - # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT @@ -9678,8 +9651,6 @@ _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 2 - # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor 'install' (even GNU) is that you can't @@ -9708,8 +9679,6 @@ AC_SUBST([INSTALL_STRIP_PROGRAM])]) # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 3 - # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. @@ -9729,8 +9698,6 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 3 - # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. @@ -9857,7 +9824,7 @@ dnl DEALINGS IN THE SOFTWARE. # See the "minimum version" comment for each macro you use to see what # version you require. m4_defun([XORG_MACROS_VERSION],[ -m4_define([vers_have], [1.16.2]) +m4_define([vers_have], [1.17]) m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.]))) m4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.]))) m4_if(m4_cmp(maj_have, maj_needed), 0,, diff --git a/driver/xf86-video-mach64/config.guess b/driver/xf86-video-mach64/config.guess index c0adba94b..872b96a16 100755 --- a/driver/xf86-video-mach64/config.guess +++ b/driver/xf86-video-mach64/config.guess @@ -4,7 +4,7 @@ # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012 Free Software Foundation, Inc. -timestamp='2012-06-10' +timestamp='2012-09-25' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -200,6 +200,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} @@ -302,7 +306,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; - arm:riscos:*:*|arm:RISCOS:*:*) + arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) @@ -801,6 +805,9 @@ EOF i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; + *:MINGW64*:*) + echo ${UNAME_MACHINE}-pc-mingw64 + exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; @@ -1201,6 +1208,9 @@ EOF BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; @@ -1330,9 +1340,6 @@ EOF exit ;; esac -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - eval $set_cc_for_build cat >$dummy.c <. # @@ -591,8 +591,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='xf86-video-mach64' PACKAGE_TARNAME='xf86-video-mach64' -PACKAGE_VERSION='6.9.3' -PACKAGE_STRING='xf86-video-mach64 6.9.3' +PACKAGE_VERSION='6.9.4' +PACKAGE_STRING='xf86-video-mach64 6.9.4' PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg' PACKAGE_URL='' @@ -1376,7 +1376,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures xf86-video-mach64 6.9.3 to adapt to many kinds of systems. +\`configure' configures xf86-video-mach64 6.9.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1447,7 +1447,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of xf86-video-mach64 6.9.3:";; + short | recursive ) echo "Configuration of xf86-video-mach64 6.9.4:";; esac cat <<\_ACEOF @@ -1579,7 +1579,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -xf86-video-mach64 configure 6.9.3 +xf86-video-mach64 configure 6.9.4 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1994,7 +1994,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by xf86-video-mach64 $as_me 6.9.3, which was +It was created by xf86-video-mach64 $as_me 6.9.4, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2823,7 +2823,7 @@ fi # Define the identity of the package. PACKAGE='xf86-video-mach64' - VERSION='6.9.3' + VERSION='6.9.4' cat >>confdefs.h <<_ACEOF @@ -19130,7 +19130,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by xf86-video-mach64 $as_me 6.9.3, which was +This file was extended by xf86-video-mach64 $as_me 6.9.4, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -19196,7 +19196,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -xf86-video-mach64 config.status 6.9.3 +xf86-video-mach64 config.status 6.9.4 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/driver/xf86-video-mach64/configure.ac b/driver/xf86-video-mach64/configure.ac index 2282f79a4..95f336bd4 100644 --- a/driver/xf86-video-mach64/configure.ac +++ b/driver/xf86-video-mach64/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-video-mach64], - [6.9.3], + [6.9.4], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-video-mach64]) AC_CONFIG_SRCDIR([Makefile.am]) diff --git a/driver/xf86-video-mach64/depcomp b/driver/xf86-video-mach64/depcomp index debb6ffa3..e1f51f482 100755 --- a/driver/xf86-video-mach64/depcomp +++ b/driver/xf86-video-mach64/depcomp @@ -1,7 +1,7 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2012-03-27.16; # UTC +scriptversion=2012-07-12.20; # UTC # Copyright (C) 1999-2012 Free Software Foundation, Inc. @@ -74,6 +74,9 @@ tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" +# Avoid interferences from the environment. +gccflag= dashmflag= + # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case @@ -108,7 +111,7 @@ if test "$depmode" = msvc7msys; then fi if test "$depmode" = xlc; then - # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations. + # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. gccflag=-qmakedep=gcc,-MF depmode=gcc fi @@ -142,13 +145,17 @@ gcc3) ;; gcc) +## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. +## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. +## (see the conditional assignment to $gccflag above). ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -## -MM, not -M (despite what the docs say). +## -MM, not -M (despite what the docs say). Also, it might not be +## supported by the other compilers which use the 'gcc' depmode. ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then @@ -334,6 +341,79 @@ icc) rm -f "$tmpdepfile" ;; +## The order of this option in the case statement is important, since the +## shell code in configure will try each of these formats in the order +## listed in this file. A plain '-MD' option would be understood by many +## compilers, so we must ensure this comes after the gcc and icc options. +pgcc) + # Portland's C compiler understands '-MD'. + # Will always output deps to 'file.d' where file is the root name of the + # source file under compilation, even if file resides in a subdirectory. + # The object file name does not affect the name of the '.d' file. + # pgcc 10.2 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using '\' : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + # Use the source, not the object, to determine the base name, since + # that's sadly what pgcc will do too. + base=`echo "$source" | sed -e 's|^.*/||' -e 's/\.[-_a-zA-Z0-9]*$//'` + tmpdepfile="$base.d" + + # For projects that build the same source file twice into different object + # files, the pgcc approach of using the *source* file root name can cause + # problems in parallel builds. Use a locking strategy to avoid stomping on + # the same $tmpdepfile. + lockdir="$base.d-lock" + trap "echo '$0: caught signal, cleaning up...' >&2; rm -rf $lockdir" 1 2 13 15 + numtries=100 + i=$numtries + while test $i -gt 0 ; do + # mkdir is a portable test-and-set. + if mkdir $lockdir 2>/dev/null; then + # This process acquired the lock. + "$@" -MD + stat=$? + # Release the lock. + rm -rf $lockdir + break + else + ## the lock is being held by a different process, + ## wait until the winning process is done or we timeout + while test -d $lockdir && test $i -gt 0; do + sleep 1 + i=`expr $i - 1` + done + fi + i=`expr $i - 1` + done + trap - 1 2 13 15 + if test $i -le 0; then + echo "$0: failed to acquire lock after $numtries attempts" >&2 + echo "$0: check lockdir '$lockdir'" >&2 + exit 1 + fi + + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | + sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option diff --git a/driver/xf86-video-mach64/man/Makefile.in b/driver/xf86-video-mach64/man/Makefile.in index 3824103f5..017db19bb 100644 --- a/driver/xf86-video-mach64/man/Makefile.in +++ b/driver/xf86-video-mach64/man/Makefile.in @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.12.2 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. diff --git a/driver/xf86-video-mach64/src/Makefile.in b/driver/xf86-video-mach64/src/Makefile.in index 5389db2e0..a8a3976e4 100644 --- a/driver/xf86-video-mach64/src/Makefile.in +++ b/driver/xf86-video-mach64/src/Makefile.in @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.12.2 from Makefile.am. +# Makefile.in generated by automake 1.12.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. diff --git a/driver/xf86-video-mach64/src/atimach64exa.c b/driver/xf86-video-mach64/src/atimach64exa.c index e4d5307e0..ea4c98e93 100644 --- a/driver/xf86-video-mach64/src/atimach64exa.c +++ b/driver/xf86-video-mach64/src/atimach64exa.c @@ -387,60 +387,6 @@ Mach64Solid static void Mach64DoneSolid(PixmapPtr pPixmap) { } -/* - * Memcpy-based UTS. - */ -static Bool -Mach64UploadToScreen(PixmapPtr pDst, int x, int y, int w, int h, - char *src, int src_pitch) -{ - char *dst = pDst->devPrivate.ptr; - int dst_pitch = exaGetPixmapPitch(pDst); - - int bpp = pDst->drawable.bitsPerPixel; - int cpp = (bpp + 7) / 8; - int wBytes = w * cpp; - - exaWaitSync(pDst->drawable.pScreen); - - dst += (x * cpp) + (y * dst_pitch); - - while (h--) { - memcpy(dst, src, wBytes); - src += src_pitch; - dst += dst_pitch; - } - - return TRUE; -} - -/* - * Memcpy-based DFS. - */ -static Bool -Mach64DownloadFromScreen(PixmapPtr pSrc, int x, int y, int w, int h, - char *dst, int dst_pitch) -{ - char *src = pSrc->devPrivate.ptr; - int src_pitch = exaGetPixmapPitch(pSrc); - - int bpp = pSrc->drawable.bitsPerPixel; - int cpp = (bpp + 7) / 8; - int wBytes = w * cpp; - - exaWaitSync(pSrc->drawable.pScreen); - - src += (x * cpp) + (y * src_pitch); - - while (h--) { - memcpy(dst, src, wBytes); - src += src_pitch; - dst += dst_pitch; - } - - return TRUE; -} - #include "atimach64render.c" /* Compute log base 2 of val. */ @@ -659,12 +605,6 @@ Bool ATIMach64ExaInit(ScreenPtr pScreen) pExa->Copy = Mach64Copy; pExa->DoneCopy = Mach64DoneCopy; - /* EXA hits more optimized paths when it does not have to fallback because - * of missing UTS/DFS, hook memcpy-based UTS/DFS. - */ - pExa->UploadToScreen = Mach64UploadToScreen; - pExa->DownloadFromScreen = Mach64DownloadFromScreen; - if (pATI->RenderAccelEnabled) { if (pATI->Chip >= ATI_CHIP_264GTPRO) { /* 3D Rage Pro does not support NPOT textures. */ diff --git a/driver/xf86-video-mach64/src/atimach64render.c b/driver/xf86-video-mach64/src/atimach64render.c index 4862cd450..ffde2cb07 100644 --- a/driver/xf86-video-mach64/src/atimach64render.c +++ b/driver/xf86-video-mach64/src/atimach64render.c @@ -209,22 +209,7 @@ Mach64PixelARGB(PixmapPtr pPixmap, CARD32 format, CARD32 *argb) CARD8 comp; int bits, shift; - /* Ensure that texture drawing has completed. */ - exaWaitSync(pPixmap->drawable.pScreen); - - /* exaGetPixmapFirstPixel() */ - - switch (pPixmap->drawable.bitsPerPixel) { - case 32: - pixel = *(CARD32 *)(pPixmap->devPrivate.ptr); - break; - case 16: - pixel = *(CARD16 *)(pPixmap->devPrivate.ptr); - break; - default: - pixel = *(CARD8 *)(pPixmap->devPrivate.ptr); - break; - } + pixel = exaGetPixmapFirstPixel(pPixmap); /* exaGetRGBAFromPixel()/viaPixelARGB8888() */ diff --git a/driver/xf86-video-mach64/src/atiscreen.c b/driver/xf86-video-mach64/src/atiscreen.c index b1fbd3c66..15f399e4f 100644 --- a/driver/xf86-video-mach64/src/atiscreen.c +++ b/driver/xf86-video-mach64/src/atiscreen.c @@ -476,21 +476,11 @@ ATIScreenInit(SCREEN_INIT_ARGS_DECL) } } - /* If applicable, initialise RENDER extension */ + /* initialise RENDER extension */ + if (!fbPictureInit(pScreen, NULL, 0) && (serverGeneration == 1)) { - if (pATI->OptionShadowFB) - { - if (serverGeneration == 1) - xf86DrvMsg(pScreenInfo->scrnIndex, X_WARNING, - "RENDER extension not supported with a shadowed" - " framebuffer.\n"); - } - else if (!fbPictureInit(pScreen, NULL, 0) && - (serverGeneration == 1)) - { - xf86DrvMsg(pScreenInfo->scrnIndex, X_WARNING, - "RENDER extension initialisation failed.\n"); - } + xf86DrvMsg(pScreenInfo->scrnIndex, X_WARNING, + "RENDER extension initialisation failed.\n"); } xf86SetBlackWhitePixels(pScreen); @@ -542,7 +532,6 @@ ATIScreenInit(SCREEN_INIT_ARGS_DECL) #endif /* AVOID_DGA */ /* Initialise backing store */ - miInitializeBackingStore(pScreen); xf86SetBackingStore(pScreen); /* Initialise cursor */ diff --git a/driver/xf86-video-mach64/src/atistruct.h b/driver/xf86-video-mach64/src/atistruct.h index 702360b63..98dc15eb7 100644 --- a/driver/xf86-video-mach64/src/atistruct.h +++ b/driver/xf86-video-mach64/src/atistruct.h @@ -51,6 +51,7 @@ #endif /* TV_OUT */ +#include "picturestr.h" #ifdef USE_EXA #include "exa.h" #endif