Hello community,
here is the log from the commit of package xorg-x11-driver-video
checked in at Fri Jun 27 19:44:17 CEST 2008.
--------
--- xorg-x11-driver-video/xorg-x11-driver-video.changes 2008-06-25 04:58:31.000000000 +0200
+++ xorg-x11-driver-video/xorg-x11-driver-video.changes 2008-06-27 18:08:12.502843000 +0200
@@ -1,0 +2,11 @@
+Fri Jun 27 18:07:11 CEST 2008 - sndirsch@suse.de
+
+- xf86-video-radeon 6.9.0
+ * Version 6.9.0 of the radeon driver. Lots of stuff since 6.8.0
+ In addition to lots of bug fixes there are several major new
+ features:
+ - Improved EXA render support for r1xx/r2xx cards
+ - EXA render support for r3xx/r4xx/r5xx cards
+ - Textured video support for Xv (r1xx-r5xx)
+
+-------------------------------------------------------------------
Old:
----
xf86-video-ati-6.8.192.tar.bz2
New:
----
xf86-video-ati-6.9.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xorg-x11-driver-video.spec ++++++
--- /var/tmp/diff_new_pack.w23618/_old 2008-06-27 19:43:05.000000000 +0200
+++ /var/tmp/diff_new_pack.w23618/_new 2008-06-27 19:43:05.000000000 +0200
@@ -15,7 +15,7 @@
BuildRequires: Mesa-devel libdrm-devel pkgconfig xorg-x11-proto-devel xorg-x11-server-sdk
Url: http://xorg.freedesktop.org/
Version: 7.3
-Release: 142
+Release: 143
License: X11/MIT
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Group: System/X11/Servers/XF86_4
@@ -61,7 +61,7 @@
Source43: xf86-video-impact-0.2.0.tar.bz2
Source44: HALlib-4.1.tar.gz
Source45: xf86-video-intel-2.3.2.tar.bz2
-Source46: xf86-video-ati-6.8.192.tar.bz2
+Source46: xf86-video-ati-6.9.0.tar.bz2
Source48: xf86-video-mga-1.9.100.tar.bz2
Source50: xf86-video-xgi-1.5.0.tar.bz2
Source51: xf86-video-geode-2.10.0.tar.bz2
@@ -105,10 +105,10 @@
rm -rf xf86-video-geode*
%endif
ln -snf mga.man xf86-video-mga-1.9.100/man/mgarandr12.man
-#ln -snf ati.man xf86-video-ati-6.8.192/man/atirandr12.man
-#ln -snf r128.man xf86-video-ati-6.8.192/man/r128randr12.man
-#ln -snf radeon.man xf86-video-ati-6.8.192/man/radeonrandr12.man
-#pushd xf86-video-ati-6.8.192
+#ln -snf ati.man xf86-video-ati-6.9.0/man/atirandr12.man
+#ln -snf r128.man xf86-video-ati-6.9.0/man/r128randr12.man
+#ln -snf radeon.man xf86-video-ati-6.9.0/man/radeonrandr12.man
+#pushd xf86-video-ati-6.9.0
#%patch28 -p1
#popd
#pushd xf86-video-r128-*
@@ -171,12 +171,12 @@
%build
for dir in xf86-video-nv-* \
- xf86-video-mga-1.9.100 xf86-video-ati-6.8.* xf86-video-ati-6.6.3 \
+ xf86-video-mga-1.9.100 xf86-video-ati-6.9.* xf86-video-ati-6.6.3 \
$(ls | grep -v -e xf86-video-impact \
-e xf86-video-nv \
-e xf86-video-mga-1.9.100 \
-e xf86-video-ati-6.6.3 \
- -e xf86-video-ati-6.8 \
+ -e xf86-video-ati-6.9 \
); do
pushd $dir
case $dir in
@@ -184,7 +184,7 @@
xf86-video-intel-* | \
xf86-video-mga-1.9.100 | \
xf86-video-ati-6.6.3 | \
- xf86-video-ati-6.8.* | \
+ xf86-video-ati-6.9.* | \
xf86-video-xgixp | \
xf86-video-nsc-*) autoreconf -fi ;;
*) ;;
@@ -199,12 +199,12 @@
for dir in xf86-video-nv-* \
xf86-video-mga-1.9.100 \
xf86-video-ati-6.6.3 \
- xf86-video-ati-6.8.* \
+ xf86-video-ati-6.9.* \
$(ls | grep -v -e xf86-video-impact \
-e xf86-video-nv \
-e xf86-video-mga-1.9.100 \
-e xf86-video-ati-6.6.3 \
- -e xf86-video-ati-6.8 \
+ -e xf86-video-ati-6.9 \
); do
make -C $dir install DESTDIR=$RPM_BUILD_ROOT
done
@@ -261,6 +261,14 @@
/var/lib/hardware/ids/20.%{name}
%changelog
+* Fri Jun 27 2008 sndirsch@suse.de
+- xf86-video-radeon 6.9.0
+ * Version 6.9.0 of the radeon driver. Lots of stuff since 6.8.0
+ In addition to lots of bug fixes there are several major new
+ features:
+ - Improved EXA render support for r1xx/r2xx cards
+ - EXA render support for r3xx/r4xx/r5xx cards
+ - Textured video support for Xv (r1xx-r5xx)
* Wed Jun 25 2008 sndirsch@suse.de
- xf86-video-radeon 6.8.192
* ati 6.9.0rc2 release
++++++ xf86-video-ati-6.8.192.tar.bz2 -> xf86-video-ati-6.9.0.tar.bz2 ++++++
++++ 10471 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ati-6.8.192/ChangeLog new/xf86-video-ati-6.9.0/ChangeLog
--- old/xf86-video-ati-6.8.192/ChangeLog 2008-06-25 03:04:35.000000000 +0200
+++ new/xf86-video-ati-6.9.0/ChangeLog 2008-06-27 01:41:27.000000000 +0200
@@ -1,3 +1,65 @@
+commit 32e1d1daf4f68ea37624afaa2bc1ea7742e1163b
+Author: Brad Smith
+Date: Thu Jun 26 10:22:03 2008 -0400
+
+ RADEON: sys/endian.h needs sys/types.h on BSDs
+
+ See bug 16512
+
+commit dca522355a9039eca6efaba3b36397b246800f94
+Author: Brad Smith
+Date: Thu Jun 26 10:13:59 2008 -0400
+
+ RADEON: fix copy/paste error in accel code
+
+commit f4292e110105910d0c19bf2db28e2682b27af2c7
+Author: Dave Airlie
+Date: Fri Jun 20 15:31:43 2008 +1000
+
+ Revert "Revert "ATOM: disable TV-out for now""
+
+ Oops I really didn't mean to do this, I was testing something and it slipped
+ past.
+
+ This reverts commit dd18caa4b2efc430eaae0c4362b65641f9bef440.
+
+commit bb1cfcbfbc1ace1f257fc3bf6401501f1a6da827
+Author: Alex Deucher
+Date: Wed Jun 25 15:50:16 2008 -0400
+
+ RADEON: adjustments to Jerome's last commit
+
+ - Flush caches and wait for idle after drawing
+ - Make sure 3D is idle too (after composite or textured video)
+
+commit 07be302f6dba61dd15918963fae66502230c74b7
+Merge: 8c9b8de... 5245974...
+Author: Jerome Glisse
+Date: Wed Jun 25 10:30:45 2008 +0200
+
+ Merge branch 'master' of git://anongit.freedesktop.org/xorg/driver/xf86-video-ati
+
+commit 8c9b8de0373797cba6f0a27e6b6f461e1070fef9
+Author: Jerome Glisse
+Date: Wed Jun 25 10:28:26 2008 +0200
+
+ radeon: flush & wait for 2d & dma idle after 2d blit
+
+ This should help to avoid 2d & 3d engine to step on each
+ other dma transaction.
+
+commit 52459745ec05de88adbc087e9566fe6d97ef424b
+Author: Dave Airlie
+Date: Wed Jun 25 17:09:11 2008 +1000
+
+ ati: hopefully fix byteswap mess for those other OSes.
+
+commit 67a6ac0001bc9d062aa426384a11a41fa7a1c09a
+Author: Alex Deucher
+Date: Tue Jun 24 21:06:37 2008 -0400
+
+ bump for rc release
+
commit bd68507d2d66e03d8bcde5f6e7ea9b2dbfe8b8a0
Author: Alex Deucher
Date: Tue Jun 24 20:59:58 2008 -0400
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ati-6.8.192/compile new/xf86-video-ati-6.9.0/compile
--- old/xf86-video-ati-6.8.192/compile 2007-11-27 20:32:08.000000000 +0100
+++ new/xf86-video-ati-6.9.0/compile 1970-01-01 01:00:00.000000000 +0100
@@ -1,142 +0,0 @@
-#! /bin/sh
-# Wrapper for compilers which do not understand `-c -o'.
-
-scriptversion=2005-05-14.22
-
-# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
-# Written by Tom Tromey .
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# This file is maintained in Automake, please report
-# bugs to or send patches to
-# .
-
-case $1 in
- '')
- echo "$0: No command. Try \`$0 --help' for more information." 1>&2
- exit 1;
- ;;
- -h | --h*)
- cat <<\EOF
-Usage: compile [--help] [--version] PROGRAM [ARGS]
-
-Wrapper for compilers which do not understand `-c -o'.
-Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
-arguments, and rename the output as expected.
-
-If you are trying to build a whole package this is not the
-right script to run: please start by reading the file `INSTALL'.
-
-Report bugs to .
-EOF
- exit $?
- ;;
- -v | --v*)
- echo "compile $scriptversion"
- exit $?
- ;;
-esac
-
-ofile=
-cfile=
-eat=
-
-for arg
-do
- if test -n "$eat"; then
- eat=
- else
- case $1 in
- -o)
- # configure might choose to run compile as `compile cc -o foo foo.c'.
- # So we strip `-o arg' only if arg is an object.
- eat=1
- case $2 in
- *.o | *.obj)
- ofile=$2
- ;;
- *)
- set x "$@" -o "$2"
- shift
- ;;
- esac
- ;;
- *.c)
- cfile=$1
- set x "$@" "$1"
- shift
- ;;
- *)
- set x "$@" "$1"
- shift
- ;;
- esac
- fi
- shift
-done
-
-if test -z "$ofile" || test -z "$cfile"; then
- # If no `-o' option was seen then we might have been invoked from a
- # pattern rule where we don't need one. That is ok -- this is a
- # normal compilation that the losing compiler can handle. If no
- # `.c' file was seen then we are probably linking. That is also
- # ok.
- exec "$@"
-fi
-
-# Name of file we expect compiler to create.
-cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
-
-# Create the lock directory.
-# Note: use `[/.-]' here to ensure that we don't use the same name
-# that we are using for the .o file. Also, base the name on the expected
-# object file name, since that is what matters with a parallel build.
-lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
-while true; do
- if mkdir "$lockdir" >/dev/null 2>&1; then
- break
- fi
- sleep 1
-done
-# FIXME: race condition here if user kills between mkdir and trap.
-trap "rmdir '$lockdir'; exit 1" 1 2 15
-
-# Run the compile.
-"$@"
-ret=$?
-
-if test -f "$cofile"; then
- mv "$cofile" "$ofile"
-elif test -f "${cofile}bj"; then
- mv "${cofile}bj" "$ofile"
-fi
-
-rmdir "$lockdir"
-exit $ret
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
-# End:
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ati-6.8.192/config.h.in new/xf86-video-ati-6.9.0/config.h.in
--- old/xf86-video-ati-6.8.192/config.h.in 2008-06-25 03:02:50.000000000 +0200
+++ new/xf86-video-ati-6.9.0/config.h.in 2008-06-27 01:40:35.000000000 +0200
@@ -8,6 +8,9 @@
/* Use linux pragma pack */
#undef FGL_LINUX
+/* Define to 1 if you have the header file. */
+#undef HAVE_BYTESWAP_H
+
/* Define to 1 if you have the header file. */
#undef HAVE_DLFCN_H
@@ -86,6 +89,9 @@
/* Build support for Exa */
#undef USE_EXA
+/* Define to use byteswap macros from */
+#undef USE_SYS_ENDIAN_H
+
/* Build support for XAA */
#undef USE_XAA
@@ -100,3 +106,12 @@
/* X server has built-in mode code */
#undef XMODES
+
+/* Define to 16-bit byteswap macro */
+#undef bswap_16
+
+/* Define to 32-bit byteswap macro */
+#undef bswap_32
+
+/* Define to 64-bit byteswap macro */
+#undef bswap_64
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ati-6.8.192/configure.ac new/xf86-video-ati-6.9.0/configure.ac
--- old/xf86-video-ati-6.8.192/configure.ac 2008-06-25 03:00:36.000000000 +0200
+++ new/xf86-video-ati-6.9.0/configure.ac 2008-06-27 01:38:50.000000000 +0200
@@ -22,7 +22,7 @@
AC_PREREQ(2.57)
AC_INIT([xf86-video-ati],
- 6.8.192,
+ 6.9.0,
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
xf86-video-ati)
@@ -244,6 +244,66 @@
fi
AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes)
+# Checks for headers/macros for byte swapping
+# Known variants:
+# bswap_16, bswap_32, bswap_64 (glibc)
+# __swap16, __swap32, __swap64 (OpenBSD)
+# bswap16, bswap32, bswap64 (other BSD's)
+# and a fallback to local macros if none of the above are found
+
+# if is found, assume it's the correct version
+AC_CHECK_HEADERS([byteswap.h])
+
+# if is found, have to check which version
+AC_CHECK_HEADER([sys/endian.h], [HAVE_SYS_ENDIAN_H="yes"], [HAVE_SYS_ENDIAN_H="no"])
+
+if test "x$HAVE_SYS_ENDIAN_H" = "xyes" ; then
+ AC_MSG_CHECKING([for __swap16 variant of byteswapping macros])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([
+#include
+#include
+ ], [
+int a = 1, b;
+b = __swap16(a);
+ ])
+], [SYS_ENDIAN__SWAP='yes'], [SYS_ENDIAN__SWAP='no'])
+ AC_MSG_RESULT([$SYS_ENDIAN__SWAP])
+
+ AC_MSG_CHECKING([for bswap16 variant of byteswapping macros])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([
+#include
+#include
+ ], [
+int a = 1, b;
+b = bswap16(a);
+ ])
+], [SYS_ENDIAN_BSWAP='yes'], [SYS_ENDIAN_BSWAP='no'])
+ AC_MSG_RESULT([$SYS_ENDIAN_BSWAP])
+
+ if test "$SYS_ENDIAN_BSWAP" = "yes" ; then
+ USE_SYS_ENDIAN_H=yes
+ BSWAP=bswap
+ else
+ if test "$SYS_ENDIAN__SWAP" = "yes" ; then
+ USE_SYS_ENDIAN_H=yes
+ BSWAP=__swap
+ else
+ USE_SYS_ENDIAN_H=no
+ fi
+ fi
+
+ if test "$USE_SYS_ENDIAN_H" = "yes" ; then
+ AC_DEFINE([USE_SYS_ENDIAN_H], 1,
+ [Define to use byteswap macros from ])
+ AC_DEFINE_UNQUOTED([bswap_16], ${BSWAP}16,
+ [Define to 16-bit byteswap macro])
+ AC_DEFINE_UNQUOTED([bswap_32], ${BSWAP}32,
+ [Define to 32-bit byteswap macro])
+ AC_DEFINE_UNQUOTED([bswap_64], ${BSWAP}64,
+ [Define to 64-bit byteswap macro])
+ fi
+fi
+
case $host_os in
*linux*)
AC_DEFINE(FGL_LINUX, 1, [Use linux pragma pack]) ;;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ati-6.8.192/missing new/xf86-video-ati-6.9.0/missing
--- old/xf86-video-ati-6.8.192/missing 2007-11-27 20:32:08.000000000 +0100
+++ new/xf86-video-ati-6.9.0/missing 2008-01-29 02:01:28.000000000 +0100
@@ -1,9 +1,9 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
-scriptversion=2005-06-08.21
+scriptversion=2006-05-10.23
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006
# Free Software Foundation, Inc.
# Originally by Fran,cois Pinard , 1996.
@@ -33,6 +33,8 @@
fi
run=:
+sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
+sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
# In the cases where this matters, `missing' is being run in the
# srcdir already.
@@ -44,7 +46,7 @@
msg="missing on your system"
-case "$1" in
+case $1 in
--run)
# Try to run requested program, and just exit if it succeeds.
run=
@@ -77,6 +79,7 @@
aclocal touch file \`aclocal.m4'
autoconf touch file \`configure'
autoheader touch file \`config.h.in'
+ autom4te touch the output file, or create a stub one
automake touch all \`Makefile.in' files
bison create \`y.tab.[ch]', if possible, from existing .[ch]
flex create \`lex.yy.c', if possible, from existing .c
@@ -106,7 +109,7 @@
# Now exit if we have it, but it failed. Also exit now if we
# don't have it and --version was passed (most likely to detect
# the program).
-case "$1" in
+case $1 in
lex|yacc)
# Not GNU programs, they don't have --version.
;;
@@ -135,7 +138,7 @@
# If it does not exist, or fails to run (possibly an outdated version),
# try to emulate it.
-case "$1" in
+case $1 in
aclocal*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
@@ -164,7 +167,7 @@
test -z "$files" && files="config.h"
touch_files=
for f in $files; do
- case "$f" in
+ case $f in
*:*) touch_files="$touch_files "`echo "$f" |
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
*) touch_files="$touch_files $f.in";;
@@ -192,8 +195,8 @@
You can get \`$1' as part of \`Autoconf' from any GNU
archive site."
- file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
- test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
if test -f "$file"; then
touch $file
else
@@ -214,25 +217,25 @@
in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site."
rm -f y.tab.c y.tab.h
- if [ $# -ne 1 ]; then
+ if test $# -ne 1; then
eval LASTARG="\${$#}"
- case "$LASTARG" in
+ case $LASTARG in
*.y)
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
- if [ -f "$SRCFILE" ]; then
+ if test -f "$SRCFILE"; then
cp "$SRCFILE" y.tab.c
fi
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
- if [ -f "$SRCFILE" ]; then
+ if test -f "$SRCFILE"; then
cp "$SRCFILE" y.tab.h
fi
;;
esac
fi
- if [ ! -f y.tab.h ]; then
+ if test ! -f y.tab.h; then
echo >y.tab.h
fi
- if [ ! -f y.tab.c ]; then
+ if test ! -f y.tab.c; then
echo 'main() { return 0; }' >y.tab.c
fi
;;
@@ -244,18 +247,18 @@
in order for those modifications to take effect. You can get
\`Flex' from any GNU archive site."
rm -f lex.yy.c
- if [ $# -ne 1 ]; then
+ if test $# -ne 1; then
eval LASTARG="\${$#}"
- case "$LASTARG" in
+ case $LASTARG in
*.l)
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
- if [ -f "$SRCFILE" ]; then
+ if test -f "$SRCFILE"; then
cp "$SRCFILE" lex.yy.c
fi
;;
esac
fi
- if [ ! -f lex.yy.c ]; then
+ if test ! -f lex.yy.c; then
echo 'main() { return 0; }' >lex.yy.c
fi
;;
@@ -267,11 +270,9 @@
\`Help2man' package in order for those modifications to take
effect. You can get \`Help2man' from any GNU archive site."
- file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
- if test -z "$file"; then
- file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
- fi
- if [ -f "$file" ]; then
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ if test -f "$file"; then
touch $file
else
test -z "$file" || exec >$file
@@ -289,11 +290,17 @@
DU, IRIX). You might want to install the \`Texinfo' package or
the \`GNU make' package. Grab either from any GNU archive site."
# The file to touch is that specified with -o ...
- file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
if test -z "$file"; then
# ... or it is the one specified with @setfilename ...
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
- file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
+ file=`sed -n '
+ /^@setfilename/{
+ s/.* \([^ ]*\) *$/\1/
+ p
+ q
+ }' $infile`
# ... or it is derived from the source name (dir/f.texi becomes f.info)
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
fi
@@ -317,13 +324,13 @@
fi
firstarg="$1"
if shift; then
- case "$firstarg" in
+ case $firstarg in
*o*)
firstarg=`echo "$firstarg" | sed s/o//`
tar "$firstarg" "$@" && exit 0
;;
esac
- case "$firstarg" in
+ case $firstarg in
*h*)
firstarg=`echo "$firstarg" | sed s/h//`
tar "$firstarg" "$@" && exit 0
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ati-6.8.192/src/modes/xf86Crtc.c new/xf86-video-ati-6.9.0/src/modes/xf86Crtc.c
--- old/xf86-video-ati-6.8.192/src/modes/xf86Crtc.c 2008-04-29 21:48:18.000000000 +0200
+++ new/xf86-video-ati-6.9.0/src/modes/xf86Crtc.c 2008-06-23 17:24:41.000000000 +0200
@@ -1137,10 +1137,10 @@
output->initial_x += xf86ModeWidth (modes[or], relative->initial_rotation);
break;
case OPTION_ABOVE:
- output->initial_y -= xf86ModeHeight (modes[o], relative->initial_rotation);
+ output->initial_y -= xf86ModeHeight (modes[o], output->initial_rotation);
break;
case OPTION_LEFT_OF:
- output->initial_x -= xf86ModeWidth (modes[o], relative->initial_rotation);
+ output->initial_x -= xf86ModeWidth (modes[o], output->initial_rotation);
break;
default:
break;
@@ -1300,6 +1300,50 @@
return preferred_mode;
}
+static void
+GuessRangeFromModes(MonPtr mon, DisplayModePtr mode)
+{
+ if (!mon || !mode)
+ return;
+
+ mon->nHsync = 1;
+ mon->hsync[0].lo = 1024.0;
+ mon->hsync[0].hi = 0.0;
+
+ mon->nVrefresh = 1;
+ mon->vrefresh[0].lo = 1024.0;
+ mon->vrefresh[0].hi = 0.0;
+
+ while (mode) {
+ if (!mode->HSync)
+ mode->HSync = ((float) mode->Clock ) / ((float) mode->HTotal);
+
+ if (!mode->VRefresh)
+ mode->VRefresh = (1000.0 * ((float) mode->Clock)) /
+ ((float) (mode->HTotal * mode->VTotal));
+
+ if (mode->HSync < mon->hsync[0].lo)
+ mon->hsync[0].lo = mode->HSync;
+
+ if (mode->HSync > mon->hsync[0].hi)
+ mon->hsync[0].hi = mode->HSync;
+
+ if (mode->VRefresh < mon->vrefresh[0].lo)
+ mon->vrefresh[0].lo = mode->VRefresh;
+
+ if (mode->VRefresh > mon->vrefresh[0].hi)
+ mon->vrefresh[0].hi = mode->VRefresh;
+
+ mode = mode->next;
+ }
+
+ /* stretch out the bottom to fit 640x480@60 */
+ if (mon->hsync[0].lo > 31.0)
+ mon->hsync[0].lo = 31.0;
+ if (mon->vrefresh[0].lo > 58.0)
+ mon->vrefresh[0].lo = 58.0;
+}
+
_X_EXPORT void
xf86ProbeOutputModes (ScrnInfoPtr scrn, int maxX, int maxY)
{
@@ -1417,6 +1461,10 @@
OPTUNITS_KHZ, &clock))
max_clock = (int) clock;
+ /* If we still don't have a sync range, guess wildly */
+ if (!mon_rec.nHsync || !mon_rec.nVrefresh)
+ GuessRangeFromModes(&mon_rec, output_modes);
+
/*
* These limits will end up setting a 1024x768@60Hz mode by default,
* which seems like a fairly good mode to use when nothing else is
@@ -1436,7 +1484,14 @@
}
default_modes = xf86GetDefaultModes (output->interlaceAllowed,
output->doubleScanAllowed);
-
+
+ /*
+ * If this is not an RB monitor, remove RB modes from the default
+ * pool. RB modes from the config or the monitor itself are fine.
+ */
+ if (!mon_rec.reducedblanking)
+ xf86ValidateModesReducedBlanking (scrn, default_modes);
+
if (sync_source == sync_config)
{
/*
@@ -1545,6 +1600,98 @@
_X_EXPORT void
xf86RandR12GetOriginalVirtualSize(ScrnInfoPtr scrn, int *x, int *y);
+static DisplayModePtr
+biggestMode(DisplayModePtr a, DisplayModePtr b)
+{
+ int A, B;
+
+ if (!a)
+ return b;
+ if (!b)
+ return a;
+
+ A = a->HDisplay * a->VDisplay;
+ B = b->HDisplay * b->VDisplay;
+
+ if (A > B)
+ return a;
+
+ return b;
+}
+
+static xf86OutputPtr
+SetCompatOutput(xf86CrtcConfigPtr config)
+{
+ xf86OutputPtr output = NULL, test = NULL;
+ DisplayModePtr maxmode = NULL, testmode, mode;
+ int o, compat = -1, count, mincount = 0;
+
+ /* Look for one that's definitely connected */
+ for (o = 0; o < config->num_output; o++)
+ {
+ test = config->output[o];
+ if (!test->crtc)
+ continue;
+ if (test->status != XF86OutputStatusConnected)
+ continue;
+ if (!test->probed_modes)
+ continue;
+
+ testmode = mode = test->probed_modes;
+ for (count = 0; mode; mode = mode->next, count++)
+ testmode = biggestMode(testmode, mode);
+
+ if (!output) {
+ output = test;
+ compat = o;
+ maxmode = testmode;
+ mincount = count;
+ } else if (maxmode == biggestMode(maxmode, testmode)) {
+ output = test;
+ compat = o;
+ maxmode = testmode;
+ mincount = count;
+ } else if ((maxmode->HDisplay == testmode->HDisplay) &&
+ (maxmode->VDisplay == testmode->VDisplay) &&
+ count <= mincount) {
+ output = test;
+ compat = o;
+ maxmode = testmode;
+ mincount = count;
+ }
+ }
+
+ /* If we didn't find one, take anything we can get */
+ if (!output)
+ {
+ for (o = 0; o < config->num_output; o++)
+ {
+ test = config->output[o];
+ if (!test->crtc)
+ continue;
+ if (!test->probed_modes)
+ continue;
+
+ if (!output) {
+ output = test;
+ compat = o;
+ } else if (test->probed_modes->HDisplay < output->probed_modes->HDisplay) {
+ output = test;
+ compat = o;
+ }
+ }
+ }
+
+ if (compat >= 0) {
+ config->compat_output = compat;
+ } else {
+ /* Don't change the compat output when no valid outputs found */
+ output = config->output[config->compat_output];
+ }
+
+ return output;
+}
+
_X_EXPORT void
xf86SetScrnInfoModes (ScrnInfoPtr scrn)
{
@@ -1553,23 +1700,11 @@
xf86CrtcPtr crtc;
DisplayModePtr last, mode;
- output = config->output[config->compat_output];
- if (!output->crtc)
- {
- int o;
+ output = SetCompatOutput(config);
+
+ if (!output)
+ return; /* punt */
- output = NULL;
- for (o = 0; o < config->num_output; o++)
- if (config->output[o]->crtc)
- {
- config->compat_output = o;
- output = config->output[o];
- break;
- }
- /* no outputs are active, punt and leave things as they are */
- if (!output)
- return;
- }
crtc = output->crtc;
/* Clear any existing modes from scrn->modes */
@@ -1633,46 +1768,65 @@
}
static Bool
-xf86TargetExact(ScrnInfoPtr scrn, xf86CrtcConfigPtr config,
- DisplayModePtr *modes, Bool *enabled,
- int width, int height)
-{
- int o;
- int pref_width = 0, pref_height = 0;
- DisplayModePtr *preferred;
+xf86TargetPreferred(ScrnInfoPtr scrn, xf86CrtcConfigPtr config,
+ DisplayModePtr *modes, Bool *enabled,
+ int width, int height)
+{
+ int o, p;
+ int max_pref_width = 0, max_pref_height = 0;
+ DisplayModePtr *preferred, *preferred_match;
Bool ret = FALSE;
preferred = xnfcalloc(config->num_output, sizeof(DisplayModePtr));
+ preferred_match = xnfcalloc(config->num_output, sizeof(DisplayModePtr));
- /* Find all the preferred modes; fail if any outputs lack them */
- for (o = -1; nextEnabledOutput(config, enabled, &o); ) {
- preferred[o] =
- xf86OutputHasPreferredMode(config->output[o], width, height);
+ /* Check if the preferred mode is available on all outputs */
+ for (p = -1; nextEnabledOutput(config, enabled, &p); ) {
+ Rotation r = config->output[p]->initial_rotation;
+ DisplayModePtr mode;
+ if ((preferred[p] = xf86OutputHasPreferredMode(config->output[p],
+ width, height))) {
+ int pref_width = xf86ModeWidth(preferred[p], r);
+ int pref_height = xf86ModeHeight(preferred[p], r);
+ Bool all_match = TRUE;
+
+ for (o = -1; nextEnabledOutput(config, enabled, &o); ) {
+ Bool match = FALSE;
+ xf86OutputPtr output = config->output[o];
+ if (o == p)
+ continue;
+
+ for (mode = output->probed_modes; mode; mode = mode->next) {
+ Rotation r = output->initial_rotation;
+ if (xf86ModeWidth(mode, r) == pref_width &&
+ xf86ModeHeight(mode, r) == pref_height) {
+ preferred[o] = mode;
+ match = TRUE;
+ }
+ }
- if (!preferred[o])
- goto out;
- }
+ all_match &= match;
+ }
- /* check that they're all the same size */
- for (o = -1; nextEnabledOutput(config, enabled, &o); ) {
- Rotation r = config->output[o]->initial_rotation;
- if (!pref_width) {
- pref_width = xf86ModeWidth(preferred[o], r);
- pref_height = xf86ModeHeight(preferred[o], r);
- } else {
- if (pref_width != xf86ModeWidth(preferred[o], r))
- goto out;
- if (pref_height != xf86ModeHeight(preferred[o], r))
- goto out;
+ if (all_match &&
+ (pref_width*pref_height > max_pref_width*max_pref_height)) {
+ for (o = -1; nextEnabledOutput(config, enabled, &o); )
+ preferred_match[o] = preferred[o];
+ max_pref_width = pref_width;
+ max_pref_height = pref_height;
+ ret = TRUE;
+ }
}
}
- /* oh good, they match. stash the selected modes and return. */
- memcpy(modes, preferred, config->num_output * sizeof(DisplayModePtr));
- ret = TRUE;
+ if (ret) {
+ /* oh good, there is a match. stash the selected modes and return. */
+ memcpy(modes, preferred_match,
+ config->num_output * sizeof(DisplayModePtr));
+ }
-out:
xfree(preferred);
+ xfree(preferred_match);
return ret;
}
@@ -1710,6 +1864,7 @@
nextEnabledOutput(config, enabled, &o);
while ((mode = nextAspectMode(config->output[o], mode, aspect))) {
+ test = mode;
for (p = o; nextEnabledOutput(config, enabled, &p); ) {
test = xf86OutputFindClosestMode(config->output[p], mode);
if (!test)
@@ -1734,25 +1889,6 @@
return match;
}
-static DisplayModePtr
-biggestMode(DisplayModePtr a, DisplayModePtr b)
-{
- int A, B;
-
- if (!a)
- return b;
- if (!b)
- return a;
-
- A = a->HDisplay * a->VDisplay;
- B = b->HDisplay * b->VDisplay;
-
- if (A > B)
- return a;
-
- return b;
-}
-
static Bool
xf86TargetAspect(ScrnInfoPtr scrn, xf86CrtcConfigPtr config,
DisplayModePtr *modes, Bool *enabled,
@@ -1917,7 +2053,7 @@
if (xf86TargetUserpref(scrn, config, modes, enabled, width, height))
xf86DrvMsg(i, X_INFO, "Using user preference for initial modes\n");
- else if (xf86TargetExact(scrn, config, modes, enabled, width, height))
+ else if (xf86TargetPreferred(scrn, config, modes, enabled, width, height))
xf86DrvMsg(i, X_INFO, "Using exact sizes for initial modes\n");
else if (xf86TargetAspect(scrn, config, modes, enabled, width, height))
xf86DrvMsg(i, X_INFO, "Using fuzzy aspect match for initial modes\n");
@@ -1989,6 +2125,8 @@
crtc->x = output->initial_x;
crtc->y = output->initial_y;
output->crtc = crtc;
+ } else {
+ output->crtc = NULL;
}
}
@@ -2115,6 +2253,10 @@
xf86OutputPtr output = NULL;
int o;
+ /* Skip disabled CRTCs */
+ if (!crtc->enabled)
+ continue;
+
if (config->output[config->compat_output]->crtc == crtc)
output = config->output[config->compat_output];
else
@@ -2126,9 +2268,7 @@
break;
}
}
- /*
- * Skip disabled crtcs
- */
+ /* paranoia */
if (!output)
continue;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ati-6.8.192/src/modes/xf86Cursors.c new/xf86-video-ati-6.9.0/src/modes/xf86Cursors.c
--- old/xf86-video-ati-6.8.192/src/modes/xf86Cursors.c 2008-04-29 21:48:18.000000000 +0200
+++ new/xf86-video-ati-6.9.0/src/modes/xf86Cursors.c 2008-06-23 17:24:41.000000000 +0200
@@ -45,6 +45,7 @@
#include "picturestr.h"
#endif
#include "cursorstr.h"
+#include "inputstr.h"
/*
* Given a screen coordinate, rotate back to a cursor source coordinate
@@ -595,8 +596,10 @@
CursorPtr cursor;
int x, y;
- /* initial mode setting will not have set a screen yet */
- if (!screen)
+ /* initial mode setting will not have set a screen yet.
+ May be called before the devices are initialised.
+ */
+ if (!screen || !inputInfo.pointer)
return;
scrn = xf86Screens[screen->myNum];
xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
@@ -607,24 +610,23 @@
return;
cursor = xf86_config->cursor;
- GetSpritePosition (&x, &y);
+ GetSpritePosition (inputInfo.pointer, &x, &y);
if (!(cursor_info->Flags & HARDWARE_CURSOR_UPDATE_UNHIDDEN))
(*cursor_info->HideCursor)(scrn);
if (cursor)
{
+#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(7,0,0,0,0)
+ void *src = dixLookupPrivate(&cursor->devPrivates, screen);
+#else
+ void *src = cursor->devPriv[screen->myNum];
+#endif
#ifdef ARGB_CURSOR
if (cursor->bits->argb && cursor_info->LoadCursorARGB)
(*cursor_info->LoadCursorARGB) (scrn, cursor);
- else
-#endif
- (*cursor_info->LoadCursorImage)(cursor_info->pScrn,
-#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(7,0,0,0,0)
- dixLookupPrivate(&cursor->devPrivates, screen)
-#else
- cursor->devPriv[screen->myNum]
+ else if (src)
#endif
- );
+ (*cursor_info->LoadCursorImage)(cursor_info->pScrn, src);
(*cursor_info->SetCursorPosition)(cursor_info->pScrn, x, y);
(*cursor_info->ShowCursor)(cursor_info->pScrn);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ati-6.8.192/src/modes/xf86EdidModes.c new/xf86-video-ati-6.9.0/src/modes/xf86EdidModes.c
--- old/xf86-video-ati-6.8.192/src/modes/xf86EdidModes.c 2008-04-29 21:48:18.000000000 +0200
+++ new/xf86-video-ati-6.9.0/src/modes/xf86EdidModes.c 2008-06-23 17:24:41.000000000 +0200
@@ -363,7 +363,7 @@
/* We only do seperate sync currently */
if (timing->sync != 0x03) {
xf86DrvMsg(scrnIndex, X_INFO,
- "%s: %dx%d Warning: We only handle seperate"
+ "%s: %dx%d Warning: We only handle separate"
" sync.\n", __func__, timing->h_active, timing->v_active);
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ati-6.8.192/src/modes/xf86Modes.c new/xf86-video-ati-6.9.0/src/modes/xf86Modes.c
--- old/xf86-video-ati-6.8.192/src/modes/xf86Modes.c 2008-04-29 21:48:18.000000000 +0200
+++ new/xf86-video-ati-6.9.0/src/modes/xf86Modes.c 2008-06-23 17:24:41.000000000 +0200
@@ -519,6 +519,28 @@
}
/**
+ * Marks as bad any reduced-blanking modes.
+ *
+ * \param modeList doubly-linked list of modes.
+ */
+_X_EXPORT void
+xf86ValidateModesReducedBlanking(ScrnInfoPtr pScrn, DisplayModePtr modeList)
+{
+ Bool mode_is_reduced = FALSE;
+ DisplayModePtr mode;
+
+ for (mode = modeList; mode != NULL; mode = mode->next) {
+ /* gratuitous duplication from pre-randr validation code */
+ if ((((mode->HDisplay * 5 / 4) & ~0x07) > mode->HTotal) &&
+ ((mode->HTotal - mode->HDisplay) == 160) &&
+ ((mode->HSyncEnd - mode->HDisplay) == 80) &&
+ ((mode->HSyncEnd - mode->HSyncStart) == 32) &&
+ ((mode->VSyncStart - mode->VDisplay) == 3))
+ mode->status = MODE_NO_REDUCED;
+ }
+}
+
+/**
* Frees any modes from the list with a status other than MODE_OK.
*
* \param modeList pointer to a doubly-linked or circular list of modes.
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ati-6.8.192/src/modes/xf86Modes.h new/xf86-video-ati-6.9.0/src/modes/xf86Modes.h
--- old/xf86-video-ati-6.8.192/src/modes/xf86Modes.h 2008-04-29 21:48:18.000000000 +0200
+++ new/xf86-video-ati-6.9.0/src/modes/xf86Modes.h 2008-06-23 17:24:41.000000000 +0200
@@ -85,6 +85,9 @@
unsigned int bandwidth, int depth);
void
+xf86ValidateModesReducedBlanking(ScrnInfoPtr pScrn, DisplayModePtr modeList);
+
+void
xf86PruneInvalidModes(ScrnInfoPtr pScrn, DisplayModePtr *modeList,
Bool verbose);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ati-6.8.192/src/modes/xf86RandR12.c new/xf86-video-ati-6.9.0/src/modes/xf86RandR12.c
--- old/xf86-video-ati-6.8.192/src/modes/xf86RandR12.c 2008-04-29 21:48:18.000000000 +0200
+++ new/xf86-video-ati-6.9.0/src/modes/xf86RandR12.c 2008-06-23 17:24:41.000000000 +0200
@@ -37,6 +37,7 @@
#include "xf86DDC.h"
#include "mipointer.h"
#include "windowstr.h"
+#include "inputstr.h"
#include
#include
@@ -129,9 +130,7 @@
return FALSE;
RRRegisterRate (pScreen, pSize, refresh);
- if (xf86ModesEqual(mode, scrp->currentMode) &&
- mode->HDisplay == scrp->virtualX &&
- mode->VDisplay == scrp->virtualY)
+ if (xf86ModesEqual(mode, scrp->currentMode))
{
RRSetCurrentConfig (pScreen, randrp->rotation, refresh, pSize);
}
@@ -259,7 +258,7 @@
randrp->virtualY = scrp->virtualY;
}
- miPointerPosition (&px, &py);
+ miPointerGetPosition (inputInfo.pointer, &px, &py);
for (mode = scrp->modes; ; mode = mode->next)
{
if (randrp->maxX == 0 || randrp->maxY == 0)
@@ -306,14 +305,14 @@
/*
* Move the cursor back where it belongs; SwitchMode repositions it
*/
- if (pScreen == miPointerCurrentScreen ())
+ if (pScreen == miPointerGetScreen(inputInfo.pointer))
{
px = (px >= pScreen->width ? (pScreen->width - 1) : px);
py = (py >= pScreen->height ? (pScreen->height - 1) : py);
xf86SetViewport(pScreen, px, py);
- (*pScreen->SetCursorPosition) (pScreen, px, py, FALSE);
+ (*pScreen->SetCursorPosition) (inputInfo.pointer, pScreen, px, py, FALSE);
}
return TRUE;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ati-6.8.192/src/modes/xf86Rotate.c new/xf86-video-ati-6.9.0/src/modes/xf86Rotate.c
--- old/xf86-video-ati-6.8.192/src/modes/xf86Rotate.c 2008-04-29 21:48:18.000000000 +0200
+++ new/xf86-video-ati-6.9.0/src/modes/xf86Rotate.c 2008-06-23 17:24:41.000000000 +0200
@@ -597,6 +597,10 @@
}
else
{
+ int width, height, old_width, old_height;
+ void *shadowData;
+ PixmapPtr shadow;
+
PictureTransformTranslate (&crtc_to_fb, &fb_to_crtc, F(crtc->x), F(crtc->y));
PictureTransformIsInverse ("offset", &crtc_to_fb, &fb_to_crtc);
@@ -605,12 +609,12 @@
* matches the mode, not the pre-rotated copy in the
* frame buffer
*/
- int width = mode->HDisplay;
- int height = mode->VDisplay;
- void *shadowData = crtc->rotatedData;
- PixmapPtr shadow = crtc->rotatedPixmap;
- int old_width = shadow ? shadow->drawable.width : 0;
- int old_height = shadow ? shadow->drawable.height : 0;
+ width = mode->HDisplay;
+ height = mode->VDisplay;
+ shadowData = crtc->rotatedData;
+ shadow = crtc->rotatedPixmap;
+ old_width = shadow ? shadow->drawable.width : 0;
+ old_height = shadow ? shadow->drawable.height : 0;
/* Allocate memory for rotation */
if (old_width != width || old_height != height)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ati-6.8.192/src/radeon_accel.c new/xf86-video-ati-6.9.0/src/radeon_accel.c
--- old/xf86-video-ati-6.8.192/src/radeon_accel.c 2008-06-17 23:40:28.000000000 +0200
+++ new/xf86-video-ati-6.9.0/src/radeon_accel.c 2008-06-27 01:33:25.000000000 +0200
@@ -371,7 +371,7 @@
info->CurrentLayout.bitsPerPixel);
#ifdef XF86DRI
- if (info->directRenderingEnabled && (IS_R300_3D | IS_R500_3D)) {
+ if (info->directRenderingEnabled && (IS_R300_3D || IS_R500_3D)) {
drmRadeonGetParam np;
int num_pipes;
@@ -419,11 +419,11 @@
}
}
- if (IS_R300_3D | IS_R500_3D)
+ if (IS_R300_3D || IS_R500_3D)
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"num pipes is %d\n", info->num_gb_pipes);
- if (IS_R300_3D | IS_R500_3D) {
+ if (IS_R300_3D || IS_R500_3D) {
uint32_t gb_tile_config = (R300_ENABLE_TILING | R300_TILE_SIZE_16 | R300_SUBPIXEL_1_16);
switch(info->num_gb_pipes) {
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ati-6.8.192/src/radeon_accelfuncs.c new/xf86-video-ati-6.9.0/src/radeon_accelfuncs.c
--- old/xf86-video-ati-6.8.192/src/radeon_accelfuncs.c 2008-05-12 18:03:13.000000000 +0200
+++ new/xf86-video-ati-6.9.0/src/radeon_accelfuncs.c 2008-06-27 01:33:25.000000000 +0200
@@ -151,6 +151,11 @@
| RADEON_DST_Y_TOP_TO_BOTTOM));
FINISH_ACCEL();
+ BEGIN_ACCEL(2);
+ OUT_ACCEL_REG(RADEON_DSTCACHE_CTLSTAT, RADEON_RB2D_DC_FLUSH_ALL);
+ OUT_ACCEL_REG(RADEON_WAIT_UNTIL,
+ RADEON_WAIT_2D_IDLECLEAN | RADEON_WAIT_DMA_GUI_IDLE);
+ FINISH_ACCEL();
}
/* Subsequent XAA SolidFillRect
@@ -205,6 +210,11 @@
OUT_ACCEL_REG(RADEON_DP_WRITE_MASK, planemask);
FINISH_ACCEL();
+ BEGIN_ACCEL(2);
+ OUT_ACCEL_REG(RADEON_DSTCACHE_CTLSTAT, RADEON_RB2D_DC_FLUSH_ALL);
+ OUT_ACCEL_REG(RADEON_WAIT_UNTIL,
+ RADEON_WAIT_2D_IDLECLEAN | RADEON_WAIT_DMA_GUI_IDLE);
+ FINISH_ACCEL();
}
/* Subsequent XAA solid horizontal and vertical lines */
@@ -324,6 +334,11 @@
OUT_ACCEL_REG(RADEON_BRUSH_DATA0, pat);
FINISH_ACCEL();
+ BEGIN_ACCEL(2);
+ OUT_ACCEL_REG(RADEON_DSTCACHE_CTLSTAT, RADEON_RB2D_DC_FLUSH_ALL);
+ OUT_ACCEL_REG(RADEON_WAIT_UNTIL,
+ RADEON_WAIT_2D_IDLECLEAN | RADEON_WAIT_DMA_GUI_IDLE);
+ FINISH_ACCEL();
}
/* Helper function to draw last point for dashed lines */
@@ -358,6 +373,11 @@
OUT_ACCEL_REG(RADEON_DP_BRUSH_FRGD_CLR, info->dash_fg);
FINISH_ACCEL();
+ BEGIN_ACCEL(2);
+ OUT_ACCEL_REG(RADEON_DSTCACHE_CTLSTAT, RADEON_RB2D_DC_FLUSH_ALL);
+ OUT_ACCEL_REG(RADEON_WAIT_UNTIL,
+ RADEON_WAIT_2D_IDLECLEAN | RADEON_WAIT_DMA_GUI_IDLE);
+ FINISH_ACCEL();
}
/* Subsequent XAA dashed line */
@@ -461,6 +481,11 @@
(ydir >= 0 ? RADEON_DST_Y_TOP_TO_BOTTOM : 0)));
FINISH_ACCEL();
+ BEGIN_ACCEL(2);
+ OUT_ACCEL_REG(RADEON_DSTCACHE_CTLSTAT, RADEON_RB2D_DC_FLUSH_ALL);
+ OUT_ACCEL_REG(RADEON_WAIT_UNTIL,
+ RADEON_WAIT_2D_IDLECLEAN | RADEON_WAIT_DMA_GUI_IDLE);
+ FINISH_ACCEL();
info->trans_color = trans_color;
FUNC_NAME(RADEONSetTransparency)(pScrn, trans_color);
@@ -553,6 +578,11 @@
#endif
FINISH_ACCEL();
+ BEGIN_ACCEL(2);
+ OUT_ACCEL_REG(RADEON_DSTCACHE_CTLSTAT, RADEON_RB2D_DC_FLUSH_ALL);
+ OUT_ACCEL_REG(RADEON_WAIT_UNTIL,
+ RADEON_WAIT_2D_IDLECLEAN | RADEON_WAIT_DMA_GUI_IDLE);
+ FINISH_ACCEL();
}
/* Subsequent XAA 8x8 pattern color expansion. Because they are used in
@@ -1086,6 +1116,11 @@
OUT_ACCEL_REG(RADEON_SC_BOTTOM_RIGHT, tmp2);
FINISH_ACCEL();
+ BEGIN_ACCEL(2);
+ OUT_ACCEL_REG(RADEON_DSTCACHE_CTLSTAT, RADEON_RB2D_DC_FLUSH_ALL);
+ OUT_ACCEL_REG(RADEON_WAIT_UNTIL,
+ RADEON_WAIT_2D_IDLECLEAN | RADEON_WAIT_DMA_GUI_IDLE);
+ FINISH_ACCEL();
FUNC_NAME(RADEONSetTransparency)(pScrn, info->trans_color);
}
@@ -1105,6 +1140,11 @@
RADEON_DEFAULT_SC_BOTTOM_MAX));
FINISH_ACCEL();
+ BEGIN_ACCEL(2);
+ OUT_ACCEL_REG(RADEON_DSTCACHE_CTLSTAT, RADEON_RB2D_DC_FLUSH_ALL);
+ OUT_ACCEL_REG(RADEON_WAIT_UNTIL,
+ RADEON_WAIT_2D_IDLECLEAN | RADEON_WAIT_DMA_GUI_IDLE);
+ FINISH_ACCEL();
FUNC_NAME(RADEONSetTransparency)(pScrn, info->trans_color);
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ati-6.8.192/src/radeon_atombios.c new/xf86-video-ati-6.9.0/src/radeon_atombios.c
--- old/xf86-video-ati-6.8.192/src/radeon_atombios.c 2008-06-21 16:53:22.000000000 +0200
+++ new/xf86-video-ati-6.9.0/src/radeon_atombios.c 2008-06-27 01:33:25.000000000 +0200
@@ -1787,6 +1787,13 @@
continue;
}
#endif
+#if 1
+ if (i == ATOM_DEVICE_TV1_INDEX) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Skipping TV-Out\n");
+ info->BiosConnector[i].valid = FALSE;
+ continue;
+ }
+#endif
info->BiosConnector[i].valid = TRUE;
info->BiosConnector[i].output_id = ci.sucI2cId.sbfAccess.bfI2C_LineMux;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ati-6.8.192/src/radeon_exa.c new/xf86-video-ati-6.9.0/src/radeon_exa.c
--- old/xf86-video-ati-6.8.192/src/radeon_exa.c 2008-06-13 00:57:49.000000000 +0200
+++ new/xf86-video-ati-6.9.0/src/radeon_exa.c 2008-06-27 01:33:25.000000000 +0200
@@ -323,7 +323,7 @@
case EXA_ENGINEMODE_UNKNOWN: \
wait_until |= RADEON_WAIT_HOST_IDLECLEAN | RADEON_WAIT_3D_IDLECLEAN; \
case EXA_ENGINEMODE_2D: \
- wait_until |= RADEON_WAIT_2D_IDLECLEAN; \
+ wait_until |= RADEON_WAIT_2D_IDLECLEAN | RADEON_WAIT_DMA_GUI_IDLE; \
case EXA_ENGINEMODE_3D: \
break; \
} \
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ati-6.8.192/src/radeon_exa_funcs.c new/xf86-video-ati-6.9.0/src/radeon_exa_funcs.c
--- old/xf86-video-ati-6.8.192/src/radeon_exa_funcs.c 2008-06-19 18:38:36.000000000 +0200
+++ new/xf86-video-ati-6.9.0/src/radeon_exa_funcs.c 2008-06-27 01:33:25.000000000 +0200
@@ -124,7 +124,6 @@
static void
FUNC_NAME(RADEONSolid)(PixmapPtr pPix, int x1, int y1, int x2, int y2)
{
-
RINFO_FROM_SCREEN(pPix->drawable.pScreen);
ACCEL_PREAMBLE();
@@ -139,7 +138,16 @@
static void
FUNC_NAME(RADEONDoneSolid)(PixmapPtr pPix)
{
+ RINFO_FROM_SCREEN(pPix->drawable.pScreen);
+ ACCEL_PREAMBLE();
+
TRACE;
+
+ BEGIN_ACCEL(2);
+ OUT_ACCEL_REG(RADEON_DSTCACHE_CTLSTAT, RADEON_RB2D_DC_FLUSH_ALL);
+ OUT_ACCEL_REG(RADEON_WAIT_UNTIL,
+ RADEON_WAIT_2D_IDLECLEAN | RADEON_WAIT_DMA_GUI_IDLE);
+ FINISH_ACCEL();
}
void
@@ -206,7 +214,6 @@
int dstX, int dstY,
int w, int h)
{
-
RINFO_FROM_SCREEN(pDst->drawable.pScreen);
ACCEL_PREAMBLE();
@@ -233,7 +240,16 @@
static void
FUNC_NAME(RADEONDoneCopy)(PixmapPtr pDst)
{
+ RINFO_FROM_SCREEN(pDst->drawable.pScreen);
+ ACCEL_PREAMBLE();
+
TRACE;
+
+ BEGIN_ACCEL(2);
+ OUT_ACCEL_REG(RADEON_DSTCACHE_CTLSTAT, RADEON_RB2D_DC_FLUSH_ALL);
+ OUT_ACCEL_REG(RADEON_WAIT_UNTIL,
+ RADEON_WAIT_2D_IDLECLEAN | RADEON_WAIT_DMA_GUI_IDLE);
+ FINISH_ACCEL();
}
static Bool
@@ -343,6 +359,11 @@
OUT_ACCEL_REG(RADEON_DST_Y_X, (dstY << 16) | dstX);
OUT_ACCEL_REG(RADEON_DST_HEIGHT_WIDTH, (h << 16) | w);
FINISH_ACCEL();
+ BEGIN_ACCEL(2);
+ OUT_ACCEL_REG(RADEON_DSTCACHE_CTLSTAT, RADEON_RB2D_DC_FLUSH_ALL);
+ OUT_ACCEL_REG(RADEON_WAIT_UNTIL,
+ RADEON_WAIT_2D_IDLECLEAN | RADEON_WAIT_DMA_GUI_IDLE);
+ FINISH_ACCEL();
}
#endif
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ati-6.8.192/src/radeon_exa_render.c new/xf86-video-ati-6.9.0/src/radeon_exa_render.c
--- old/xf86-video-ati-6.8.192/src/radeon_exa_render.c 2008-06-13 08:18:19.000000000 +0200
+++ new/xf86-video-ati-6.9.0/src/radeon_exa_render.c 2008-06-27 01:33:25.000000000 +0200
@@ -1978,7 +1978,7 @@
RADEON_CP_VC_CNTL_VTX_FMT_RADEON_MODE |
(4 << RADEON_CP_VC_CNTL_NUM_SHIFT));
} else {
- if (IS_R300_3D | IS_R500_3D)
+ if (IS_R300_3D || IS_R500_3D)
BEGIN_RING(4 * vtx_count + 4);
else
BEGIN_RING(4 * vtx_count + 2);
@@ -1991,7 +1991,7 @@
}
#else /* ACCEL_CP */
- if (IS_R300_3D | IS_R500_3D)
+ if (IS_R300_3D || IS_R500_3D)
BEGIN_ACCEL(2 + vtx_count * 4);
else
BEGIN_ACCEL(1 + vtx_count * 4);
@@ -2032,7 +2032,7 @@
xFixedToFloat(srcTopRight.x) / info->texW[0], xFixedToFloat(srcTopRight.y) / info->texH[0]);
}
- if (IS_R300_3D | IS_R500_3D)
+ if (IS_R300_3D || IS_R500_3D)
/* flushing is pipelined, free/finish is not */
OUT_ACCEL_REG(R300_RB3D_DSTCACHE_CTLSTAT, R300_DC_FLUSH_3D);
@@ -2114,18 +2114,13 @@
ENTER_DRAW(0);
- if (IS_R500_3D || ((info->ChipFamily == CHIP_FAMILY_RS400) ||
- (info->ChipFamily == CHIP_FAMILY_RS480) ||
- (info->ChipFamily == CHIP_FAMILY_RS600) ||
- (info->ChipFamily == CHIP_FAMILY_RS690) ||
- (info->ChipFamily == CHIP_FAMILY_RS740))) {
- /* r500 shows corruption on small things like glyphs without a 3D idle
- * IGP shows more substantial corruption
- */
+ if (IS_R300_3D || IS_R500_3D) {
+ BEGIN_ACCEL(2);
+ OUT_ACCEL_REG(R300_RB3D_DSTCACHE_CTLSTAT, R300_RB3D_DC_FLUSH_ALL);
+ } else
BEGIN_ACCEL(1);
- OUT_ACCEL_REG(RADEON_WAIT_UNTIL, RADEON_WAIT_3D_IDLECLEAN);
- FINISH_ACCEL();
- }
+ OUT_ACCEL_REG(RADEON_WAIT_UNTIL, RADEON_WAIT_3D_IDLECLEAN);
+ FINISH_ACCEL();
LEAVE_DRAW(0);
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ati-6.8.192/src/radeon_macros.h new/xf86-video-ati-6.9.0/src/radeon_macros.h
--- old/xf86-video-ati-6.8.192/src/radeon_macros.h 2008-06-13 16:36:29.000000000 +0200
+++ new/xf86-video-ati-6.9.0/src/radeon_macros.h 2008-06-27 01:33:25.000000000 +0200
@@ -51,7 +51,23 @@
#include "compiler.h"
+#if HAVE_BYTESWAP_H
#include
+#elif defined(USE_SYS_ENDIAN_H)
+#include
+#else
+#define bswap_16(value) \
+ ((((value) & 0xff) << 8) | ((value) >> 8))
+
+#define bswap_32(value) \
+ (((uint32_t)bswap_16((uint16_t)((value) & 0xffff)) << 16) | \
+ (uint32_t)bswap_16((uint16_t)((value) >> 16)))
+
+#define bswap_64(value) \
+ (((uint64_t)bswap_32((uint32_t)((value) & 0xffffffff)) \
+ << 32) | \
+ (uint64_t)bswap_32((uint32_t)((value) >> 32)))
+#endif
#if X_BYTE_ORDER == X_BIG_ENDIAN
#define le32_to_cpu(x) bswap_32(x)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ati-6.8.192/src/radeon_reg.h new/xf86-video-ati-6.9.0/src/radeon_reg.h
--- old/xf86-video-ati-6.8.192/src/radeon_reg.h 2008-06-13 01:23:05.000000000 +0200
+++ new/xf86-video-ati-6.9.0/src/radeon_reg.h 2008-06-27 01:33:25.000000000 +0200
@@ -1458,6 +1458,7 @@
# define RADEON_RB2D_DC_FLUSH_ALL 0xf
# define RADEON_RB2D_DC_BUSY (1 << 31)
#define RADEON_RB2D_DSTCACHE_MODE 0x3428
+#define RADEON_DSTCACHE_CTLSTAT 0x1714
#define RADEON_RB3D_ZCACHE_MODE 0x3250
#define RADEON_RB3D_ZCACHE_CTLSTAT 0x3254
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ati-6.8.192/src/radeon_textured_videofuncs.c new/xf86-video-ati-6.9.0/src/radeon_textured_videofuncs.c
--- old/xf86-video-ati-6.8.192/src/radeon_textured_videofuncs.c 2008-06-17 23:51:40.000000000 +0200
+++ new/xf86-video-ati-6.9.0/src/radeon_textured_videofuncs.c 2008-06-27 01:33:25.000000000 +0200
@@ -117,7 +117,10 @@
OUT_VIDEO_REG(RADEON_RB3D_DSTCACHE_CTLSTAT, RADEON_RB3D_DC_FLUSH);
/* We must wait for 3d to idle, in case source was just written as a dest. */
OUT_VIDEO_REG(RADEON_WAIT_UNTIL,
- RADEON_WAIT_HOST_IDLECLEAN | RADEON_WAIT_2D_IDLECLEAN | RADEON_WAIT_3D_IDLECLEAN);
+ RADEON_WAIT_HOST_IDLECLEAN |
+ RADEON_WAIT_2D_IDLECLEAN |
+ RADEON_WAIT_3D_IDLECLEAN |
+ RADEON_WAIT_DMA_GUI_IDLE);
FINISH_VIDEO();
if (IS_R300_3D || IS_R500_3D) {
@@ -640,6 +643,14 @@
pBox++;
}
+ if (IS_R300_3D || IS_R500_3D) {
+ BEGIN_VIDEO(2);
+ OUT_VIDEO_REG(R300_RB3D_DSTCACHE_CTLSTAT, R300_RB3D_DC_FLUSH_ALL);
+ } else
+ BEGIN_VIDEO(1);
+ OUT_VIDEO_REG(RADEON_WAIT_UNTIL, RADEON_WAIT_3D_IDLECLEAN);
+ FINISH_VIDEO();
+
DamageDamageRegion(pPriv->pDraw, &pPriv->clip);
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org