commit xf86-video-geode for openSUSE:Factory
Hello community, here is the log from the commit of package xf86-video-geode for openSUSE:Factory checked in at 2012-12-28 22:50:39 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xf86-video-geode (Old) and /work/SRC/openSUSE:Factory/.xf86-video-geode.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "xf86-video-geode", Maintainer is "" Changes: -------- --- /work/SRC/openSUSE:Factory/xf86-video-geode/xf86-video-geode.changes 2012-09-26 10:11:54.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.xf86-video-geode.new/xf86-video-geode.changes 2012-12-28 22:50:45.000000000 +0100 @@ -1,0 +2,13 @@ +Sun Dec 23 00:05:59 UTC 2012 - zaitor@opensuse.org + +- Update to version 2.11.14: + + Better compatibility with xserver-1.13, cairo-1.12 and gtk3. + + Fix building on Xservers without XAA. + + Fix building with new xserver-1.13 API. + + Implement solid source pictures acceleration. + + Handle negative srcX and srcY parameters better in EXA Composite + operations, used via the RENDER extension. fdo#51360 + + Fix builds for exotic and/or non-target platforms. + + Clarify the copyright of older AMD commits. + +------------------------------------------------------------------- Old: ---- xf86-video-geode-2.11.13_4a20e8a.tar.bz2 New: ---- xf86-video-geode-2.11.14.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xf86-video-geode.spec ++++++ --- /var/tmp/diff_new_pack.MKcQz4/_old 2012-12-28 22:50:46.000000000 +0100 +++ /var/tmp/diff_new_pack.MKcQz4/_new 2012-12-28 22:50:46.000000000 +0100 @@ -17,13 +17,13 @@ Name: xf86-video-geode -Version: 2.11.13 +Version: 2.11.14 Release: 0 Summary: AMD Geode GX and LX video driver for the Xorg X server License: MIT Group: System/X11/Servers/XF86_4 Url: http://xorg.freedesktop.org/ -Source0: %{name}-%{version}_4a20e8a.tar.bz2 +Source0: http://xorg.freedesktop.org/releases/individual/driver/%{name}-%{version}.tar.bz2 BuildRequires: pkg-config BuildRequires: pkgconfig(fontsproto) BuildRequires: pkgconfig(pciaccess) >= 0.8.0 ++++++ xf86-video-geode-2.11.13_4a20e8a.tar.bz2 -> xf86-video-geode-2.11.14.tar.bz2 ++++++ ++++ 20222 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-geode-2.11.13/ChangeLog new/xf86-video-geode-2.11.14/ChangeLog --- old/xf86-video-geode-2.11.13/ChangeLog 2012-09-17 14:26:34.000000000 +0200 +++ new/xf86-video-geode-2.11.14/ChangeLog 2012-11-25 10:43:28.000000000 +0100 @@ -1,3 +1,132 @@ +commit a96a4e28a079499b18b441f0b6c05c50dd86ead6 +Author: Martin-Éric Racine <martin-eric.racine@iki.fi> +Date: Sun Nov 25 11:12:58 2012 +0200 + + Geode 2.11.14 + + This release restores compatibility with xserver-1.13, cairo-1.12 and gtk-3: + + * Fix building with new xserver-1.13 (Maarten Lankhorst) + + Implement xserver-1.13 API changes. + + Make XAA support optional (dropped as of xserver-1.13). + * Implement solid source pictures acceleration for cairo-1.12 (Mart Raudsepp) + * Fix EXA Composite implementation in the LX component (Mart Raudsepp) + Restores icon and text rendering for GNOME 3 fallback mode. + + This release also improves compatibility with non-Linux/non-32-bit hardware: + * Fix compiling on 64-bit hosts (Dave Airlie) + * Fix compiling on non-Linux platforms (Martin-Éric Racine) + + VALIDATION PLATFORMS + * Debian (X server 1.7.7) on Artec DBE61. + * Debian (X server 1.12.14) on FIC ION603A. + * Fedora (X server 1.13) on OLPC XO-1. + +commit cec433840fde8be3ee6b8ce916b416f44d15a794 +Author: Martin-Éric Racine <martin-eric.racine@iki.fi> +Date: Sat Nov 24 12:02:32 2012 +0200 + + pre-release whitespace cleanup using ../modular/x-indent-all.sh + +commit 4e6f1e68344d52cd80f85843a2a9830add042a34 +Author: Mart Raudsepp <leio@gentoo.org> +Date: Tue Nov 20 09:14:31 2012 +0200 + + NEWS: Release notes for 2.11.14 + +commit a02c099af60c96b440edcc2b0afbd0be0b349ee8 +Author: Mart Raudsepp <leio@gentoo.org> +Date: Tue Nov 20 08:30:13 2012 +0200 + + NEWS: Fix placement order of 2.11.10 NEWS compared to others + +commit 45ca66ee73bfe04a7ac17e2086f2e5d20bfa93e9 +Author: Mart Raudsepp <leio@gentoo.org> +Date: Sat Nov 17 23:51:39 2012 +0200 + + lx_exa: Improvements to negative srcX/Y PictOpSrc/Over operations + + Adds handling of negative srcX or srcY coordinates, which is used by gtk3 + GtkTrayIcon implementation via cairo for centering icons on top of the + destination area. + + For now just handle the drawing within source pixmap bounds in these + cases, as full handling of the out of bound zero-vector for PictOpSrc + seems to require bigger refactoring, which is not suitable for the + impending stable release. + The approach implemented here should result in correct rendering for + PictOpOver (as out of bounds with non-repeat mode ends up meaning + transparency). For PictOpSrc no black borders are rendered where + appropriate, but before this approach, no source pixmap would even be + rendered at all, so it should be a net improvement for the upcoming + release, while fixing the gtk3 icons in GNOME3 fallback. + + The completely out of bounds special case check didn't work correctly for + negative srcX or srcY because exaScratch.srcWidth/Height are unsigned + types, so the negative srcX or srcY got casted to unsigned, which resulted + in a big number, so srcX >= 0 was always true (but GCC managed to not warn + of the implicit signedness cast). + + Fixes https://bugs.freedesktop.org/show_bug.cgi?id=51360 + +commit a46486b05f4674fc17f36947c97bc281c1d00d26 +Author: Mart Raudsepp <leio@gentoo.org> +Date: Tue Oct 23 11:40:11 2012 +0300 + + lx_exa: Implement solid pictures support as source with a mask + + cairo-1.12 uses solid pictures instead of 1x1R pixmaps in glyph rendering + paths, so accelerate it. + In addition to acceleration, it avoids a bug in xserver-1.13.0 and earlier + which causes visible misrendering for fallback path, making cairo-1.12 a + viable and desired choice on GeodeLX systems. + Quick benchmarking suggests a 4-12% win in cairo-traces. + +commit 85f25321661b24324d9e8fb6415abc0fda12436d +Author: Mart Raudsepp <leio@gentoo.org> +Date: Tue Oct 23 11:35:18 2012 +0300 + + lx_exa: Remove unused srcPixmap member from exaScratch + + Became redundant with commit 32a927b8e6 + +commit 5cfd7591b2f6ccb57d698738faa3fa800088f972 +Author: Martin-Éric Racine <martin-eric.racine@iki.fi> +Date: Tue Oct 2 18:05:55 2012 +0300 + + Clarified the copyright and license of src/geode_msr.c src/geode_blend.h + + Debian's 'licensecheck' tool showed these two files to have unspecified + copyright and license. Git log clarifies that these had been created by + Jordan Crouse when he was still at AMD, so their stock copyright notice + was copied as-is from other files in src/ + +commit 65d9954ef61b7e22252d38cc81db710a8ec0b22b +Author: Mart Raudsepp <leio@gentoo.org> +Date: Tue Sep 18 08:43:51 2012 +0300 + + lx_exa: Downgrade src/dst format warnings to fallbacks to not spam the log + + We don't support 10bit wide color channels, BGRA and other types, which mainly + cause these fallbacks. The ErrorF's were unwarranted, these are just fallbacks + as any other, so don't output these warnings without GEODE_TRACE_FALL. + +commit 5f7797cadeaf8a28612b9d0c394f8507eb687c34 +Author: Mart Raudsepp <leio@gentoo.org> +Date: Tue Sep 18 08:41:53 2012 +0300 + + lx_exa: Fix crash with solid fills on PictOpAdd operations + + lx_check_composite has many special checks for PictOpAdd to return + successfully early, but these were done even earlier than the check + for solid fills. This resulted in lx_prepare_composite assuming + the source pixmap exists, which is not the case with solid fills. + Move the solid fill fallback checks before the others, so we are + guaranteed to always have a source pixmap in PrepareComposite and + Composite and don't crash trying to access a NULL pointer. + + Also move up the mask check to do less checks in the PictOpAdd logic. + commit 4a20e8ac285cfe8a033f771ac8df25f873db9908 Author: Martin-Éric Racine <martin-eric.racine@iki.fi> Date: Wed Aug 29 12:53:00 2012 +0300 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-geode-2.11.13/INSTALL new/xf86-video-geode-2.11.14/INSTALL --- old/xf86-video-geode-2.11.13/INSTALL 2012-09-17 14:26:34.000000000 +0200 +++ new/xf86-video-geode-2.11.14/INSTALL 2012-11-25 10:43:28.000000000 +0100 @@ -0,0 +1,291 @@ +Installation Instructions +************************* + +Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, +2006, 2007, 2008 Free Software Foundation, Inc. + + This file is free documentation; the Free Software Foundation gives +unlimited permission to copy, distribute and modify it. + +Basic Installation +================== + + Briefly, the shell commands `./configure; make; make install' should +configure, build, and install this package. The following +more-detailed instructions are generic; see the `README' file for +instructions specific to this package. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, and a +file `config.log' containing compiler output (useful mainly for +debugging `configure'). + + It can also use an optional file (typically called `config.cache' +and enabled with `--cache-file=config.cache' or simply `-C') that saves +the results of its tests to speed up reconfiguring. Caching is +disabled by default to prevent problems with accidental use of stale +cache files. + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If you are using the cache, and at +some point `config.cache' contains results you don't want to keep, you +may remove or edit it. + + The file `configure.ac' (or `configure.in') is used to create +`configure' by a program called `autoconf'. You need `configure.ac' if +you want to change it or regenerate `configure' using a newer version +of `autoconf'. + +The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. + + Running `configure' might take a while. While running, it prints + some messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package. + + 4. Type `make install' to install the programs and any data files and + documentation. + + 5. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + + 6. Often, you can also type `make uninstall' to remove the installed + files again. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. Run `./configure --help' +for details on some of the pertinent environment variables. + + You can give `configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here +is an example: + + ./configure CC=c99 CFLAGS=-g LIBS=-lposix + + *Note Defining Variables::, for more details. + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you can use GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. + + With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture. + + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple `-arch' options to the +compiler but only a single `-arch' option to the preprocessor. Like +this: + + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" + + This is not guaranteed to produce working output in all cases, you +may have to build one architecture at a time and combine the results +using the `lipo' tool if you have problems. + +Installation Names +================== + + By default, `make install' installs the package's commands under +`/usr/local/bin', include files under `/usr/local/include', etc. You +can specify an installation prefix other than `/usr/local' by giving +`configure' the option `--prefix=PREFIX'. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +pass the option `--exec-prefix=PREFIX' to `configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=DIR' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + +Optional Features +================= + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + +Particular systems +================== + + On HP-UX, the default C compiler is not ANSI C compatible. If GNU +CC is not installed, it is recommended to use the following options in +order to use an ANSI C compiler: + + ./configure CC="cc -Ae" + +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +parse its `<wchar.h>' header file. The option `-nodtk' can be used as +a workaround. If GNU CC is not installed, it is therefore recommended +to try + + ./configure CC="cc" + +and if that doesn't work, try + + ./configure CC="cc -nodtk" + +Specifying the System Type +========================== + + There may be some features `configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, `configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the +`--build=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +where SYSTEM can have one of these forms: + + OS KERNEL-OS + + See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the option `--target=TYPE' to select the type of system they will +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with `--host=TYPE'. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Defining Variables +================== + + Variables not defined in a site shell script can be set in the +environment passed to `configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the `configure' command line, using `VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +causes the specified `gcc' to be used as the C compiler (unless it is +overridden in the site shell script). + +Unfortunately, this technique does not work for `CONFIG_SHELL' due to +an Autoconf bug. Until the bug is fixed you can use this workaround: + + CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash + +`configure' Invocation +====================== + + `configure' recognizes the following options to control how it +operates. + +`--help' +`-h' + Print a summary of all of the options to `configure', and exit. + +`--help=short' +`--help=recursive' + Print a summary of the options unique to this package's + `configure', and exit. The `short' variant lists options used + only in the top level, while the `recursive' variant lists options + also present in any nested packages. + +`--version' +`-V' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally `config.cache'. FILE defaults to `/dev/null' to + disable caching. + +`--config-cache' +`-C' + Alias for `--cache-file=config.cache'. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--prefix=DIR' + Use DIR as the installation prefix. *Note Installation Names:: + for more details, including other options available for fine-tuning + the installation locations. + +`--no-create' +`-n' + Run the configure checks, but stop before creating any output + files. + +`configure' also accepts some other, not widely useful, options. Run +`configure --help' for more details. + 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-geode-2.11.13/NEWS new/xf86-video-geode-2.11.14/NEWS --- old/xf86-video-geode-2.11.13/NEWS 2012-09-17 14:21:01.000000000 +0200 +++ new/xf86-video-geode-2.11.14/NEWS 2012-11-25 10:10:47.000000000 +0100 @@ -1,3 +1,51 @@ +Geode 2.11.14 (2012-11-25) +========================== +Better compatibility with xserver-1.13, cairo-1.12 and gtk3: + + * Fix building on Xservers without XAA (Maarten Lankhorst) + xserver-1.13 dropped XAA acceleration method, as it does not accel + anything important used on modern desktops. + The geode driver now supports configuring whether to include XAA + support - by default it is automatically disabled with newest + xservers that do not support it, but can be explicitly disabled for + older xservers as well if desired (particularly for LX deployments). + XAA support remains in place for the time being for older xservers, + as the EXA support for GX2 GPUs is of unknown quality and speed. + + * Fix building with new xserver-1.13 API (Maarten Lankhorst) + xserver-1.13 changed API, including moving various global symbols + behind function calls, to better support multiple switchable graphics + cards and hotplugged (USB) graphics cards. Work done to support both + pre-1.13 and 1.13+ APIs in other drivers is reused to bring the same + support to the Geode driver. + + * Implement solid source pictures acceleration (Mart Raudsepp) + cairo-1.12 uses these extensively for text rendering, instead of 1x1 + repeating images that cairo-1.10 used and we already accelerate. + Without acceleration, in addition to being slow, we'd hit a fallback + handling bug in EXA with xserver older than 1.13.1, which results in + very visible text corruption in many instances. + + * Handle negative srcX and srcY parameters better in EXA Composite + operations, used via the RENDER extension (Mart Raudsepp) + Handling of source picture coordinates outside actual source pixmap + area is still subpar and ignoring spec in some corner cases, but + a more specific case is improved to provide correct results in more + situations. In particular this fixes GtkTrayIcon drawing via cairo as + used by gtk3, specifically as seen in GNOME3 fallback desktop. + Previously no icon was drawn at all if the icon needed centering to the + drawing area, which in the end is achieved via a negative srcX/srcY. + https://bugs.freedesktop.org/show_bug.cgi?id=51360 + + * Fix builds for exotic and/or non-target platforms (Dave Airlie) + + * Clarify the copyright of older AMD commits (Martin-Éric Racine) + +VALIDATION PLATFORMS + * Debian (X server 1.7.7) on Artec DBE61 and Hercules EC-800. + * Debian (X server 1.12.14) on FIC ION603A. + * Fedora (X server 1.13) on OLPC XO-1. + Geode 2.11.13 (2011-12-26) ========================== This release mainly features a complete overhaul of the building scripts plus @@ -17,8 +65,8 @@ Fixes to keep this driver compilable on recent X servers are also included. VALIDATION PLATFORMS -* Debian/stable (X server 1.7.7) on Artec DBE61 and Hercules EC-800. -* Ubuntu/Precise (X server 1.10.4) on FIC ION603A. +* Debian (X server 1.7.7) on Artec DBE61 and Hercules EC-800. +* Ubuntu (X server 1.10.4) on FIC ION603A. Geode 2.11.12 (2011-02-13) ========================== @@ -26,18 +74,18 @@ V4L1 support was dropped as of Linux kernel 2.6.38, and it fixes packed overlay offscreen allocations. -Geode 2.11.10 (2010-11-09) -========================== -This release migrates deprecated xalloc/xrealloc/xfree/xcalloc calls -to malloc/realloc/free/calloc, fixes several DCON-specific issues, -improves mode validation and adds support for one WXGA resolution. - Geode 2.11.11 (2010-12-27) ========================== This release restores code compatibility down to X server 1.4, it fixes compilation under 1.9.99 and newer, and it improves handling of gamma correction in video vs graphics +Geode 2.11.10 (2010-11-09) +========================== +This release migrates deprecated xalloc/xrealloc/xfree/xcalloc calls +to malloc/realloc/free/calloc, fixes several DCON-specific issues, +improves mode validation and adds support for one WXGA resolution. + Geode 2.11.9 (2010-08-23) ========================= We are pleased to announce this maintenance release of xf86-video-geode. 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-geode-2.11.13/configure.ac new/xf86-video-geode-2.11.14/configure.ac --- old/xf86-video-geode-2.11.13/configure.ac 2012-09-17 14:21:01.000000000 +0200 +++ new/xf86-video-geode-2.11.14/configure.ac 2012-11-24 16:12:06.000000000 +0100 @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ(2.59) AC_INIT([xf86-video-geode], - [2.11.13], + [2.11.14], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver%2Fgeode], [xf86-video-geode], [http://www.x.org/wiki/GeodeDriver]) 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-geode-2.11.13/missing new/xf86-video-geode-2.11.14/missing --- old/xf86-video-geode-2.11.13/missing 2008-04-01 16:57:18.000000000 +0200 +++ new/xf86-video-geode-2.11.14/missing 2012-11-24 11:00:16.000000000 +0100 @@ -1,10 +1,10 @@ #! /bin/sh # Common stub for a few missing GNU programs while installing. -scriptversion=2006-05-10.23 +scriptversion=2012-01-06.13; # UTC -# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 -# Free Software Foundation, Inc. +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, +# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. # This program is free software; you can redistribute it and/or modify @@ -18,9 +18,7 @@ # 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. +# along with this program. If not, see <http://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -86,9 +84,11 @@ help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] +Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and +\`g' are ignored when checking the name. + Send bug reports to <bug-automake@gnu.org>." exit $? ;; @@ -106,23 +106,21 @@ esac +# normalize program name to check for. +program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + # 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). +# the program). This is about non-GNU programs, so use $1 not +# $program. case $1 in - lex|yacc) + lex*|yacc*) # Not GNU programs, they don't have --version. ;; - tar) - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - exit 1 - fi - ;; - *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. @@ -138,7 +136,7 @@ # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. -case $1 in +case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if @@ -148,7 +146,7 @@ touch aclocal.m4 ;; - autoconf) + autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the @@ -157,7 +155,7 @@ touch configure ;; - autoheader) + autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want @@ -187,7 +185,7 @@ while read f; do touch "$f"; done ;; - autom4te) + autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the @@ -210,7 +208,7 @@ fi ;; - bison|yacc) + bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package @@ -218,7 +216,7 @@ \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then - eval LASTARG="\${$#}" + eval LASTARG=\${$#} case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` @@ -240,7 +238,7 @@ fi ;; - lex|flex) + lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package @@ -248,7 +246,7 @@ \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then - eval LASTARG="\${$#}" + eval LASTARG=\${$#} case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` @@ -263,7 +261,7 @@ fi ;; - help2man) + help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the @@ -277,11 +275,11 @@ else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" - exit 1 + exit $? fi ;; - makeinfo) + makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file @@ -310,41 +308,6 @@ touch $file ;; - tar) - shift - - # We have already tried tar in the generic part. - # Look for gnutar/gtar before invocation to avoid ugly error - # messages. - if (gnutar --version > /dev/null 2>&1); then - gnutar "$@" && exit 0 - fi - if (gtar --version > /dev/null 2>&1); then - gtar "$@" && exit 0 - fi - firstarg="$1" - if shift; then - case $firstarg in - *o*) - firstarg=`echo "$firstarg" | sed s/o//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - case $firstarg in - *h*) - firstarg=`echo "$firstarg" | sed s/h//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - fi - - echo 1>&2 "\ -WARNING: I can't seem to be able to run \`tar' with the given arguments. - You may want to install GNU tar or Free paxutils, or check the - command line arguments." - exit 1 - ;; - *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. @@ -363,5 +326,6 @@ # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" # 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-geode-2.11.13/src/cim/cim_df.c new/xf86-video-geode-2.11.14/src/cim/cim_df.c --- old/xf86-video-geode-2.11.13/src/cim/cim_df.c 2012-09-17 14:21:01.000000000 +0200 +++ new/xf86-video-geode-2.11.14/src/cim/cim_df.c 2012-11-24 11:01:14.000000000 +0100 @@ -153,8 +153,8 @@ /* PARAMETER - VIDEO PITCH */ pitch = - (video_source_odd-> - y_pitch >> 3) | ((video_source_odd->uv_pitch >> 3) << 16); + (video_source_odd->y_pitch >> 3) | ((video_source_odd->uv_pitch >> 3) << + 16); /* PARAMETER - VIDEO FORMAT */ @@ -1031,8 +1031,8 @@ key = READ_VID32(DF_CURSOR_COLOR_KEY) & DF_CURSOR_COLOR_KEY_ENABLE; key = - key | (cursor_color_key-> - key & 0xFFFFFF) | (cursor_color_key->select_color2 << 24); + key | (cursor_color_key->key & 0xFFFFFF) | (cursor_color_key-> + select_color2 << 24); WRITE_VID32(DF_CURSOR_COLOR_KEY, key); WRITE_VID32(DF_CURSOR_COLOR_MASK, (cursor_color_key->mask & 0xFFFFFF)); 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-geode-2.11.13/src/cim/cim_vg.c new/xf86-video-geode-2.11.14/src/cim/cim_vg.c --- old/xf86-video-geode-2.11.13/src/cim/cim_vg.c 2012-09-17 14:21:01.000000000 +0200 +++ new/xf86-video-geode-2.11.14/src/cim/cim_vg.c 2012-11-24 11:01:15.000000000 +0100 @@ -897,9 +897,8 @@ if ((mode_params->flags & VG_MODEFLAG_BANDWIDTHMASK) == VG_MODEFLAG_HIGH_BAND || ((mode_params->flags & VG_MODEFLAG_INTERLACED) - && (mode_params-> - flags & VG_MODEFLAG_INT_MASK) == - VG_MODEFLAG_INT_FLICKER) || + && (mode_params->flags & VG_MODEFLAG_INT_MASK) + == VG_MODEFLAG_INT_FLICKER) || (irq_ctl & DC3_IRQFILT_GFX_FILT_EN)) { /* HIGH BANDWIDTH */ /* Set agressive watermarks and disallow forced low priority */ 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-geode-2.11.13/src/cim/cim_vip.c new/xf86-video-geode-2.11.14/src/cim/cim_vip.c --- old/xf86-video-geode-2.11.13/src/cim/cim_vip.c 2012-09-17 14:21:01.000000000 +0200 +++ new/xf86-video-geode-2.11.14/src/cim/cim_vip.c 2012-11-24 11:01:15.000000000 +0100 @@ -794,8 +794,7 @@ VIP_MSR_MCR_SECOND_PRIORITY_SHIFT) & VIP_MSR_MCR_SECOND_PRIORITY_MASK; q_word.low |= - (buffer-> - primary << VIP_MSR_MCR_PRIMARY_PRIORITY_SHIFT) & + (buffer->primary << VIP_MSR_MCR_PRIMARY_PRIORITY_SHIFT) & VIP_MSR_MCR_PRIMARY_PRIORITY_MASK; q_word.low |= (buffer->pid << VIP_MSR_MCR_PID_SHIFT) & VIP_MSR_MCR_PID_MASK; @@ -922,8 +921,7 @@ WRITE_VIP32(VIP_VERTICAL_START_STOP, ((buffer->stop << VIP_VSTART_VERTEND_SHIFT) & VIP_VSTART_VERTEND_MASK) | - ((buffer-> - start << VIP_VSTART_VERTSTART_SHIFT) & + ((buffer->start << VIP_VSTART_VERTSTART_SHIFT) & VIP_VSTART_VERTSTART_MASK)); /* ENABLE IN THE CONTROL REGISTER */ 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-geode-2.11.13/src/cim/cim_vop.c new/xf86-video-geode-2.11.14/src/cim/cim_vop.c --- old/xf86-video-geode-2.11.13/src/cim/cim_vop.c 2012-09-17 14:21:01.000000000 +0200 +++ new/xf86-video-geode-2.11.14/src/cim/cim_vop.c 2012-11-24 11:01:15.000000000 +0100 @@ -101,17 +101,13 @@ WRITE_REG32(DC3_VBI_LN_ODD, ((buffer->odd_line_offset << DC3_VBI_ODD_LINE_SHIFT) & - DC3_VBI_ODD_LINE_MASK) | (buffer-> - odd_line_capture_mask - & - DC3_VBI_ODD_ENABLE_MASK)); + DC3_VBI_ODD_LINE_MASK) | + (buffer->odd_line_capture_mask & DC3_VBI_ODD_ENABLE_MASK)); WRITE_REG32(DC3_VBI_LN_EVEN, ((buffer->even_line_offset << DC3_VBI_EVEN_LINE_SHIFT) & - DC3_VBI_EVEN_LINE_MASK) | (buffer-> - even_line_capture_mask - & - DC3_VBI_EVEN_ENABLE_MASK)); + DC3_VBI_EVEN_LINE_MASK) | + (buffer->even_line_capture_mask & DC3_VBI_EVEN_ENABLE_MASK)); /* PROGRAM SOURCE OFFSETS * Start with the even offsets. Note that we always enable 16-bit VBI, 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-geode-2.11.13/src/compat-api.h new/xf86-video-geode-2.11.14/src/compat-api.h --- old/xf86-video-geode-2.11.13/src/compat-api.h 2012-09-17 14:21:01.000000000 +0200 +++ new/xf86-video-geode-2.11.14/src/compat-api.h 2012-11-24 11:01:15.000000000 +0100 @@ -77,7 +77,7 @@ #define VALID_MODE_ARGS_DECL int arg, DisplayModePtr pMode, Bool Verbose, int flags -#else /*XF86_SCRN_INTERFACE)*/ +#else /*XF86_SCRN_INTERFACE) */ #define DDC_CALL(pScrni) (pScrni) 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-geode-2.11.13/src/geode.h new/xf86-video-geode-2.11.14/src/geode.h --- old/xf86-video-geode-2.11.13/src/geode.h 2012-09-17 14:21:01.000000000 +0200 +++ new/xf86-video-geode-2.11.14/src/geode.h 2012-11-24 11:01:15.000000000 +0100 @@ -395,6 +395,7 @@ int + GeodeQueryImageAttributes(ScrnInfoPtr, int id, unsigned short *w, unsigned short *h, int *pitches, int *offsets); 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-geode-2.11.13/src/geode_blend.h new/xf86-video-geode-2.11.14/src/geode_blend.h --- old/xf86-video-geode-2.11.13/src/geode_blend.h 2008-04-01 16:53:08.000000000 +0200 +++ new/xf86-video-geode-2.11.14/src/geode_blend.h 2012-11-24 11:01:15.000000000 +0100 @@ -1,3 +1,29 @@ +/* + * Copyright (c) 2007 Advanced Micro Devices, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Neither the name of the Advanced Micro Devices, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + */ + #ifndef AMD_BLEND_H_ #define AMD_BLEND_H_ 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-geode-2.11.13/src/geode_msr.c new/xf86-video-geode-2.11.14/src/geode_msr.c --- old/xf86-video-geode-2.11.13/src/geode_msr.c 2012-09-17 14:21:01.000000000 +0200 +++ new/xf86-video-geode-2.11.14/src/geode_msr.c 2012-11-24 11:01:15.000000000 +0100 @@ -1,3 +1,29 @@ +/* + * Copyright (c) 2008 Advanced Micro Devices, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Neither the name of the Advanced Micro Devices, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + */ + #ifdef HAVE_CONFIG_H #include "config.h" #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-geode-2.11.13/src/gx_accel.c new/xf86-video-geode-2.11.14/src/gx_accel.c --- old/xf86-video-geode-2.11.13/src/gx_accel.c 2012-09-17 14:21:02.000000000 +0200 +++ new/xf86-video-geode-2.11.14/src/gx_accel.c 2012-11-24 11:01:15.000000000 +0100 @@ -2082,7 +2082,7 @@ #endif return (XAAInit(pScrn, localRecPtr)); -#else /* XF86XAA */ +#else /* XF86XAA */ return FALSE; #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-geode-2.11.13/src/gx_randr.c new/xf86-video-geode-2.11.14/src/gx_randr.c --- old/xf86-video-geode-2.11.13/src/gx_randr.c 2012-09-17 14:21:02.000000000 +0200 +++ new/xf86-video-geode-2.11.14/src/gx_randr.c 2012-11-24 11:01:15.000000000 +0100 @@ -181,7 +181,8 @@ #endif if (pRoot) - (*pScrni->EnableDisableFBAccess) (XF86_ENABLEDISABLEFB_ARG(pScrni, FALSE)); + (*pScrni-> + EnableDisableFBAccess) (XF86_ENABLEDISABLEFB_ARG(pScrni, FALSE)); if (useVirtual) { pScrni->virtualX = pRandr->virtualX; @@ -236,7 +237,8 @@ xf86SetViewport(pScreen, 0, 0); if (pRoot) - (*pScrni->EnableDisableFBAccess) (XF86_ENABLEDISABLEFB_ARG(pScrni, TRUE)); + (*pScrni-> + EnableDisableFBAccess) (XF86_ENABLEDISABLEFB_ARG(pScrni, TRUE)); return ret; } 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-geode-2.11.13/src/gx_rotate.c new/xf86-video-geode-2.11.14/src/gx_rotate.c --- old/xf86-video-geode-2.11.13/src/gx_rotate.c 2012-09-17 14:21:02.000000000 +0200 +++ new/xf86-video-geode-2.11.14/src/gx_rotate.c 2012-11-24 11:01:15.000000000 +0100 @@ -152,8 +152,8 @@ pScrni->pScreen->rootDepth, pScrni->bitsPerPixel, PixmapBytePad(pScrni->displayWidth, - pScrni->pScreen-> - rootDepth), + pScrni-> + pScreen->rootDepth), (pointer) (pGeode->FBBase + pScrni->fbOffset)); 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-geode-2.11.13/src/lx_exa.c new/xf86-video-geode-2.11.14/src/lx_exa.c --- old/xf86-video-geode-2.11.13/src/lx_exa.c 2012-09-17 14:21:02.000000000 +0200 +++ new/xf86-video-geode-2.11.14/src/lx_exa.c 2012-11-24 11:01:15.000000000 +0100 @@ -95,7 +95,6 @@ unsigned int srcPitch; unsigned int srcBpp; unsigned int srcWidth, srcHeight; - PixmapPtr srcPixmap; unsigned int srcColor; int op; @@ -285,6 +284,7 @@ * exaGetPixmapFirstPixel, so this should be adjusted so * the stall isn't run needlessly */ + /* FIXME: xserver-1.4 with a supposed fix for this is really old, so kill the stall? */ gp_wait_until_idle(); in = exaGetPixmapFirstPixel(pSrc); @@ -547,28 +547,39 @@ if (op > PictOpAdd) GEODE_FALLBACK(("Operation %d is not supported\n", op)); + /* XXX - don't know if we can do any hwaccel on solid fills or gradient types in generic cases */ + if (pMsk && pMsk->pSourcePict) + GEODE_FALLBACK(("%s are not supported as a mask\n", + pMsk->pSourcePict->type == + SourcePictTypeSolidFill ? "Solid pictures" : + "Gradients")); + + if (pSrc->pSourcePict && pSrc->pSourcePict->type != SourcePictTypeSolidFill) + GEODE_FALLBACK(("Gradients are not supported as the source\n")); + + if (pMsk && op == PictOpAdd) + GEODE_FALLBACK(("PictOpAdd with mask is not supported\n")); + /* FIXME: Meet this conditions from the debug for PictOpAdd. * Any Other possibilities? Add a judge for the future supplement */ if (op == PictOpAdd && pSrc->format == PICT_a8r8g8b8 && - pDst->format == PICT_a8 && !pMsk) + pDst->format == PICT_a8) return TRUE; if (op == PictOpAdd && pSrc->format == PICT_x8r8g8b8 && - pDst->format == PICT_a8 && !pMsk) + pDst->format == PICT_a8) return TRUE; if (op == PictOpAdd && pSrc->format == PICT_r5g6b5 && - pDst->format == PICT_a8 && !pMsk) + pDst->format == PICT_a8) return TRUE; if (usesPasses(op)) { + /* FIXME: Slightly misleading fallback msg when !pMsk */ if (pGeode->exaBfrOffset == 0 || !pMsk) GEODE_FALLBACK(("Multipass operation requires off-screen buffer\n")); } - if (pMsk && op == PictOpAdd) - GEODE_FALLBACK(("PictOpAdd with mask is not supported\n")); - /* Check that the filter matches what we support */ switch (pSrc->filter) { @@ -585,10 +596,6 @@ if (pMsk && pMsk->transform) GEODE_FALLBACK(("Mask transforms are not supported\n")); - /* XXX - don't know if we can do any hwaccel on solid fills or gradient types */ - if (pSrc->pSourcePict || (pMsk && pMsk->pSourcePict)) - GEODE_FALLBACK(("Solid fills or gradient types are not supported\n")); - /* Keep an eye out for source rotation transforms - those we can * do something about */ @@ -607,8 +614,9 @@ struct blend_ops_t *opPtr = &lx_alpha_ops[op * 2]; int direction = (opPtr->channel == CIMGP_CHANNEL_A_SOURCE) ? 0 : 1; - /* Direction 0 indicates src->dst, 1 indiates dst->src */ - if (((direction == 0) && (pSrc->pDrawable->bitsPerPixel < 16)) || + /* Direction 0 indicates src->dst, 1 indicates dst->src */ + if (((direction == 0) && + (pSrc->pDrawable && pSrc->pDrawable->bitsPerPixel < 16)) || ((direction == 1) && (pDst->pDrawable->bitsPerPixel < 16))) { ErrorF("Mask blending unsupported with <16bpp\n"); return FALSE; @@ -617,27 +625,32 @@ GEODE_FALLBACK(("Masks can be only done with a 8bpp or 4bpp depth\n")); /* The pSrc should be 1x1 pixel if the pMsk is not zero */ - if (pSrc->pDrawable->width != 1 || pSrc->pDrawable->height != 1) + if (pSrc->pDrawable && + (pSrc->pDrawable->width != 1 || pSrc->pDrawable->height != 1)) GEODE_FALLBACK(("pSrc should be 1x1 pixel if pMsk is not zero\n")); /* FIXME: In lx_prepare_composite, there are no variables to record the * one pixel source's width and height when the mask is not zero. * That will lead to bigger region to render instead of one pixel in lx * _do_composite, so we should fallback currently to avoid this */ - if (!pSrc->repeat) + /* Not an issue for solid pictures, because we'll treat it as 1x1R too */ + if (!pSrc->repeat && + !(pSrc->pSourcePict && + pSrc->pSourcePict->type == SourcePictTypeSolidFill)) { GEODE_FALLBACK(("FIXME: unzero mask might lead to bigger rendering region than 1x1 pixels\n")); + } + } + else { + if (pSrc->pSourcePict) + GEODE_FALLBACK(("Solid source pictures without a mask are not supported\n")); } /* Get the formats for the source and destination */ - if ((srcFmt = lx_get_format(pSrc)) == NULL) { - ErrorF("EXA: Invalid source format %x\n", pSrc->format); - return FALSE; - } + if ((srcFmt = lx_get_format(pSrc)) == NULL) + GEODE_FALLBACK(("Unsupported source format %x\n", pSrc->format)); - if ((dstFmt = lx_get_format(pDst)) == NULL) { - ErrorF("EXA: Invalid destination format %x\n", pDst->format); - return FALSE; - } + if ((dstFmt = lx_get_format(pDst)) == NULL) + GEODE_FALLBACK(("Unsupported destination format %x\n", pDst->format)); /* Make sure operations that need alpha bits have them */ /* If a mask is enabled, the alpha will come from there */ @@ -684,25 +697,29 @@ if (pMsk && op != PictOpClear) { /* Get the source color */ - /* If the op is PictOpOver(or PictOpOutReverse, PictOpInReverse, - * PictOpIn, PictOpOut, PictOpOverReverse), we should get the - * ARGB32 source format */ - - if ((op == PictOpOver || op == PictOpOutReverse || op == - PictOpInReverse || op == PictOpIn || op == PictOpOut || - op == PictOpOverReverse) && (srcFmt->alphabits != 0)) - exaScratch.srcColor = exaGetPixmapFirstPixel(pxSrc); - else if ((op == PictOpOver || op == PictOpOutReverse || op == - PictOpInReverse || op == PictOpIn || op == PictOpOut || - op == PictOpOverReverse) && (srcFmt->alphabits == 0)) - exaScratch.srcColor = lx_get_source_color(pxSrc, pSrc->format, - PICT_a8r8g8b8); - else - exaScratch.srcColor = lx_get_source_color(pxSrc, pSrc->format, - pDst->format); + if (pSrc->pSourcePict) { + exaScratch.srcColor = pSrc->pSourcePict->solidFill.color; + } + else { + /* If the op is PictOpOver(or PictOpOutReverse, PictOpInReverse, + * PictOpIn, PictOpOut, PictOpOverReverse), we should get the + * ARGB32 source format */ + + if ((op == PictOpOver || op == PictOpOutReverse || op == + PictOpInReverse || op == PictOpIn || op == PictOpOut || + op == PictOpOverReverse) && (srcFmt->alphabits != 0)) + exaScratch.srcColor = exaGetPixmapFirstPixel(pxSrc); + else if ((op == PictOpOver || op == PictOpOutReverse || op == + PictOpInReverse || op == PictOpIn || op == PictOpOut || + op == PictOpOverReverse) && (srcFmt->alphabits == 0)) + exaScratch.srcColor = lx_get_source_color(pxSrc, pSrc->format, + PICT_a8r8g8b8); + else + exaScratch.srcColor = lx_get_source_color(pxSrc, pSrc->format, + pDst->format); + } /* Save off the info we need (reuse the source values to save space) */ - exaScratch.type = COMP_TYPE_MASK; exaScratch.maskrepeat = pMsk->repeat; @@ -973,12 +990,9 @@ opWidth = ((opX + width) - optempX) > exaScratch.srcWidth ? exaScratch.srcWidth : ((opX + width) - optempX); opHeight = ((opY + height) - optempY) > (exaScratch.srcHeight - - srcY) ? (exaScratch. - srcHeight - - srcY) : ((opY + - height) - - - optempY); + srcY) + ? (exaScratch.srcHeight - srcY) : ((opY + height) + - optempY); } else { srcOffset = GetSrcOffset(0, 0); @@ -1295,8 +1309,8 @@ if (exaScratch.type == COMP_TYPE_ONEPASS) { /* This is the condition srcX or/and srcY is/are out of source * region */ - if (((srcX >= 0 && srcY >= exaScratch.srcHeight) - || (srcX >= exaScratch.srcWidth && srcY >= 0)) && + if (((srcY >= 0 && srcY >= exaScratch.srcHeight) + || (srcX >= 0 && srcX >= exaScratch.srcWidth)) && (exaScratch.op == PictOpOver || exaScratch.op == PictOpSrc)) { if (exaScratch.repeat == 1) { opWidth = width; @@ -1337,8 +1351,29 @@ opHeight = height; } else { - /* Have not met this condition till now */ - return; + /* FIXME: We can't support negative srcX/Y for all corner cases in + * a sane way without a bit bigger refactoring. So as to avoid + * gross misrenderings (e.g missing tray icons) in current real-world + * applications, just shift destination appropriately for now and + * ignore out of bounds source pixmap zero-vector handling. This is + * actually correct for PictOpOver, but PictOpSrc out of bounds regions + * should be blacked out, but aren't - without this workaround however + * it'd be simply all black instead, which is probably worse till a full + * clean solution solves it for all cases. */ + if (srcX < 0) { + opX -= srcX; + srcX = 0; + } + + if (srcY < 0) { + opY -= srcY; + srcY = 0; + } + + /* EXA has taken care of adjusting srcWidth if it gets cut on the right */ + width = opWidth = exaScratch.srcWidth; + /* EXA has taken care of adjusting srcHeight if it gets cut on the bottom */ + height = opHeight = exaScratch.srcHeight; } } else { @@ -1462,6 +1497,17 @@ } /* All black out of the source */ if (!exaScratch.repeat && (exaScratch.type == COMP_TYPE_ONEPASS)) { + /* FIXME: We black out the source here, so that any further regions + * in the loop get handled as a source that's a zero-vector (as + * defined for out-of-bounds from source pixmap for RepeatModeNone), + * but this will likely interfere with cases where srcX and/or srcY + * is negative - as opposed to e.g width being larger than srcWidth, + * which is exercised in rendercheck (always rectangle in top-left + * corner). + * Additionally it forces the drawing into tiles of srcWidth/srcHeight + * for non-repeat modes too, where we don't really need to tile it like + * this and could draw the out of bound regions all at once (or at most + * in 4 operations without the big loop). */ lx_composite_all_black(srcOffset, exaScratch.srcWidth, exaScratch.srcHeight); } 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-geode-2.11.13/src/lx_video.c new/xf86-video-geode-2.11.14/src/lx_video.c --- old/xf86-video-geode-2.11.13/src/lx_video.c 2012-09-17 14:21:02.000000000 +0200 +++ new/xf86-video-geode-2.11.14/src/lx_video.c 2012-11-24 11:01:15.000000000 +0100 @@ -70,6 +70,7 @@ static void + LXDisplayVideo(ScrnInfoPtr pScrni, int id, short width, short height, BoxPtr dstBox, short srcW, short srcH, short drawW, short drawH); -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@hilbert.suse.de