From 637002603d949f26ea7fcd42843dc4070b9465f9 Mon Sep 17 00:00:00 2001 From: Martin Jansa Date: Mon, 16 Aug 2010 14:33:59 +0200 Subject: xorg: add latest packages for 2010-08-16 Signed-off-by: Martin Jansa --- .../include/preferred-xorg-versions-live.inc | 12 +- recipes/obsolete/xorg/xorg-app/xauth/autofoo.patch | 148 ++++++++++++ .../xorg/xorg-app/xdpyinfo/disable-xkb.patch | 18 ++ recipes/obsolete/xorg/xorg-app/xev/diet-x11.patch | 80 +++++++ recipes/obsolete/xorg/xorg-app/xhost/autofoo.patch | 165 +++++++++++++ recipes/xorg-app/xauth/autofoo.patch | 148 ------------ recipes/xorg-app/xhost/autofoo.patch | 165 ------------- recipes/xorg-lib/libxvmc_1.0.6.bb | 10 + ...mplementation-of-pixman_blt-with-overlapp.patch | 114 +++++++++ ...of-overlapping-src-dst-for-pixman_blt_mmx.patch | 91 +++++++ ...f-overlapping-src-dst-for-pixman_blt_sse2.patch | 91 +++++++ ...f-overlapping-src-dst-for-pixman_blt_neon.patch | 94 ++++++++ ...EON-optimizations-for-fetch-store-r5g6b5-.patch | 169 +++++++++++++ ...e-version-of-16bpp-bilinear-scanline-fetc.patch | 261 +++++++++++++++++++++ .../0007-ARM-added-missing-cache-preload.patch | 32 +++ recipes/xorg-lib/pixman-0.18.4/565-over-neon.patch | 23 ++ .../xorg-lib/pixman-0.18.4/neon-reverse-u.patch | 175 ++++++++++++++ recipes/xorg-lib/pixman_0.18.4.bb | 25 ++ recipes/xorg-util/lndir_1.0.2.bb | 7 + ...ake-sure-that-DisplayModeRec-name-is-init.patch | 25 -- ...ack-assume-pixman-supports-overlapped-blt.patch | 14 -- ...ake-sure-that-DisplayModeRec-name-is-init.patch | 25 ++ ...ack-assume-pixman-supports-overlapped-blt.patch | 14 ++ recipes/xorg-xserver/xserver-xorg_1.8.99.905.bb | 38 --- recipes/xorg-xserver/xserver-xorg_1.8.99.906.bb | 38 +++ 25 files changed, 1586 insertions(+), 396 deletions(-) create mode 100644 recipes/obsolete/xorg/xorg-app/xauth/autofoo.patch create mode 100644 recipes/obsolete/xorg/xorg-app/xdpyinfo/disable-xkb.patch create mode 100644 recipes/obsolete/xorg/xorg-app/xev/diet-x11.patch create mode 100644 recipes/obsolete/xorg/xorg-app/xhost/autofoo.patch delete mode 100644 recipes/xorg-app/xauth/autofoo.patch delete mode 100644 recipes/xorg-app/xhost/autofoo.patch create mode 100644 recipes/xorg-lib/libxvmc_1.0.6.bb create mode 100644 recipes/xorg-lib/pixman-0.18.4/0001-Generic-C-implementation-of-pixman_blt-with-overlapp.patch create mode 100644 recipes/xorg-lib/pixman-0.18.4/0002-Support-of-overlapping-src-dst-for-pixman_blt_mmx.patch create mode 100644 recipes/xorg-lib/pixman-0.18.4/0003-Support-of-overlapping-src-dst-for-pixman_blt_sse2.patch create mode 100644 recipes/xorg-lib/pixman-0.18.4/0004-Support-of-overlapping-src-dst-for-pixman_blt_neon.patch create mode 100644 recipes/xorg-lib/pixman-0.18.4/0005-ARM-added-NEON-optimizations-for-fetch-store-r5g6b5-.patch create mode 100644 recipes/xorg-lib/pixman-0.18.4/0006-A-copy-paste-version-of-16bpp-bilinear-scanline-fetc.patch create mode 100644 recipes/xorg-lib/pixman-0.18.4/0007-ARM-added-missing-cache-preload.patch create mode 100644 recipes/xorg-lib/pixman-0.18.4/565-over-neon.patch create mode 100644 recipes/xorg-lib/pixman-0.18.4/neon-reverse-u.patch create mode 100644 recipes/xorg-lib/pixman_0.18.4.bb create mode 100644 recipes/xorg-util/lndir_1.0.2.bb delete mode 100644 recipes/xorg-xserver/xserver-xorg-1.8.99.905/0001-xf86Modes-make-sure-that-DisplayModeRec-name-is-init.patch delete mode 100644 recipes/xorg-xserver/xserver-xorg-1.8.99.905/hack-assume-pixman-supports-overlapped-blt.patch create mode 100644 recipes/xorg-xserver/xserver-xorg-1.8.99.906/0001-xf86Modes-make-sure-that-DisplayModeRec-name-is-init.patch create mode 100644 recipes/xorg-xserver/xserver-xorg-1.8.99.906/hack-assume-pixman-supports-overlapped-blt.patch delete mode 100644 recipes/xorg-xserver/xserver-xorg_1.8.99.905.bb create mode 100644 recipes/xorg-xserver/xserver-xorg_1.8.99.906.bb diff --git a/conf/distro/include/preferred-xorg-versions-live.inc b/conf/distro/include/preferred-xorg-versions-live.inc index f50106851c..6a689096d2 100644 --- a/conf/distro/include/preferred-xorg-versions-live.inc +++ b/conf/distro/include/preferred-xorg-versions-live.inc @@ -1,4 +1,4 @@ -#Thu Aug 12 11:37:37 CEST 2010 +#Mon Aug 16 13:41:58 CEST 2010 #app PREFERRED_VERSION_appres ?= "1.0.2" PREFERRED_VERSION_bdftopcf ?= "1.0.2" @@ -280,7 +280,7 @@ PREFERRED_VERSION_libxt ?= "1.0.8" PREFERRED_VERSION_libxt-native ?= "1.0.8" PREFERRED_VERSION_libxtst ?= "1.1.0" PREFERRED_VERSION_libxv ?= "1.0.5" -PREFERRED_VERSION_libxvmc ?= "1.0.5" +PREFERRED_VERSION_libxvmc ?= "1.0.6" PREFERRED_VERSION_libxxf86dga ?= "1.1.1" PREFERRED_VERSION_libxxf86misc ?= "1.0.2" PREFERRED_VERSION_libxxf86vm ?= "1.1.0" @@ -293,8 +293,8 @@ PREFERRED_VERSION_libpciaccess ?= "0.12.0" PREFERRED_VERSION_libxkbfile ?= "1.0.6" PREFERRED_VERSION_libxkbfile-native ?= "1.0.6" PREFERRED_VERSION_libxkbui ?= "1.0.2" -PREFERRED_VERSION_pixman ?= "0.18.2" -PREFERRED_VERSION_pixman-native ?= "0.18.2" +PREFERRED_VERSION_pixman ?= "0.18.4" +PREFERRED_VERSION_pixman-native ?= "0.18.4" PREFERRED_VERSION_xtrans ?= "1.2.5" PREFERRED_VERSION_xtrans-native ?= "1.2.5" #proto @@ -346,11 +346,11 @@ PREFERRED_VERSION_xproxymanagementprotocol ?= "1.0.3" #util PREFERRED_VERSION_gccmakedep ?= "1.0.2" PREFERRED_VERSION_imake ?= "1.0.3" -PREFERRED_VERSION_lndir ?= "1.0.1" +PREFERRED_VERSION_lndir ?= "1.0.2" PREFERRED_VERSION_makedepend ?= "1.0.2" PREFERRED_VERSION_makedepend-native ?= "1.0.2" PREFERRED_VERSION_util-macros ?= "1.10.0" PREFERRED_VERSION_util-macros-native ?= "1.10.0" PREFERRED_VERSION_xorg-cf-files ?= "1.0.3" #xserver -PREFERRED_VERSION_xserver-xorg ?= "1.8.99.905" +PREFERRED_VERSION_xserver-xorg ?= "1.8.99.906" diff --git a/recipes/obsolete/xorg/xorg-app/xauth/autofoo.patch b/recipes/obsolete/xorg/xorg-app/xauth/autofoo.patch new file mode 100644 index 0000000000..d279a6f4fc --- /dev/null +++ b/recipes/obsolete/xorg/xorg-app/xauth/autofoo.patch @@ -0,0 +1,148 @@ +diff -urN xauth.orig/Imakefile xauth/Imakefile +--- xauth.orig/Imakefile 2004-04-23 21:54:38.000000000 +0200 ++++ xauth/Imakefile 1970-01-01 01:00:00.000000000 +0100 +@@ -1,19 +0,0 @@ +-XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:54:11 cpqbld Exp $ +- +- +- +- +-XCOMM $XFree86: xc/programs/xauth/Imakefile,v 3.5tsi Exp $ +- +- DEPLIBS = $(DEPXAUTHLIB) $(DEPXMUULIB) $(DEPXLIB) +-LOCAL_LIBRARIES = $(XAUTHLIB) $(XMUULIB) $(XLIB) +- SRCS = xauth.c gethost.c process.c parsedpy.c +- OBJS = xauth.o gethost.o process.o parsedpy.o +- CONN_DEFINES = $(CONNECTION_FLAGS) +- DEPEND_DEFINES = $(CONN_DEFINES) $(SIGNAL_DEFINES) +- +-ComplexProgramTarget(xauth) +- +-SpecialCObjectRule(gethost,$(ICONFIGFILES),$(CONN_DEFINES) $(SIGNAL_DEFINES)) +-SpecialCObjectRule(process,$(ICONFIGFILES),$(CONN_DEFINES) $(SIGNAL_DEFINES)) +-SpecialCObjectRule(parsedpy,$(ICONFIGFILES),$(CONN_DEFINES)) +diff -urN xauth.orig/Makefile.am xauth/Makefile.am +--- xauth.orig/Makefile.am 1970-01-01 01:00:00.000000000 +0100 ++++ xauth/Makefile.am 2004-08-14 13:20:37.000000000 +0200 +@@ -0,0 +1,53 @@ ++# ++# $Id: Makefile.am,v 1.2 2004/06/25 19:38:50 markh Exp $ ++# ++# Copyright © 2003 Keith Packard ++# ++# Permission to use, copy, modify, distribute, and sell this software and its ++# documentation for any purpose is hereby granted without fee, provided that ++# the above copyright notice appear in all copies and that both that ++# copyright notice and this permission notice appear in supporting ++# documentation, and that the name of Keith Packard not be used in ++# advertising or publicity pertaining to distribution of the software without ++# specific, written prior permission. Keith Packard makes no ++# representations about the suitability of this software for any purpose. It ++# is provided "as is" without express or implied warranty. ++# ++# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, ++# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO ++# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR ++# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, ++# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER ++# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR ++# PERFORMANCE OF THIS SOFTWARE. ++# ++ ++AUTOMAKE_OPTIONS = 1.7 foreign ++ ++AM_CFLAGS = @XAUTH_CFLAGS@ ++ ++bin_PROGRAMS = xauth ++ ++xauth_SOURCES = gethost.c parsedpy.c process.c xauth.c xauth.h ++ ++xauth_LDADD = @XAUTH_LIBS@ ++ ++man5_MANS=xauth.man ++ ++EXTRA_DIST= $(man5_MANS) ++ ++MAINTAINERCLEANFILES = configure \ ++config.guess \ ++config.sub \ ++install-sh \ ++ltmain.sh \ ++missing \ ++mkinstalldirs \ ++aclocal.m4 \ ++Makefile.in \ ++depcomp \ ++autoscan.log \ ++configure.scan \ ++config.h \ ++config.h.in \ ++$(man5_MANS) +diff -urN xauth.orig/autogen.sh xauth/autogen.sh +--- xauth.orig/autogen.sh 1970-01-01 01:00:00.000000000 +0100 ++++ xauth/autogen.sh 2004-08-14 13:15:46.000000000 +0200 +@@ -0,0 +1,3 @@ ++#! /bin/sh ++autoreconf -v --install || exit 1 ++./configure --enable-maintainer-mode "$@" +diff -urN xauth.orig/configure.ac xauth/configure.ac +--- xauth.orig/configure.ac 1970-01-01 01:00:00.000000000 +0100 ++++ xauth/configure.ac 2004-08-14 23:43:54.000000000 +0200 +@@ -0,0 +1,57 @@ ++dnl ++dnl $Id: configure.ac,v 1.1 2003/10/09 06:16:59 keithp Exp $ ++dnl ++dnl Copyright © 2003 Keith Packard ++dnl ++dnl Permission to use, copy, modify, distribute, and sell this software and its ++dnl documentation for any purpose is hereby granted without fee, provided that ++dnl the above copyright notice appear in all copies and that both that ++dnl copyright notice and this permission notice appear in supporting ++dnl documentation, and that the name of Keith Packard not be used in ++dnl advertising or publicity pertaining to distribution of the software without ++dnl specific, written prior permission. Keith Packard makes no ++dnl representations about the suitability of this software for any purpose. It ++dnl is provided "as is" without express or implied warranty. ++dnl ++dnl KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, ++dnl INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO ++dnl EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR ++dnl CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, ++dnl DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER ++dnl TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR ++dnl PERFORMANCE OF THIS SOFTWARE. ++dnl ++ ++AC_PREREQ(2.57) ++AC_INIT([xauth],4.4.0,[],xauth) ++AC_CONFIG_SRCDIR([Makefile.am]) ++AM_INIT_AUTOMAKE([dist-bzip2]) ++AM_MAINTAINER_MODE ++AM_CONFIG_HEADER(config.h) ++ ++AC_PROG_CC ++AC_PROG_INSTALL ++AC_PROG_LN_S ++AC_LIBTOOL_WIN32_DLL ++AM_PROG_LIBTOOL ++AC_PROG_MAKE_SET ++ ++PKG_CHECK_MODULES(XAUTH, xau xext xmuu x11) ++ ++AC_TYPE_SIGNAL ++ ++# Transport selection ++AC_ARG_ENABLE(unix-transport,[ --disable-unix-transport ], [UNIXCONN=$enableval], [UNIXCONN=yes]) ++AC_ARG_ENABLE(tcp-transport, [ --disable-tcp-transport ], [TCPCONN=$enableval], [TCPCONN=yes]) ++AC_ARG_ENABLE(ipv6, [ --disable-ipv6 ], [IPV6CONN=$enableval], [IPV6CONN=yes]) ++if test "$UNIXCONN" = "yes"; then ++ AC_DEFINE(UNIXCONN,1,[Support UNIX socket connections]) ++fi ++if test "$TCPCONN" = "yes"; then ++ AC_DEFINE(TCPCONN,1,[Support TCP socket connections]) ++fi ++if test "$IPV6CONN" = "yes"; then ++ AC_DEFINE(IPv6,1,[Support IPv6 for TCP connections]) ++fi ++ ++AC_OUTPUT([Makefile]) diff --git a/recipes/obsolete/xorg/xorg-app/xdpyinfo/disable-xkb.patch b/recipes/obsolete/xorg/xorg-app/xdpyinfo/disable-xkb.patch new file mode 100644 index 0000000000..24af21f4fc --- /dev/null +++ b/recipes/obsolete/xorg/xorg-app/xdpyinfo/disable-xkb.patch @@ -0,0 +1,18 @@ +--- xdpyinfo-1.0.1/configure.ac.orig 2006-03-08 16:33:05.000000000 +0100 ++++ xdpyinfo-1.0.1/configure.ac 2006-03-08 16:41:59.000000000 +0100 +@@ -45,11 +45,15 @@ + AC_CHECK_HEADERS([X11/extensions/multibuf.h X11/extensions/XShm.h],,,[#include ]) + CPPFLAGS="$SAVE_CPPFLAGS"],[echo "not found"]) + ++AC_ARG_ENABLE(xkb, AC_HELP_STRING([--disable-xkb], [Disable XKB support]), ++ XKB="$enableval", XKB="yes") ++if test "x$XKB" = "xyes" ; then + PKG_CHECK_MODULES(DPY_XKB, x11, + [SAVE_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $DPY_XKB_CFLAGS $DPY_X11_CFLAGS" + AC_CHECK_HEADERS([X11/extensions/XKB.h X11/XKBlib.h],,,[#include ]) + CPPFLAGS="$SAVE_CPPFLAGS"],[echo "not found"]) ++fi + + PKG_CHECK_MODULES(DPY_XF86VIDMODE, xxf86vm, + [SAVE_CPPFLAGS="$CPPFLAGS" diff --git a/recipes/obsolete/xorg/xorg-app/xev/diet-x11.patch b/recipes/obsolete/xorg/xorg-app/xev/diet-x11.patch new file mode 100644 index 0000000000..9f515e8c73 --- /dev/null +++ b/recipes/obsolete/xorg/xorg-app/xev/diet-x11.patch @@ -0,0 +1,80 @@ +--- + xev.c | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +Index: xev-1.0.2/xev.c +=================================================================== +--- xev-1.0.2.orig/xev.c 2006-06-02 00:25:44.000000000 +0100 ++++ xev-1.0.2/xev.c 2007-05-10 15:22:07.000000000 +0100 +@@ -109,7 +109,7 @@ do_KeyPress (XEvent *eventp) + nbytes = XLookupString (e, str, 256, &ks, NULL); + + /* not supposed to call XmbLookupString on a key release event */ +- if (e->type == KeyPress && xic) { ++ /*if (e->type == KeyPress && xic) { + do { + nmbbytes = XmbLookupString (xic, e, buf, bsize - 1, &ks, &status); + buf[nmbbytes] = '\0'; +@@ -119,7 +119,7 @@ do_KeyPress (XEvent *eventp) + buf = realloc (buf, bsize); + } + } while (status == XBufferOverflow); +- } ++ }*/ + + if (ks == NoSymbol) + ksname = "NoSymbol"; +@@ -149,7 +149,7 @@ do_KeyPress (XEvent *eventp) + } + + /* not supposed to call XmbLookupString on a key release event */ +- if (e->type == KeyPress && xic) { ++ /*if (e->type == KeyPress && xic) { + printf (" XmbLookupString gives %d bytes: ", nmbbytes); + if (nmbbytes > 0) { + dump (buf, nmbbytes); +@@ -157,7 +157,7 @@ do_KeyPress (XEvent *eventp) + } else { + printf ("\n"); + } +- } ++ } */ + + printf (" XFilterEvent returns: %s\n", + XFilterEvent (eventp, e->window) ? "True" : "False"); +@@ -804,7 +804,7 @@ main (int argc, char **argv) + fprintf (stderr, "%s: XSetLocaleModifiers failed\n", ProgramName); + } + +- xim = XOpenIM (dpy, NULL, NULL, NULL); ++ /*xim = XOpenIM (dpy, NULL, NULL, NULL); + if (xim == NULL) { + fprintf (stderr, "%s: XOpenIM failed\n", ProgramName); + } +@@ -831,7 +831,7 @@ main (int argc, char **argv) + } + XFree (xim_styles); + } +- } ++ }*/ + + screen = DefaultScreen (dpy); + +@@ -891,7 +891,7 @@ main (int argc, char **argv) + printf ("Outer window is 0x%lx, inner window is 0x%lx\n", w, subw); + } + +- if (xim && xim_style) { ++ /*if (xim && xim_style) { + xic = XCreateIC (xim, + XNInputStyle, xim_style, + XNClientWindow, w, +@@ -901,7 +901,7 @@ main (int argc, char **argv) + if (xic == NULL) { + fprintf (stderr, "XCreateIC failed\n"); + } +- } ++ }*/ + + for (done = 0; !done; ) { + XEvent event; diff --git a/recipes/obsolete/xorg/xorg-app/xhost/autofoo.patch b/recipes/obsolete/xorg/xorg-app/xhost/autofoo.patch new file mode 100644 index 0000000000..b29f017abc --- /dev/null +++ b/recipes/obsolete/xorg/xorg-app/xhost/autofoo.patch @@ -0,0 +1,165 @@ +diff -urN xhost.orig/Imakefile xhost/Imakefile +--- xhost.orig/Imakefile 2003-11-14 16:54:53.000000000 +0100 ++++ xhost/Imakefile 1970-01-01 01:00:00.000000000 +0100 +@@ -1,16 +0,0 @@ +-XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:54:24 cpqbld Exp $ +-#if HasSecureRPC +-RPC_DEFINES = -DSECURE_RPC +-#else +-RPC_DEFINES = +-#endif +-KRB5_DEFINES = Krb5Defines +-KRB5_INCLUDE = Krb5Includes +- INCLUDES = $(KRB5_INCLUDE) +- DEPLIBS = $(DEPXMULIB) $(DEPXLIB) +-LOCAL_LIBRARIES = $(XMULIB) $(XLIB) +- SRCS = xhost.c +- OBJS = xhost.o +- DEFINES = ConnectionFlags $(SIGNAL_DEFINES) $(RPC_DEFINES) $(KRB5_DEFINES) +- +-ComplexProgramTarget(xhost) +diff -urN xhost.orig/Makefile.am xhost/Makefile.am +--- xhost.orig/Makefile.am 1970-01-01 01:00:00.000000000 +0100 ++++ xhost/Makefile.am 2004-08-15 17:43:47.000000000 +0200 +@@ -0,0 +1,53 @@ ++# ++# $Id: Makefile.am,v 1.2 2004/06/25 19:38:50 markh Exp $ ++# ++# Copyright © 2003 Keith Packard ++# ++# Permission to use, copy, modify, distribute, and sell this software and its ++# documentation for any purpose is hereby granted without fee, provided that ++# the above copyright notice appear in all copies and that both that ++# copyright notice and this permission notice appear in supporting ++# documentation, and that the name of Keith Packard not be used in ++# advertising or publicity pertaining to distribution of the software without ++# specific, written prior permission. Keith Packard makes no ++# representations about the suitability of this software for any purpose. It ++# is provided "as is" without express or implied warranty. ++# ++# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, ++# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO ++# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR ++# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, ++# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER ++# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR ++# PERFORMANCE OF THIS SOFTWARE. ++# ++ ++AUTOMAKE_OPTIONS = 1.7 foreign ++ ++AM_CFLAGS = @XHOST_CFLAGS@ ++ ++bin_PROGRAMS = xhost ++ ++xhost_SOURCES = xhost.c ++ ++xhost_LDADD = @XHOST_LIBS@ ++ ++man5_MANS=xhost.man ++ ++EXTRA_DIST= $(man5_MANS) ++ ++MAINTAINERCLEANFILES = configure \ ++config.guess \ ++config.sub \ ++install-sh \ ++ltmain.sh \ ++missing \ ++mkinstalldirs \ ++aclocal.m4 \ ++Makefile.in \ ++depcomp \ ++autoscan.log \ ++configure.scan \ ++config.h \ ++config.h.in \ ++$(man5_MANS) +diff -urN xhost.orig/configure.ac xhost/configure.ac +--- xhost.orig/configure.ac 1970-01-01 01:00:00.000000000 +0100 ++++ xhost/configure.ac 2004-08-15 17:43:42.000000000 +0200 +@@ -0,0 +1,57 @@ ++dnl ++dnl $Id: configure.ac,v 1.1 2003/10/09 06:16:59 keithp Exp $ ++dnl ++dnl Copyright © 2003 Keith Packard ++dnl ++dnl Permission to use, copy, modify, distribute, and sell this software and its ++dnl documentation for any purpose is hereby granted without fee, provided that ++dnl the above copyright notice appear in all copies and that both that ++dnl copyright notice and this permission notice appear in supporting ++dnl documentation, and that the name of Keith Packard not be used in ++dnl advertising or publicity pertaining to distribution of the software without ++dnl specific, written prior permission. Keith Packard makes no ++dnl representations about the suitability of this software for any purpose. It ++dnl is provided "as is" without express or implied warranty. ++dnl ++dnl KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, ++dnl INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO ++dnl EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR ++dnl CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, ++dnl DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER ++dnl TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR ++dnl PERFORMANCE OF THIS SOFTWARE. ++dnl ++ ++AC_PREREQ(2.57) ++AC_INIT([xhost],4.4.0,[],xhost) ++AC_CONFIG_SRCDIR([Makefile.am]) ++AM_INIT_AUTOMAKE([dist-bzip2]) ++AM_MAINTAINER_MODE ++AM_CONFIG_HEADER(config.h) ++ ++AC_PROG_CC ++AC_PROG_INSTALL ++AC_PROG_LN_S ++AC_LIBTOOL_WIN32_DLL ++AM_PROG_LIBTOOL ++AC_PROG_MAKE_SET ++ ++PKG_CHECK_MODULES(XHOST, xext xmuu x11) ++ ++AC_TYPE_SIGNAL ++ ++# Transport selection ++AC_ARG_ENABLE(unix-transport,[ --disable-unix-transport ], [UNIXCONN=$enableval], [UNIXCONN=yes]) ++AC_ARG_ENABLE(tcp-transport, [ --disable-tcp-transport ], [TCPCONN=$enableval], [TCPCONN=yes]) ++AC_ARG_ENABLE(ipv6, [ --disable-ipv6 ], [IPV6CONN=$enableval], [IPV6CONN=yes]) ++if test "$UNIXCONN" = "yes"; then ++ AC_DEFINE(UNIXCONN,1,[Support UNIX socket connections]) ++fi ++if test "$TCPCONN" = "yes"; then ++ AC_DEFINE(TCPCONN,1,[Support TCP socket connections]) ++fi ++if test "$IPV6CONN" = "yes"; then ++ AC_DEFINE(IPv6,1,[Support IPv6 for TCP connections]) ++fi ++ ++AC_OUTPUT([Makefile]) +diff -urN xhost.orig/xhost.c xhost/xhost.c +--- xhost.orig/xhost.c 2003-11-14 16:54:53.000000000 +0100 ++++ xhost/xhost.c 2004-08-15 17:53:07.000000000 +0200 +@@ -27,6 +27,10 @@ + + */ + ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ + #if defined(TCPCONN) || defined(STREAMSCONN) + #define NEEDSOCKETS + #endif +@@ -102,11 +106,7 @@ + static int local_xerror(); + static char *get_hostname(); + +-#ifdef SIGNALRETURNSINT +-#define signal_t int +-#else +-#define signal_t void +-#endif ++#define signal_t RETSIGTYPE + static signal_t nameserver_lost(); + + #define NAMESERVER_TIMEOUT 5 /* time to wait for nameserver */ diff --git a/recipes/xorg-app/xauth/autofoo.patch b/recipes/xorg-app/xauth/autofoo.patch deleted file mode 100644 index d279a6f4fc..0000000000 --- a/recipes/xorg-app/xauth/autofoo.patch +++ /dev/null @@ -1,148 +0,0 @@ -diff -urN xauth.orig/Imakefile xauth/Imakefile ---- xauth.orig/Imakefile 2004-04-23 21:54:38.000000000 +0200 -+++ xauth/Imakefile 1970-01-01 01:00:00.000000000 +0100 -@@ -1,19 +0,0 @@ --XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:54:11 cpqbld Exp $ -- -- -- -- --XCOMM $XFree86: xc/programs/xauth/Imakefile,v 3.5tsi Exp $ -- -- DEPLIBS = $(DEPXAUTHLIB) $(DEPXMUULIB) $(DEPXLIB) --LOCAL_LIBRARIES = $(XAUTHLIB) $(XMUULIB) $(XLIB) -- SRCS = xauth.c gethost.c process.c parsedpy.c -- OBJS = xauth.o gethost.o process.o parsedpy.o -- CONN_DEFINES = $(CONNECTION_FLAGS) -- DEPEND_DEFINES = $(CONN_DEFINES) $(SIGNAL_DEFINES) -- --ComplexProgramTarget(xauth) -- --SpecialCObjectRule(gethost,$(ICONFIGFILES),$(CONN_DEFINES) $(SIGNAL_DEFINES)) --SpecialCObjectRule(process,$(ICONFIGFILES),$(CONN_DEFINES) $(SIGNAL_DEFINES)) --SpecialCObjectRule(parsedpy,$(ICONFIGFILES),$(CONN_DEFINES)) -diff -urN xauth.orig/Makefile.am xauth/Makefile.am ---- xauth.orig/Makefile.am 1970-01-01 01:00:00.000000000 +0100 -+++ xauth/Makefile.am 2004-08-14 13:20:37.000000000 +0200 -@@ -0,0 +1,53 @@ -+# -+# $Id: Makefile.am,v 1.2 2004/06/25 19:38:50 markh Exp $ -+# -+# Copyright © 2003 Keith Packard -+# -+# Permission to use, copy, modify, distribute, and sell this software and its -+# documentation for any purpose is hereby granted without fee, provided that -+# the above copyright notice appear in all copies and that both that -+# copyright notice and this permission notice appear in supporting -+# documentation, and that the name of Keith Packard not be used in -+# advertising or publicity pertaining to distribution of the software without -+# specific, written prior permission. Keith Packard makes no -+# representations about the suitability of this software for any purpose. It -+# is provided "as is" without express or implied warranty. -+# -+# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO -+# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR -+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -+# PERFORMANCE OF THIS SOFTWARE. -+# -+ -+AUTOMAKE_OPTIONS = 1.7 foreign -+ -+AM_CFLAGS = @XAUTH_CFLAGS@ -+ -+bin_PROGRAMS = xauth -+ -+xauth_SOURCES = gethost.c parsedpy.c process.c xauth.c xauth.h -+ -+xauth_LDADD = @XAUTH_LIBS@ -+ -+man5_MANS=xauth.man -+ -+EXTRA_DIST= $(man5_MANS) -+ -+MAINTAINERCLEANFILES = configure \ -+config.guess \ -+config.sub \ -+install-sh \ -+ltmain.sh \ -+missing \ -+mkinstalldirs \ -+aclocal.m4 \ -+Makefile.in \ -+depcomp \ -+autoscan.log \ -+configure.scan \ -+config.h \ -+config.h.in \ -+$(man5_MANS) -diff -urN xauth.orig/autogen.sh xauth/autogen.sh ---- xauth.orig/autogen.sh 1970-01-01 01:00:00.000000000 +0100 -+++ xauth/autogen.sh 2004-08-14 13:15:46.000000000 +0200 -@@ -0,0 +1,3 @@ -+#! /bin/sh -+autoreconf -v --install || exit 1 -+./configure --enable-maintainer-mode "$@" -diff -urN xauth.orig/configure.ac xauth/configure.ac ---- xauth.orig/configure.ac 1970-01-01 01:00:00.000000000 +0100 -+++ xauth/configure.ac 2004-08-14 23:43:54.000000000 +0200 -@@ -0,0 +1,57 @@ -+dnl -+dnl $Id: configure.ac,v 1.1 2003/10/09 06:16:59 keithp Exp $ -+dnl -+dnl Copyright © 2003 Keith Packard -+dnl -+dnl Permission to use, copy, modify, distribute, and sell this software and its -+dnl documentation for any purpose is hereby granted without fee, provided that -+dnl the above copyright notice appear in all copies and that both that -+dnl copyright notice and this permission notice appear in supporting -+dnl documentation, and that the name of Keith Packard not be used in -+dnl advertising or publicity pertaining to distribution of the software without -+dnl specific, written prior permission. Keith Packard makes no -+dnl representations about the suitability of this software for any purpose. It -+dnl is provided "as is" without express or implied warranty. -+dnl -+dnl KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -+dnl INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO -+dnl EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR -+dnl CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -+dnl DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -+dnl TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -+dnl PERFORMANCE OF THIS SOFTWARE. -+dnl -+ -+AC_PREREQ(2.57) -+AC_INIT([xauth],4.4.0,[],xauth) -+AC_CONFIG_SRCDIR([Makefile.am]) -+AM_INIT_AUTOMAKE([dist-bzip2]) -+AM_MAINTAINER_MODE -+AM_CONFIG_HEADER(config.h) -+ -+AC_PROG_CC -+AC_PROG_INSTALL -+AC_PROG_LN_S -+AC_LIBTOOL_WIN32_DLL -+AM_PROG_LIBTOOL -+AC_PROG_MAKE_SET -+ -+PKG_CHECK_MODULES(XAUTH, xau xext xmuu x11) -+ -+AC_TYPE_SIGNAL -+ -+# Transport selection -+AC_ARG_ENABLE(unix-transport,[ --disable-unix-transport ], [UNIXCONN=$enableval], [UNIXCONN=yes]) -+AC_ARG_ENABLE(tcp-transport, [ --disable-tcp-transport ], [TCPCONN=$enableval], [TCPCONN=yes]) -+AC_ARG_ENABLE(ipv6, [ --disable-ipv6 ], [IPV6CONN=$enableval], [IPV6CONN=yes]) -+if test "$UNIXCONN" = "yes"; then -+ AC_DEFINE(UNIXCONN,1,[Support UNIX socket connections]) -+fi -+if test "$TCPCONN" = "yes"; then -+ AC_DEFINE(TCPCONN,1,[Support TCP socket connections]) -+fi -+if test "$IPV6CONN" = "yes"; then -+ AC_DEFINE(IPv6,1,[Support IPv6 for TCP connections]) -+fi -+ -+AC_OUTPUT([Makefile]) diff --git a/recipes/xorg-app/xhost/autofoo.patch b/recipes/xorg-app/xhost/autofoo.patch deleted file mode 100644 index b29f017abc..0000000000 --- a/recipes/xorg-app/xhost/autofoo.patch +++ /dev/null @@ -1,165 +0,0 @@ -diff -urN xhost.orig/Imakefile xhost/Imakefile ---- xhost.orig/Imakefile 2003-11-14 16:54:53.000000000 +0100 -+++ xhost/Imakefile 1970-01-01 01:00:00.000000000 +0100 -@@ -1,16 +0,0 @@ --XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:54:24 cpqbld Exp $ --#if HasSecureRPC --RPC_DEFINES = -DSECURE_RPC --#else --RPC_DEFINES = --#endif --KRB5_DEFINES = Krb5Defines --KRB5_INCLUDE = Krb5Includes -- INCLUDES = $(KRB5_INCLUDE) -- DEPLIBS = $(DEPXMULIB) $(DEPXLIB) --LOCAL_LIBRARIES = $(XMULIB) $(XLIB) -- SRCS = xhost.c -- OBJS = xhost.o -- DEFINES = ConnectionFlags $(SIGNAL_DEFINES) $(RPC_DEFINES) $(KRB5_DEFINES) -- --ComplexProgramTarget(xhost) -diff -urN xhost.orig/Makefile.am xhost/Makefile.am ---- xhost.orig/Makefile.am 1970-01-01 01:00:00.000000000 +0100 -+++ xhost/Makefile.am 2004-08-15 17:43:47.000000000 +0200 -@@ -0,0 +1,53 @@ -+# -+# $Id: Makefile.am,v 1.2 2004/06/25 19:38:50 markh Exp $ -+# -+# Copyright © 2003 Keith Packard -+# -+# Permission to use, copy, modify, distribute, and sell this software and its -+# documentation for any purpose is hereby granted without fee, provided that -+# the above copyright notice appear in all copies and that both that -+# copyright notice and this permission notice appear in supporting -+# documentation, and that the name of Keith Packard not be used in -+# advertising or publicity pertaining to distribution of the software without -+# specific, written prior permission. Keith Packard makes no -+# representations about the suitability of this software for any purpose. It -+# is provided "as is" without express or implied warranty. -+# -+# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO -+# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR -+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -+# PERFORMANCE OF THIS SOFTWARE. -+# -+ -+AUTOMAKE_OPTIONS = 1.7 foreign -+ -+AM_CFLAGS = @XHOST_CFLAGS@ -+ -+bin_PROGRAMS = xhost -+ -+xhost_SOURCES = xhost.c -+ -+xhost_LDADD = @XHOST_LIBS@ -+ -+man5_MANS=xhost.man -+ -+EXTRA_DIST= $(man5_MANS) -+ -+MAINTAINERCLEANFILES = configure \ -+config.guess \ -+config.sub \ -+install-sh \ -+ltmain.sh \ -+missing \ -+mkinstalldirs \ -+aclocal.m4 \ -+Makefile.in \ -+depcomp \ -+autoscan.log \ -+configure.scan \ -+config.h \ -+config.h.in \ -+$(man5_MANS) -diff -urN xhost.orig/configure.ac xhost/configure.ac ---- xhost.orig/configure.ac 1970-01-01 01:00:00.000000000 +0100 -+++ xhost/configure.ac 2004-08-15 17:43:42.000000000 +0200 -@@ -0,0 +1,57 @@ -+dnl -+dnl $Id: configure.ac,v 1.1 2003/10/09 06:16:59 keithp Exp $ -+dnl -+dnl Copyright © 2003 Keith Packard -+dnl -+dnl Permission to use, copy, modify, distribute, and sell this software and its -+dnl documentation for any purpose is hereby granted without fee, provided that -+dnl the above copyright notice appear in all copies and that both that -+dnl copyright notice and this permission notice appear in supporting -+dnl documentation, and that the name of Keith Packard not be used in -+dnl advertising or publicity pertaining to distribution of the software without -+dnl specific, written prior permission. Keith Packard makes no -+dnl representations about the suitability of this software for any purpose. It -+dnl is provided "as is" without express or implied warranty. -+dnl -+dnl KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -+dnl INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO -+dnl EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR -+dnl CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -+dnl DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -+dnl TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -+dnl PERFORMANCE OF THIS SOFTWARE. -+dnl -+ -+AC_PREREQ(2.57) -+AC_INIT([xhost],4.4.0,[],xhost) -+AC_CONFIG_SRCDIR([Makefile.am]) -+AM_INIT_AUTOMAKE([dist-bzip2]) -+AM_MAINTAINER_MODE -+AM_CONFIG_HEADER(config.h) -+ -+AC_PROG_CC -+AC_PROG_INSTALL -+AC_PROG_LN_S -+AC_LIBTOOL_WIN32_DLL -+AM_PROG_LIBTOOL -+AC_PROG_MAKE_SET -+ -+PKG_CHECK_MODULES(XHOST, xext xmuu x11) -+ -+AC_TYPE_SIGNAL -+ -+# Transport selection -+AC_ARG_ENABLE(unix-transport,[ --disable-unix-transport ], [UNIXCONN=$enableval], [UNIXCONN=yes]) -+AC_ARG_ENABLE(tcp-transport, [ --disable-tcp-transport ], [TCPCONN=$enableval], [TCPCONN=yes]) -+AC_ARG_ENABLE(ipv6, [ --disable-ipv6 ], [IPV6CONN=$enableval], [IPV6CONN=yes]) -+if test "$UNIXCONN" = "yes"; then -+ AC_DEFINE(UNIXCONN,1,[Support UNIX socket connections]) -+fi -+if test "$TCPCONN" = "yes"; then -+ AC_DEFINE(TCPCONN,1,[Support TCP socket connections]) -+fi -+if test "$IPV6CONN" = "yes"; then -+ AC_DEFINE(IPv6,1,[Support IPv6 for TCP connections]) -+fi -+ -+AC_OUTPUT([Makefile]) -diff -urN xhost.orig/xhost.c xhost/xhost.c ---- xhost.orig/xhost.c 2003-11-14 16:54:53.000000000 +0100 -+++ xhost/xhost.c 2004-08-15 17:53:07.000000000 +0200 -@@ -27,6 +27,10 @@ - - */ - -+#ifdef HAVE_CONFIG_H -+#include "config.h" -+#endif -+ - #if defined(TCPCONN) || defined(STREAMSCONN) - #define NEEDSOCKETS - #endif -@@ -102,11 +106,7 @@ - static int local_xerror(); - static char *get_hostname(); - --#ifdef SIGNALRETURNSINT --#define signal_t int --#else --#define signal_t void --#endif -+#define signal_t RETSIGTYPE - static signal_t nameserver_lost(); - - #define NAMESERVER_TIMEOUT 5 /* time to wait for nameserver */ diff --git a/recipes/xorg-lib/libxvmc_1.0.6.bb b/recipes/xorg-lib/libxvmc_1.0.6.bb new file mode 100644 index 0000000000..da13a9722c --- /dev/null +++ b/recipes/xorg-lib/libxvmc_1.0.6.bb @@ -0,0 +1,10 @@ +require xorg-lib-common.inc +DESCRIPTION = "X Video Motion Compensation extension library" +DEPENDS += "libxext libxv videoproto" +PE = "1" +PR = "${INC_PR}.0" + +SRC_URI[archive.md5sum] = "bfc7524646f890dfc30dea1d676004a3" +SRC_URI[archive.sha256sum] = "3dda80e9c71fd14a14f93279c6f661703c5c1c43d104a5db0842377bdf0c3392" + +XORG_PN = "libXvMC" diff --git a/recipes/xorg-lib/pixman-0.18.4/0001-Generic-C-implementation-of-pixman_blt-with-overlapp.patch b/recipes/xorg-lib/pixman-0.18.4/0001-Generic-C-implementation-of-pixman_blt-with-overlapp.patch new file mode 100644 index 0000000000..b2488de4dd --- /dev/null +++ b/recipes/xorg-lib/pixman-0.18.4/0001-Generic-C-implementation-of-pixman_blt-with-overlapp.patch @@ -0,0 +1,114 @@ +From 05875eca09ee23ea04ccb32f87c7c355fd1b88f3 Mon Sep 17 00:00:00 2001 +From: Siarhei Siamashka +Date: Tue, 16 Mar 2010 16:55:28 +0100 +Subject: [PATCH 1/7] Generic C implementation of pixman_blt with overlapping support + +Uses memcpy/memmove functions to copy pixels, can handle the +case when both source and destination areas are in the same +image (this is useful for scrolling). + +It is assumed that copying direction is only important when +using the same image for both source and destination (and +src_stride == dst_stride). Copying direction is undefined +for the images with different source and destination stride +which happen to be in the overlapped areas (but this is an +unrealistic case anyway). +--- + pixman/pixman-general.c | 21 ++++++++++++++++++--- + pixman/pixman-private.h | 43 +++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 61 insertions(+), 3 deletions(-) + +diff --git a/pixman/pixman-general.c b/pixman/pixman-general.c +index bddf79a..f525744 100644 +--- a/pixman/pixman-general.c ++++ b/pixman/pixman-general.c +@@ -285,9 +285,24 @@ general_blt (pixman_implementation_t *imp, + int width, + int height) + { +- /* We can't blit unless we have sse2 or mmx */ +- +- return FALSE; ++ uint8_t *dst_bytes = (uint8_t *)dst_bits; ++ uint8_t *src_bytes = (uint8_t *)src_bits; ++ int bpp; ++ ++ if (src_bpp != dst_bpp || src_bpp & 7) ++ return FALSE; ++ ++ bpp = src_bpp >> 3; ++ width *= bpp; ++ src_stride *= 4; ++ dst_stride *= 4; ++ pixman_blt_helper (src_bytes + src_y * src_stride + src_x * bpp, ++ dst_bytes + dst_y * dst_stride + dst_x * bpp, ++ src_stride, ++ dst_stride, ++ width, ++ height); ++ return TRUE; + } + + static pixman_bool_t +diff --git a/pixman/pixman-private.h b/pixman/pixman-private.h +index d5767af..eeb677d 100644 +--- a/pixman/pixman-private.h ++++ b/pixman/pixman-private.h +@@ -10,6 +10,7 @@ + + #include "pixman.h" + #include ++#include + #include + #include + #include +@@ -867,4 +868,46 @@ void pixman_timer_register (pixman_timer_t *timer); + + #endif /* PIXMAN_TIMERS */ + ++/* a helper function, can blit 8-bit images with src/dst overlapping support */ ++static inline void ++pixman_blt_helper (uint8_t *src_bytes, ++ uint8_t *dst_bytes, ++ int src_stride, ++ int dst_stride, ++ int width, ++ int height) ++{ ++ /* ++ * The second part of this check is not strictly needed, but it prevents ++ * unnecessary upside-down processing of areas which belong to different ++ * images. Upside-down processing can be slower with fixed-distance-ahead ++ * prefetch and perceived as having more tearing. ++ */ ++ if (src_bytes < dst_bytes + width && ++ src_bytes + src_stride * height > dst_bytes) ++ { ++ src_bytes += src_stride * height - src_stride; ++ dst_bytes += dst_stride * height - dst_stride; ++ dst_stride = -dst_stride; ++ src_stride = -src_stride; ++ /* Horizontal scrolling to the left needs memmove */ ++ if (src_bytes + width > dst_bytes) ++ { ++ while (--height >= 0) ++ { ++ memmove (dst_bytes, src_bytes, width); ++ dst_bytes += dst_stride; ++ src_bytes += src_stride; ++ } ++ return; ++ } ++ } ++ while (--height >= 0) ++ { ++ memcpy (dst_bytes, src_bytes, width); ++ dst_bytes += dst_stride; ++ src_bytes += src_stride; ++ } ++} ++ + #endif /* PIXMAN_PRIVATE_H */ +-- +1.6.6.1 + diff --git a/recipes/xorg-lib/pixman-0.18.4/0002-Support-of-overlapping-src-dst-for-pixman_blt_mmx.patch b/recipes/xorg-lib/pixman-0.18.4/0002-Support-of-overlapping-src-dst-for-pixman_blt_mmx.patch new file mode 100644 index 0000000000..ca6a3c5220 --- /dev/null +++ b/recipes/xorg-lib/pixman-0.18.4/0002-Support-of-overlapping-src-dst-for-pixman_blt_mmx.patch @@ -0,0 +1,91 @@ +From 8aca14948a43f5cfd478e22cef745e55960d68cb Mon Sep 17 00:00:00 2001 +From: Siarhei Siamashka +Date: Thu, 22 Oct 2009 05:45:47 +0300 +Subject: [PATCH 2/7] Support of overlapping src/dst for pixman_blt_mmx + +--- + pixman/pixman-mmx.c | 55 +++++++++++++++++++++++++++++--------------------- + 1 files changed, 32 insertions(+), 23 deletions(-) + +diff --git a/pixman/pixman-mmx.c b/pixman/pixman-mmx.c +index d51b40c..6e0296b 100644 +--- a/pixman/pixman-mmx.c ++++ b/pixman/pixman-mmx.c +@@ -2996,34 +2996,43 @@ pixman_blt_mmx (uint32_t *src_bits, + { + uint8_t * src_bytes; + uint8_t * dst_bytes; +- int byte_width; ++ int bpp; + +- if (src_bpp != dst_bpp) ++ if (src_bpp != dst_bpp || src_bpp & 7) + return FALSE; + +- if (src_bpp == 16) +- { +- src_stride = src_stride * (int) sizeof (uint32_t) / 2; +- dst_stride = dst_stride * (int) sizeof (uint32_t) / 2; +- src_bytes = (uint8_t *)(((uint16_t *)src_bits) + src_stride * (src_y) + (src_x)); +- dst_bytes = (uint8_t *)(((uint16_t *)dst_bits) + dst_stride * (dst_y) + (dst_x)); +- byte_width = 2 * width; +- src_stride *= 2; +- dst_stride *= 2; +- } +- else if (src_bpp == 32) ++ bpp = src_bpp >> 3; ++ width *= bpp; ++ src_stride *= 4; ++ dst_stride *= 4; ++ src_bytes = (uint8_t *)src_bits + src_y * src_stride + src_x * bpp; ++ dst_bytes = (uint8_t *)dst_bits + dst_y * dst_stride + dst_x * bpp; ++ ++ if (src_bpp != 16 && src_bpp != 32) + { +- src_stride = src_stride * (int) sizeof (uint32_t) / 4; +- dst_stride = dst_stride * (int) sizeof (uint32_t) / 4; +- src_bytes = (uint8_t *)(((uint32_t *)src_bits) + src_stride * (src_y) + (src_x)); +- dst_bytes = (uint8_t *)(((uint32_t *)dst_bits) + dst_stride * (dst_y) + (dst_x)); +- byte_width = 4 * width; +- src_stride *= 4; +- dst_stride *= 4; ++ pixman_blt_helper (src_bytes, dst_bytes, src_stride, dst_stride, ++ width, height); ++ return TRUE; + } +- else ++ ++ if (src_bytes < dst_bytes && src_bytes + src_stride * height > dst_bytes) + { +- return FALSE; ++ src_bytes += src_stride * height - src_stride; ++ dst_bytes += dst_stride * height - dst_stride; ++ dst_stride = -dst_stride; ++ src_stride = -src_stride; ++ ++ if (src_bytes + width > dst_bytes) ++ { ++ /* TODO: reverse scanline copy using MMX */ ++ while (--height >= 0) ++ { ++ memmove (dst_bytes, src_bytes, width); ++ dst_bytes += dst_stride; ++ src_bytes += src_stride; ++ } ++ return TRUE; ++ } + } + + while (height--) +@@ -3033,7 +3042,7 @@ pixman_blt_mmx (uint32_t *src_bits, + uint8_t *d = dst_bytes; + src_bytes += src_stride; + dst_bytes += dst_stride; +- w = byte_width; ++ w = width; + + while (w >= 2 && ((unsigned long)d & 3)) + { +-- +1.6.6.1 + diff --git a/recipes/xorg-lib/pixman-0.18.4/0003-Support-of-overlapping-src-dst-for-pixman_blt_sse2.patch b/recipes/xorg-lib/pixman-0.18.4/0003-Support-of-overlapping-src-dst-for-pixman_blt_sse2.patch new file mode 100644 index 0000000000..faeb6e67ab --- /dev/null +++ b/recipes/xorg-lib/pixman-0.18.4/0003-Support-of-overlapping-src-dst-for-pixman_blt_sse2.patch @@ -0,0 +1,91 @@ +From 56c446d6912936eabcc6bdd583f37ee1209eff8c Mon Sep 17 00:00:00 2001 +From: Siarhei Siamashka +Date: Thu, 22 Oct 2009 05:45:54 +0300 +Subject: [PATCH 3/7] Support of overlapping src/dst for pixman_blt_sse2 + +--- + pixman/pixman-sse2.c | 55 +++++++++++++++++++++++++++++-------------------- + 1 files changed, 32 insertions(+), 23 deletions(-) + +diff --git a/pixman/pixman-sse2.c b/pixman/pixman-sse2.c +index d5349d7..aa34012 100644 +--- a/pixman/pixman-sse2.c ++++ b/pixman/pixman-sse2.c +@@ -5328,34 +5328,43 @@ pixman_blt_sse2 (uint32_t *src_bits, + { + uint8_t * src_bytes; + uint8_t * dst_bytes; +- int byte_width; ++ int bpp; + +- if (src_bpp != dst_bpp) ++ if (src_bpp != dst_bpp || src_bpp & 7) + return FALSE; + +- if (src_bpp == 16) +- { +- src_stride = src_stride * (int) sizeof (uint32_t) / 2; +- dst_stride = dst_stride * (int) sizeof (uint32_t) / 2; +- src_bytes =(uint8_t *)(((uint16_t *)src_bits) + src_stride * (src_y) + (src_x)); +- dst_bytes = (uint8_t *)(((uint16_t *)dst_bits) + dst_stride * (dst_y) + (dst_x)); +- byte_width = 2 * width; +- src_stride *= 2; +- dst_stride *= 2; +- } +- else if (src_bpp == 32) ++ bpp = src_bpp >> 3; ++ width *= bpp; ++ src_stride *= 4; ++ dst_stride *= 4; ++ src_bytes = (uint8_t *)src_bits + src_y * src_stride + src_x * bpp; ++ dst_bytes = (uint8_t *)dst_bits + dst_y * dst_stride + dst_x * bpp; ++ ++ if (src_bpp != 16 && src_bpp != 32) + { +- src_stride = src_stride * (int) sizeof (uint32_t) / 4; +- dst_stride = dst_stride * (int) sizeof (uint32_t) / 4; +- src_bytes = (uint8_t *)(((uint32_t *)src_bits) + src_stride * (src_y) + (src_x)); +- dst_bytes = (uint8_t *)(((uint32_t *)dst_bits) + dst_stride * (dst_y) + (dst_x)); +- byte_width = 4 * width; +- src_stride *= 4; +- dst_stride *= 4; ++ pixman_blt_helper (src_bytes, dst_bytes, src_stride, dst_stride, ++ width, height); ++ return TRUE; + } +- else ++ ++ if (src_bytes < dst_bytes && src_bytes + src_stride * height > dst_bytes) + { +- return FALSE; ++ src_bytes += src_stride * height - src_stride; ++ dst_bytes += dst_stride * height - dst_stride; ++ dst_stride = -dst_stride; ++ src_stride = -src_stride; ++ ++ if (src_bytes + width > dst_bytes) ++ { ++ /* TODO: reverse scanline copy using SSE2 */ ++ while (--height >= 0) ++ { ++ memmove (dst_bytes, src_bytes, width); ++ dst_bytes += dst_stride; ++ src_bytes += src_stride; ++ } ++ return TRUE; ++ } + } + + cache_prefetch ((__m128i*)src_bytes); +@@ -5368,7 +5377,7 @@ pixman_blt_sse2 (uint32_t *src_bits, + uint8_t *d = dst_bytes; + src_bytes += src_stride; + dst_bytes += dst_stride; +- w = byte_width; ++ w = width; + + cache_prefetch_next ((__m128i*)s); + cache_prefetch_next ((__m128i*)d); +-- +1.6.6.1 + diff --git a/recipes/xorg-lib/pixman-0.18.4/0004-Support-of-overlapping-src-dst-for-pixman_blt_neon.patch b/recipes/xorg-lib/pixman-0.18.4/0004-Support-of-overlapping-src-dst-for-pixman_blt_neon.patch new file mode 100644 index 0000000000..d56fd99c6f --- /dev/null +++ b/recipes/xorg-lib/pixman-0.18.4/0004-Support-of-overlapping-src-dst-for-pixman_blt_neon.patch @@ -0,0 +1,94 @@ +From 80c1eae677a6ea10d67bb7328230626cd8fce08e Mon Sep 17 00:00:00 2001 +From: Siarhei Siamashka +Date: Wed, 18 Nov 2009 06:08:48 +0200 +Subject: [PATCH 4/7] Support of overlapping src/dst for pixman_blt_neon + +--- + pixman/pixman-arm-neon.c | 62 +++++++++++++++++++++++++++++++++++++-------- + 1 files changed, 51 insertions(+), 11 deletions(-) + +diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c +index 6808b36..7feee1d 100644 +--- a/pixman/pixman-arm-neon.c ++++ b/pixman/pixman-arm-neon.c +@@ -168,26 +168,66 @@ pixman_blt_neon (uint32_t *src_bits, + int width, + int height) + { +- if (src_bpp != dst_bpp) ++ uint8_t * src_bytes; ++ uint8_t * dst_bytes; ++ int bpp; ++ ++ if (src_bpp != dst_bpp || src_bpp & 7) + return FALSE; + ++ bpp = src_bpp >> 3; ++ width *= bpp; ++ src_stride *= 4; ++ dst_stride *= 4; ++ src_bytes = (uint8_t *)src_bits + src_y * src_stride + src_x * bpp; ++ dst_bytes = (uint8_t *)dst_bits + dst_y * dst_stride + dst_x * bpp; ++ ++ if (src_bpp != 16 && src_bpp != 32) ++ { ++ pixman_blt_helper (src_bytes, dst_bytes, src_stride, dst_stride, ++ width, height); ++ return TRUE; ++ } ++ ++ if (src_bytes < dst_bytes && src_bytes + src_stride * height > dst_bytes) ++ { ++ src_bytes += src_stride * height - src_stride; ++ dst_bytes += dst_stride * height - dst_stride; ++ dst_stride = -dst_stride; ++ src_stride = -src_stride; ++ ++ if (src_bytes + width > dst_bytes) ++ { ++ /* TODO: reverse scanline copy using NEON */ ++ while (--height >= 0) ++ { ++ memmove (dst_bytes, src_bytes, width); ++ dst_bytes += dst_stride; ++ src_bytes += src_stride; ++ } ++ return TRUE; ++ } ++ } ++ + switch (src_bpp) + { + case 16: + pixman_composite_src_0565_0565_asm_neon ( +- width, height, +- (uint16_t *)(((char *) dst_bits) + +- dst_y * dst_stride * 4 + dst_x * 2), dst_stride * 2, +- (uint16_t *)(((char *) src_bits) + +- src_y * src_stride * 4 + src_x * 2), src_stride * 2); ++ width >> 1, ++ height, ++ (uint16_t *) dst_bytes, ++ dst_stride >> 1, ++ (uint16_t *) src_bytes, ++ src_stride >> 1); + return TRUE; + case 32: + pixman_composite_src_8888_8888_asm_neon ( +- width, height, +- (uint32_t *)(((char *) dst_bits) + +- dst_y * dst_stride * 4 + dst_x * 4), dst_stride, +- (uint32_t *)(((char *) src_bits) + +- src_y * src_stride * 4 + src_x * 4), src_stride); ++ width >> 2, ++ height, ++ (uint32_t *) dst_bytes, ++ dst_stride >> 2, ++ (uint32_t *) src_bytes, ++ src_stride >> 2); + return TRUE; + default: + return FALSE; +-- +1.6.6.1 + diff --git a/recipes/xorg-lib/pixman-0.18.4/0005-ARM-added-NEON-optimizations-for-fetch-store-r5g6b5-.patch b/recipes/xorg-lib/pixman-0.18.4/0005-ARM-added-NEON-optimizations-for-fetch-store-r5g6b5-.patch new file mode 100644 index 0000000000..39eda8b546 --- /dev/null +++ b/recipes/xorg-lib/pixman-0.18.4/0005-ARM-added-NEON-optimizations-for-fetch-store-r5g6b5-.patch @@ -0,0 +1,169 @@ +From 2f5774db49521e990c5e9f7cac684a06f4e67a43 Mon Sep 17 00:00:00 2001 +From: Siarhei Siamashka +Date: Thu, 10 Dec 2009 00:51:50 +0200 +Subject: [PATCH 5/7] ARM: added NEON optimizations for fetch/store r5g6b5 scanline + +--- + pixman/pixman-access.c | 23 ++++++++++++++++++++++- + pixman/pixman-arm-neon-asm.S | 20 ++++++++++++++++++++ + pixman/pixman-arm-neon.c | 41 +++++++++++++++++++++++++++++++++++++++++ + pixman/pixman-private.h | 5 +++++ + 4 files changed, 88 insertions(+), 1 deletions(-) + +diff --git a/pixman/pixman-access.c b/pixman/pixman-access.c +index fa0a267..5bb3e09 100644 +--- a/pixman/pixman-access.c ++++ b/pixman/pixman-access.c +@@ -2748,7 +2748,7 @@ typedef struct + store_scanline_ ## format, store_scanline_generic_64 \ + } + +-static const format_info_t accessors[] = ++static format_info_t accessors[] = + { + /* 32 bpp formats */ + FORMAT_INFO (a8r8g8b8), +@@ -2891,6 +2891,27 @@ _pixman_bits_image_setup_raw_accessors (bits_image_t *image) + setup_accessors (image); + } + ++void ++_pixman_bits_override_accessors (pixman_format_code_t format, ++ fetch_scanline_t fetch_func, ++ store_scanline_t store_func) ++{ ++ format_info_t *info = accessors; ++ ++ while (info->format != PIXMAN_null) ++ { ++ if (info->format == format) ++ { ++ if (fetch_func) ++ info->fetch_scanline_raw_32 = fetch_func; ++ if (store_func) ++ info->store_scanline_raw_32 = store_func; ++ return; ++ } ++ info++; ++ } ++} ++ + #else + + void +diff --git a/pixman/pixman-arm-neon-asm.S b/pixman/pixman-arm-neon-asm.S +index 51bc347..f30869e 100644 +--- a/pixman/pixman-arm-neon-asm.S ++++ b/pixman/pixman-arm-neon-asm.S +@@ -458,6 +458,16 @@ generate_composite_function \ + pixman_composite_src_8888_0565_process_pixblock_tail, \ + pixman_composite_src_8888_0565_process_pixblock_tail_head + ++generate_composite_function_single_scanline \ ++ pixman_store_scanline_r5g6b5_asm_neon, 32, 0, 16, \ ++ FLAG_DST_WRITEONLY | FLAG_DEINTERLEAVE_32BPP, \ ++ 8, /* number of pixels, processed in a single block */ \ ++ default_init, \ ++ default_cleanup, \ ++ pixman_composite_src_8888_0565_process_pixblock_head, \ ++ pixman_composite_src_8888_0565_process_pixblock_tail, \ ++ pixman_composite_src_8888_0565_process_pixblock_tail_head ++ + /******************************************************************************/ + + .macro pixman_composite_src_0565_8888_process_pixblock_head +@@ -493,6 +503,16 @@ generate_composite_function \ + pixman_composite_src_0565_8888_process_pixblock_tail, \ + pixman_composite_src_0565_8888_process_pixblock_tail_head + ++generate_composite_function_single_scanline \ ++ pixman_fetch_scanline_r5g6b5_asm_neon, 16, 0, 32, \ ++ FLAG_DST_WRITEONLY | FLAG_DEINTERLEAVE_32BPP, \ ++ 8, /* number of pixels, processed in a single block */ \ ++ default_init, \ ++ default_cleanup, \ ++ pixman_composite_src_0565_8888_process_pixblock_head, \ ++ pixman_composite_src_0565_8888_process_pixblock_tail, \ ++ pixman_composite_src_0565_8888_process_pixblock_tail_head ++ + /******************************************************************************/ + + .macro pixman_composite_add_8000_8000_process_pixblock_head +diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c +index 7feee1d..fda7a09 100644 +--- a/pixman/pixman-arm-neon.c ++++ b/pixman/pixman-arm-neon.c +@@ -375,6 +375,43 @@ neon_combine_##name##_u (pixman_implementation_t *imp, \ + BIND_COMBINE_U (over) + BIND_COMBINE_U (add) + ++void ++pixman_fetch_scanline_r5g6b5_asm_neon (int width, ++ uint32_t *buffer, ++ const uint16_t *pixel); ++void ++pixman_store_scanline_r5g6b5_asm_neon (int width, ++ uint16_t *pixel, ++ const uint32_t *values); ++ ++static void ++neon_fetch_scanline_r5g6b5 (pixman_image_t *image, ++ int x, ++ int y, ++ int width, ++ uint32_t * buffer, ++ const uint32_t *mask, ++ uint32_t mask_bits) ++{ ++ const uint32_t *bits = image->bits.bits + y * image->bits.rowstride; ++ const uint16_t *pixel = (const uint16_t *)bits + x; ++ ++ pixman_fetch_scanline_r5g6b5_asm_neon (width, buffer, pixel); ++} ++ ++static void ++neon_store_scanline_r5g6b5 (bits_image_t * image, ++ int x, ++ int y, ++ int width, ++ const uint32_t *values) ++{ ++ uint32_t *bits = image->bits + image->rowstride * y; ++ uint16_t *pixel = ((uint16_t *) bits) + x; ++ ++ pixman_store_scanline_r5g6b5_asm_neon (width, pixel, values); ++} ++ + pixman_implementation_t * + _pixman_implementation_create_arm_neon (void) + { +@@ -385,6 +422,10 @@ _pixman_implementation_create_arm_neon (void) + imp->combine_32[PIXMAN_OP_OVER] = neon_combine_over_u; + imp->combine_32[PIXMAN_OP_ADD] = neon_combine_add_u; + ++ _pixman_bits_override_accessors (PIXMAN_r5g6b5, ++ neon_fetch_scanline_r5g6b5, ++ neon_store_scanline_r5g6b5); ++ + imp->blt = arm_neon_blt; + imp->fill = arm_neon_fill; + +diff --git a/pixman/pixman-private.h b/pixman/pixman-private.h +index eeb677d..ba2d401 100644 +--- a/pixman/pixman-private.h ++++ b/pixman/pixman-private.h +@@ -220,6 +220,11 @@ void + _pixman_bits_image_setup_raw_accessors (bits_image_t *image); + + void ++_pixman_bits_override_accessors (pixman_format_code_t format, ++ fetch_scanline_t fetch_func, ++ store_scanline_t store_func); ++ ++void + _pixman_image_get_scanline_generic_64 (pixman_image_t *image, + int x, + int y, +-- +1.6.6.1 + diff --git a/recipes/xorg-lib/pixman-0.18.4/0006-A-copy-paste-version-of-16bpp-bilinear-scanline-fetc.patch b/recipes/xorg-lib/pixman-0.18.4/0006-A-copy-paste-version-of-16bpp-bilinear-scanline-fetc.patch new file mode 100644 index 0000000000..dd0e0f6d4e --- /dev/null +++ b/recipes/xorg-lib/pixman-0.18.4/0006-A-copy-paste-version-of-16bpp-bilinear-scanline-fetc.patch @@ -0,0 +1,261 @@ +From fc24a2d8d0039cd10de4175da40bb784e2c3bf49 Mon Sep 17 00:00:00 2001 +From: Siarhei Siamashka +Date: Fri, 4 Dec 2009 16:49:19 +0000 +Subject: [PATCH 6/7] A copy-paste version of 16bpp bilinear scanline fetcher + +--- + pixman/pixman-bits-image.c | 228 +++++++++++++++++++++++++++++++++++++++++++- + 1 files changed, 223 insertions(+), 5 deletions(-) + +diff --git a/pixman/pixman-bits-image.c b/pixman/pixman-bits-image.c +index 3d78ff0..1656975 100644 +--- a/pixman/pixman-bits-image.c ++++ b/pixman/pixman-bits-image.c +@@ -535,6 +535,212 @@ bits_image_fetch_bilinear_no_repeat_8888 (pixman_image_t * ima, + *buffer++ = 0; + } + ++static void ++bits_image_fetch_bilinear_no_repeat_0565 (pixman_image_t * ima, ++ int offset, ++ int line, ++ int width, ++ uint32_t * buffer, ++ const uint32_t * mask, ++ uint32_t mask_bits) ++{ ++ bits_image_t *bits = &ima->bits; ++ pixman_fixed_t x_top, x_bottom, x; ++ pixman_fixed_t ux_top, ux_bottom, ux; ++ pixman_vector_t v; ++ uint32_t top_mask, bottom_mask; ++ uint16_t *top_row; ++ uint16_t *bottom_row; ++ uint32_t *end; ++ uint16_t zero[2] = { 0, 0 }; ++ int y, y1, y2; ++ int disty; ++ int mask_inc; ++ int w; ++ ++ /* reference point is the center of the pixel */ ++ v.vector[0] = pixman_int_to_fixed (offset) + pixman_fixed_1 / 2; ++ v.vector[1] = pixman_int_to_fixed (line) + pixman_fixed_1 / 2; ++ v.vector[2] = pixman_fixed_1; ++ ++ if (!pixman_transform_point_3d (bits->common.transform, &v)) ++ return; ++ ++ ux = ux_top = ux_bottom = bits->common.transform->matrix[0][0]; ++ x = x_top = x_bottom = v.vector[0] - pixman_fixed_1/2; ++ ++ y = v.vector[1] - pixman_fixed_1/2; ++ disty = (y >> 8) & 0xff; ++ ++ /* Load the pointers to the first and second lines from the source ++ * image that bilinear code must read. ++ * ++ * The main trick in this code is about the check if any line are ++ * outside of the image; ++ * ++ * When I realize that a line (any one) is outside, I change ++ * the pointer to a dummy area with zeros. Once I change this, I ++ * must be sure the pointer will not change, so I set the ++ * variables to each pointer increments inside the loop. ++ */ ++ y1 = pixman_fixed_to_int (y); ++ y2 = y1 + 1; ++ ++ if (y1 < 0 || y1 >= bits->height) ++ { ++ top_row = zero; ++ x_top = 0; ++ ux_top = 0; ++ } ++ else ++ { ++ top_row = bits->bits + y1 * bits->rowstride; ++ x_top = x; ++ ux_top = ux; ++ } ++ ++ if (y2 < 0 || y2 >= bits->height) ++ { ++ bottom_row = zero; ++ x_bottom = 0; ++ ux_bottom = 0; ++ } ++ else ++ { ++ bottom_row = bits->bits + y2 * bits->rowstride; ++ x_bottom = x; ++ ux_bottom = ux; ++ } ++ ++ /* Instead of checking whether the operation uses the mast in ++ * each loop iteration, verify this only once and prepare the ++ * variables to make the code smaller inside the loop. ++ */ ++ if (!mask) ++ { ++ mask_inc = 0; ++ mask_bits = 1; ++ mask = &mask_bits; ++ } ++ else ++ { ++ /* If have a mask, prepare the variables to check it */ ++ mask_inc = 1; ++ } ++ ++ /* If both are zero, then the whole thing is zero */ ++ if (top_row == zero && bottom_row == zero) ++ { ++ memset (buffer, 0, width * sizeof (uint32_t)); ++ return; ++ } ++ else ++ { ++ if (top_row == zero) ++ { ++ top_mask = 0; ++ bottom_mask = 0xff000000; ++ } ++ else if (bottom_row == zero) ++ { ++ top_mask = 0xff000000; ++ bottom_mask = 0; ++ } ++ else ++ { ++ top_mask = 0xff000000; ++ bottom_mask = 0xff000000; ++ } ++ } ++ ++ end = buffer + width; ++ ++ /* Zero fill to the left of the image */ ++ while (buffer < end && x < pixman_fixed_minus_1) ++ { ++ *buffer++ = 0; ++ x += ux; ++ x_top += ux_top; ++ x_bottom += ux_bottom; ++ mask += mask_inc; ++ } ++ ++ /* Left edge ++ */ ++ while (buffer < end && x < 0) ++ { ++ uint32_t tr, br; ++ int32_t distx; ++ ++ tr = CONVERT_0565_TO_0888 (top_row[pixman_fixed_to_int (x_top) + 1]) | top_mask; ++ br = CONVERT_0565_TO_0888 (bottom_row[pixman_fixed_to_int (x_bottom) + 1]) | bottom_mask; ++ ++ distx = (x >> 8) & 0xff; ++ ++ *buffer++ = bilinear_interpolation (0, tr, 0, br, distx, disty); ++ ++ x += ux; ++ x_top += ux_top; ++ x_bottom += ux_bottom; ++ mask += mask_inc; ++ } ++ ++ /* Main part */ ++ w = pixman_int_to_fixed (bits->width - 1); ++ ++ while (buffer < end && x < w) ++ { ++ if (*mask) ++ { ++ uint32_t tl, tr, bl, br; ++ int32_t distx; ++ ++ tl = CONVERT_0565_TO_0888 (top_row [pixman_fixed_to_int (x_top)]) | top_mask; ++ tr = CONVERT_0565_TO_0888 (top_row [pixman_fixed_to_int (x_top) + 1]) | top_mask; ++ bl = CONVERT_0565_TO_0888 (bottom_row [pixman_fixed_to_int (x_bottom)]) | bottom_mask; ++ br = CONVERT_0565_TO_0888 (bottom_row [pixman_fixed_to_int (x_bottom) + 1]) | bottom_mask; ++ ++ distx = (x >> 8) & 0xff; ++ ++ *buffer = bilinear_interpolation (tl, tr, bl, br, distx, disty); ++ } ++ ++ buffer++; ++ x += ux; ++ x_top += ux_top; ++ x_bottom += ux_bottom; ++ mask += mask_inc; ++ } ++ ++ /* Right Edge */ ++ w = pixman_int_to_fixed (bits->width); ++ while (buffer < end && x < w) ++ { ++ if (*mask) ++ { ++ uint32_t tl, bl; ++ int32_t distx; ++ ++ tl = CONVERT_0565_TO_0888 (top_row [pixman_fixed_to_int (x_top)]) | top_mask; ++ bl = CONVERT_0565_TO_0888 (bottom_row [pixman_fixed_to_int (x_bottom)]) | bottom_mask; ++ ++ distx = (x >> 8) & 0xff; ++ ++ *buffer = bilinear_interpolation (tl, 0, bl, 0, distx, disty); ++ } ++ ++ buffer++; ++ x += ux; ++ x_top += ux_top; ++ x_bottom += ux_bottom; ++ mask += mask_inc; ++ } ++ ++ /* Zero fill to the left of the image */ ++ while (buffer < end) ++ *buffer++ = 0; ++} ++ + static force_inline uint32_t + bits_image_fetch_pixel_convolution (bits_image_t *image, + pixman_fixed_t x, +@@ -917,14 +1123,26 @@ bits_image_property_changed (pixman_image_t *image) + (bits->common.filter == PIXMAN_FILTER_BILINEAR || + bits->common.filter == PIXMAN_FILTER_GOOD || + bits->common.filter == PIXMAN_FILTER_BEST) && +- bits->common.repeat == PIXMAN_REPEAT_NONE && +- (bits->format == PIXMAN_a8r8g8b8 || +- bits->format == PIXMAN_x8r8g8b8)) ++ bits->common.repeat == PIXMAN_REPEAT_NONE) + { + image->common.get_scanline_64 = + _pixman_image_get_scanline_generic_64; +- image->common.get_scanline_32 = +- bits_image_fetch_bilinear_no_repeat_8888; ++ ++ if (bits->format == PIXMAN_a8r8g8b8 || bits->format == PIXMAN_x8r8g8b8) ++ { ++ image->common.get_scanline_32 = ++ bits_image_fetch_bilinear_no_repeat_8888; ++ } ++ else if (bits->format == PIXMAN_r5g6b5) ++ { ++ image->common.get_scanline_32 = ++ bits_image_fetch_bilinear_no_repeat_0565; ++ } ++ else ++ { ++ image->common.get_scanline_32 = ++ bits_image_fetch_transformed; ++ } + } + else + { +-- +1.6.6.1 + diff --git a/recipes/xorg-lib/pixman-0.18.4/0007-ARM-added-missing-cache-preload.patch b/recipes/xorg-lib/pixman-0.18.4/0007-ARM-added-missing-cache-preload.patch new file mode 100644 index 0000000000..f601d2ce26 --- /dev/null +++ b/recipes/xorg-lib/pixman-0.18.4/0007-ARM-added-missing-cache-preload.patch @@ -0,0 +1,32 @@ +From af8a33d3b132c0192d59c47426bb3a201cb64b32 Mon Sep 17 00:00:00 2001 +From: Siarhei Siamashka +Date: Fri, 21 May 2010 13:31:03 +0000 +Subject: [PATCH 7/7] ARM: added missing cache preload + +--- + pixman/pixman-arm-neon-asm.S | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/pixman/pixman-arm-neon-asm.S b/pixman/pixman-arm-neon-asm.S +index f30869e..dc7fd69 100644 +--- a/pixman/pixman-arm-neon-asm.S ++++ b/pixman/pixman-arm-neon-asm.S +@@ -388,6 +388,7 @@ generate_composite_function \ + vld1.16 {d4, d5}, [DST_R, :128]! + vst1.16 {d28, d29}, [DST_W, :128]! + pixman_composite_over_n_0565_process_pixblock_head ++ cache_preload 8, 8 + .endm + + .macro pixman_composite_over_n_0565_init +@@ -680,6 +681,7 @@ generate_composite_function_single_scanline \ + vld4.8 {d4, d5, d6, d7}, [DST_R, :128]! + vst4.8 {d28, d29, d30, d31}, [DST_W, :128]! + pixman_composite_over_8888_8888_process_pixblock_head ++ cache_preload 8, 8 + .endm + + .macro pixman_composite_over_n_8888_init +-- +1.6.6.1 + diff --git a/recipes/xorg-lib/pixman-0.18.4/565-over-neon.patch b/recipes/xorg-lib/pixman-0.18.4/565-over-neon.patch new file mode 100644 index 0000000000..c8156c4d78 --- /dev/null +++ b/recipes/xorg-lib/pixman-0.18.4/565-over-neon.patch @@ -0,0 +1,23 @@ +From d297443267de0f5fab49ec245df9055a0dddddaf Mon Sep 17 00:00:00 2001 +From: Siarhei Siamashka +Date: Tue, 25 May 2010 17:21:26 +0000 +Subject: ARM: NEON: don't hit general path for r5g6b5 OVER r5g6b5 operation + +OVER can't be reduced to SRC because the source image is not +considered opaque when repeat is set to PIXMAN_REPEAT_NONE. +An additional fast path table entry solves the problem. +--- +diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c +index 64aa908..394dcea 100644 +--- a/pixman/pixman-arm-neon.c ++++ b/pixman/pixman-arm-neon.c +@@ -246,6 +246,7 @@ static const pixman_fast_path_t arm_neon_fast_paths[] = + PIXMAN_STD_FAST_PATH (OVER, a8b8g8r8, null, x8b8g8r8, neon_composite_over_8888_8888), + PIXMAN_STD_FAST_PATH (OVER, x8r8g8b8, null, a8r8g8b8, neon_composite_src_x888_8888), + PIXMAN_STD_FAST_PATH (OVER, x8b8g8r8, null, a8b8g8r8, neon_composite_src_x888_8888), ++ PIXMAN_STD_FAST_PATH (OVER, r5g6b5, null, r5g6b5, neon_composite_src_0565_0565), + PIXMAN_STD_FAST_PATH (ADD, solid, a8, a8, neon_composite_add_n_8_8), + PIXMAN_STD_FAST_PATH (ADD, a8, a8, a8, neon_composite_add_8_8_8), + PIXMAN_STD_FAST_PATH (ADD, a8r8g8b8, a8r8g8b8, a8r8g8b8, neon_composite_add_8888_8888_8888), +-- +cgit v0.8.3-6-g21f6 diff --git a/recipes/xorg-lib/pixman-0.18.4/neon-reverse-u.patch b/recipes/xorg-lib/pixman-0.18.4/neon-reverse-u.patch new file mode 100644 index 0000000000..76726ce1ae --- /dev/null +++ b/recipes/xorg-lib/pixman-0.18.4/neon-reverse-u.patch @@ -0,0 +1,175 @@ +From e0017c2a676b267900e48c6f32a6e973395c83d3 Mon Sep 17 00:00:00 2001 +From: Siarhei Siamashka +Date: Mon, 31 May 2010 16:24:43 +0000 +Subject: ARM: 'neon_combine_out_reverse_u' combiner + +--- +diff --git a/pixman/pixman-arm-neon-asm.S b/pixman/pixman-arm-neon-asm.S +index f30869e..44fbfce 100644 +--- a/pixman/pixman-arm-neon-asm.S ++++ b/pixman/pixman-arm-neon-asm.S +@@ -597,7 +597,7 @@ generate_composite_function_single_scanline \ + + /******************************************************************************/ + +-.macro pixman_composite_over_8888_8888_process_pixblock_head ++.macro pixman_composite_out_reverse_8888_8888_process_pixblock_head + vmvn.8 d24, d3 /* get inverted alpha */ + /* do alpha blending */ + vmull.u8 q8, d24, d4 +@@ -606,7 +606,7 @@ generate_composite_function_single_scanline \ + vmull.u8 q11, d24, d7 + .endm + +-.macro pixman_composite_over_8888_8888_process_pixblock_tail ++.macro pixman_composite_out_reverse_8888_8888_process_pixblock_tail + vrshr.u16 q14, q8, #8 + vrshr.u16 q15, q9, #8 + vrshr.u16 q12, q10, #8 +@@ -615,6 +615,56 @@ generate_composite_function_single_scanline \ + vraddhn.u16 d29, q15, q9 + vraddhn.u16 d30, q12, q10 + vraddhn.u16 d31, q13, q11 ++.endm ++ ++.macro pixman_composite_out_reverse_8888_8888_process_pixblock_tail_head ++ vld4.8 {d4, d5, d6, d7}, [DST_R, :128]! ++ vrshr.u16 q14, q8, #8 ++ PF add PF_X, PF_X, #8 ++ PF tst PF_CTL, #0xF ++ vrshr.u16 q15, q9, #8 ++ vrshr.u16 q12, q10, #8 ++ vrshr.u16 q13, q11, #8 ++ PF addne PF_X, PF_X, #8 ++ PF subne PF_CTL, PF_CTL, #1 ++ vraddhn.u16 d28, q14, q8 ++ vraddhn.u16 d29, q15, q9 ++ PF cmp PF_X, ORIG_W ++ vraddhn.u16 d30, q12, q10 ++ vraddhn.u16 d31, q13, q11 ++ vld4.8 {d0, d1, d2, d3}, [SRC]! ++ PF pld, [PF_SRC, PF_X, lsl #src_bpp_shift] ++ vmvn.8 d22, d3 ++ PF pld, [PF_DST, PF_X, lsl #dst_bpp_shift] ++ vst4.8 {d28, d29, d30, d31}, [DST_W, :128]! ++ PF subge PF_X, PF_X, ORIG_W ++ vmull.u8 q8, d22, d4 ++ PF subges PF_CTL, PF_CTL, #0x10 ++ vmull.u8 q9, d22, d5 ++ PF ldrgeb DUMMY, [PF_SRC, SRC_STRIDE, lsl #src_bpp_shift]! ++ vmull.u8 q10, d22, d6 ++ PF ldrgeb DUMMY, [PF_DST, DST_STRIDE, lsl #dst_bpp_shift]! ++ vmull.u8 q11, d22, d7 ++.endm ++ ++generate_composite_function_single_scanline \ ++ pixman_composite_scanline_out_reverse_asm_neon, 32, 0, 32, \ ++ FLAG_DST_READWRITE | FLAG_DEINTERLEAVE_32BPP, \ ++ 8, /* number of pixels, processed in a single block */ \ ++ default_init, \ ++ default_cleanup, \ ++ pixman_composite_out_reverse_8888_8888_process_pixblock_head, \ ++ pixman_composite_out_reverse_8888_8888_process_pixblock_tail, \ ++ pixman_composite_out_reverse_8888_8888_process_pixblock_tail_head ++ ++/******************************************************************************/ ++ ++.macro pixman_composite_over_8888_8888_process_pixblock_head ++ pixman_composite_out_reverse_8888_8888_process_pixblock_head ++.endm ++ ++.macro pixman_composite_over_8888_8888_process_pixblock_tail ++ pixman_composite_out_reverse_8888_8888_process_pixblock_tail + vqadd.u8 q14, q0, q14 + vqadd.u8 q15, q1, q15 + .endm +@@ -1416,7 +1466,7 @@ generate_composite_function_single_scanline \ + + /******************************************************************************/ + +-.macro pixman_composite_over_8888_n_8888_process_pixblock_head ++.macro pixman_composite_out_reverse_8888_n_8888_process_pixblock_head + /* expecting source data in {d0, d1, d2, d3} */ + /* destination data in {d4, d5, d6, d7} */ + /* solid mask is in d15 */ +@@ -1442,7 +1492,7 @@ generate_composite_function_single_scanline \ + vmull.u8 q11, d24, d7 + .endm + +-.macro pixman_composite_over_8888_n_8888_process_pixblock_tail ++.macro pixman_composite_out_reverse_8888_n_8888_process_pixblock_tail + vrshr.u16 q14, q8, #8 + vrshr.u16 q15, q9, #8 + vrshr.u16 q12, q10, #8 +@@ -1451,6 +1501,49 @@ generate_composite_function_single_scanline \ + vraddhn.u16 d29, q15, q9 + vraddhn.u16 d30, q12, q10 + vraddhn.u16 d31, q13, q11 ++.endm ++ ++.macro pixman_composite_out_reverse_8888_8888_8888_init ++ vpush {d8-d15} ++.endm ++ ++.macro pixman_composite_out_reverse_8888_8888_8888_cleanup ++ vpop {d8-d15} ++.endm ++ ++/* TODO: expand macros and do better instructions scheduling */ ++.macro pixman_composite_out_reverse_8888_8888_8888_process_pixblock_tail_head ++ vld4.8 {d4, d5, d6, d7}, [DST_R, :128]! ++ pixman_composite_out_reverse_8888_n_8888_process_pixblock_tail ++ vld4.8 {d0, d1, d2, d3}, [SRC]! ++ cache_preload 8, 8 ++ vld4.8 {d12, d13, d14, d15}, [MASK]! ++ pixman_composite_out_reverse_8888_n_8888_process_pixblock_head ++ vst4.8 {d28, d29, d30, d31}, [DST_W, :128]! ++.endm ++ ++generate_composite_function_single_scanline \ ++ pixman_composite_scanline_out_reverse_mask_asm_neon, 32, 32, 32, \ ++ FLAG_DST_READWRITE | FLAG_DEINTERLEAVE_32BPP, \ ++ 8, /* number of pixels, processed in a single block */ \ ++ pixman_composite_out_reverse_8888_8888_8888_init, \ ++ pixman_composite_out_reverse_8888_8888_8888_cleanup, \ ++ pixman_composite_out_reverse_8888_n_8888_process_pixblock_head, \ ++ pixman_composite_out_reverse_8888_n_8888_process_pixblock_tail, \ ++ pixman_composite_out_reverse_8888_8888_8888_process_pixblock_tail_head \ ++ 28, /* dst_w_basereg */ \ ++ 4, /* dst_r_basereg */ \ ++ 0, /* src_basereg */ \ ++ 12 /* mask_basereg */ ++ ++/******************************************************************************/ ++ ++.macro pixman_composite_over_8888_n_8888_process_pixblock_head ++ pixman_composite_out_reverse_8888_n_8888_process_pixblock_head ++.endm ++ ++.macro pixman_composite_over_8888_n_8888_process_pixblock_tail ++ pixman_composite_out_reverse_8888_n_8888_process_pixblock_tail + vqadd.u8 q14, q0, q14 + vqadd.u8 q15, q1, q15 + .endm +diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c +index 394dcea..1be9606 100644 +--- a/pixman/pixman-arm-neon.c ++++ b/pixman/pixman-arm-neon.c +@@ -335,6 +335,7 @@ neon_combine_##name##_u (pixman_implementation_t *imp, \ + + BIND_COMBINE_U (over) + BIND_COMBINE_U (add) ++BIND_COMBINE_U (out_reverse) + + void + pixman_fetch_scanline_r5g6b5_asm_neon (int width, +@@ -382,6 +383,7 @@ _pixman_implementation_create_arm_neon (void) + + imp->combine_32[PIXMAN_OP_OVER] = neon_combine_over_u; + imp->combine_32[PIXMAN_OP_ADD] = neon_combine_add_u; ++ imp->combine_32[PIXMAN_OP_OUT_REVERSE] = neon_combine_out_reverse_u; + + _pixman_bits_override_accessors (PIXMAN_r5g6b5, + neon_fetch_scanline_r5g6b5, +-- +cgit v0.8.3-6-g21f6 diff --git a/recipes/xorg-lib/pixman_0.18.4.bb b/recipes/xorg-lib/pixman_0.18.4.bb new file mode 100644 index 0000000000..b9badf21ae --- /dev/null +++ b/recipes/xorg-lib/pixman_0.18.4.bb @@ -0,0 +1,25 @@ +require pixman.inc +PR = "${INC_PR}.1" + +SRC_URI[archive.md5sum] = "532db4194e18c108d0b7dd85f20d39b8" +SRC_URI[archive.sha256sum] = "1484092277c5187f5458229a2b7fd7fbc0cb07e1f220c7f8f9ac65de6dba7989" +SRC_URI += "\ + file://0001-Generic-C-implementation-of-pixman_blt-with-overlapp.patch\ + file://0002-Support-of-overlapping-src-dst-for-pixman_blt_mmx.patch\ + file://0003-Support-of-overlapping-src-dst-for-pixman_blt_sse2.patch\ + file://0004-Support-of-overlapping-src-dst-for-pixman_blt_neon.patch\ + file://0005-ARM-added-NEON-optimizations-for-fetch-store-r5g6b5-.patch\ + file://0006-A-copy-paste-version-of-16bpp-bilinear-scanline-fetc.patch\ + file://0007-ARM-added-missing-cache-preload.patch\ + file://565-over-neon.patch \ + file://neon-reverse-u.patch \ +" + +NEON = " --disable-arm-neon " +NEON_armv7a = " " + +EXTRA_OECONF = "${NEON} --disable-gtk" + +DEFAULT_PREFERENCE = "-1" +DEFAULT_PREFERENCE_angstrom = "2" +DEFAULT_PREFERENCE_shr = "2" diff --git a/recipes/xorg-util/lndir_1.0.2.bb b/recipes/xorg-util/lndir_1.0.2.bb new file mode 100644 index 0000000000..718d371aae --- /dev/null +++ b/recipes/xorg-util/lndir_1.0.2.bb @@ -0,0 +1,7 @@ +require xorg-util-common.inc + +DESCRIPTION = "create a shadow directory of symbolic links to another directory tree" +PR = "r2" +PE = "1" +SRC_URI[archive.md5sum] = "555a53da329931ac795931f5f69ccb5c" +SRC_URI[archive.sha256sum] = "ec6e73434bdcb229edc58e6d575185762c533ea366e7f949603b1c8f442887e3" diff --git a/recipes/xorg-xserver/xserver-xorg-1.8.99.905/0001-xf86Modes-make-sure-that-DisplayModeRec-name-is-init.patch b/recipes/xorg-xserver/xserver-xorg-1.8.99.905/0001-xf86Modes-make-sure-that-DisplayModeRec-name-is-init.patch deleted file mode 100644 index adbc274fd7..0000000000 --- a/recipes/xorg-xserver/xserver-xorg-1.8.99.905/0001-xf86Modes-make-sure-that-DisplayModeRec-name-is-init.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 7deb3068ff65ecadf035e8e493d418aca89c9212 Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Wed, 30 Jun 2010 10:42:36 +0200 -Subject: [PATCH] xf86Modes: make sure that DisplayModeRec name is initialized to NULL and then don't call free() on it in xf86SetModeDefaultName - ---- - hw/xfree86/modes/xf86Modes.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/hw/xfree86/modes/xf86Modes.c b/hw/xfree86/modes/xf86Modes.c -index 05f4319..09a9679 100644 ---- a/hw/xfree86/modes/xf86Modes.c -+++ b/hw/xfree86/modes/xf86Modes.c -@@ -206,7 +206,7 @@ xf86DuplicateMode(const DisplayModeRec *pMode) - { - DisplayModePtr pNew; - -- pNew = xnfalloc(sizeof(DisplayModeRec)); -+ pNew = xnfcalloc(1, sizeof(DisplayModeRec)); - *pNew = *pMode; - pNew->next = NULL; - pNew->prev = NULL; --- -1.7.1 - diff --git a/recipes/xorg-xserver/xserver-xorg-1.8.99.905/hack-assume-pixman-supports-overlapped-blt.patch b/recipes/xorg-xserver/xserver-xorg-1.8.99.905/hack-assume-pixman-supports-overlapped-blt.patch deleted file mode 100644 index a947582f15..0000000000 --- a/recipes/xorg-xserver/xserver-xorg-1.8.99.905/hack-assume-pixman-supports-overlapped-blt.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/fb/fbcopy.c b/fb/fbcopy.c -index 07eb663..ba394b7 100644 ---- a/fb/fbcopy.c -+++ b/fb/fbcopy.c -@@ -91,8 +91,7 @@ fbCopyNtoN (DrawablePtr pSrcDrawable, - while (nbox--) - { - #ifndef FB_ACCESS_WRAPPER /* pixman_blt() doesn't support accessors yet */ -- if (pm == FB_ALLONES && alu == GXcopy && !reverse && -- !upsidedown) -+ if (pm == FB_ALLONES && alu == GXcopy) - { - if (!pixman_blt ((uint32_t *)src, (uint32_t *)dst, srcStride, dstStride, srcBpp, dstBpp, - (pbox->x1 + dx + srcXoff), diff --git a/recipes/xorg-xserver/xserver-xorg-1.8.99.906/0001-xf86Modes-make-sure-that-DisplayModeRec-name-is-init.patch b/recipes/xorg-xserver/xserver-xorg-1.8.99.906/0001-xf86Modes-make-sure-that-DisplayModeRec-name-is-init.patch new file mode 100644 index 0000000000..adbc274fd7 --- /dev/null +++ b/recipes/xorg-xserver/xserver-xorg-1.8.99.906/0001-xf86Modes-make-sure-that-DisplayModeRec-name-is-init.patch @@ -0,0 +1,25 @@ +From 7deb3068ff65ecadf035e8e493d418aca89c9212 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Wed, 30 Jun 2010 10:42:36 +0200 +Subject: [PATCH] xf86Modes: make sure that DisplayModeRec name is initialized to NULL and then don't call free() on it in xf86SetModeDefaultName + +--- + hw/xfree86/modes/xf86Modes.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/hw/xfree86/modes/xf86Modes.c b/hw/xfree86/modes/xf86Modes.c +index 05f4319..09a9679 100644 +--- a/hw/xfree86/modes/xf86Modes.c ++++ b/hw/xfree86/modes/xf86Modes.c +@@ -206,7 +206,7 @@ xf86DuplicateMode(const DisplayModeRec *pMode) + { + DisplayModePtr pNew; + +- pNew = xnfalloc(sizeof(DisplayModeRec)); ++ pNew = xnfcalloc(1, sizeof(DisplayModeRec)); + *pNew = *pMode; + pNew->next = NULL; + pNew->prev = NULL; +-- +1.7.1 + diff --git a/recipes/xorg-xserver/xserver-xorg-1.8.99.906/hack-assume-pixman-supports-overlapped-blt.patch b/recipes/xorg-xserver/xserver-xorg-1.8.99.906/hack-assume-pixman-supports-overlapped-blt.patch new file mode 100644 index 0000000000..a947582f15 --- /dev/null +++ b/recipes/xorg-xserver/xserver-xorg-1.8.99.906/hack-assume-pixman-supports-overlapped-blt.patch @@ -0,0 +1,14 @@ +diff --git a/fb/fbcopy.c b/fb/fbcopy.c +index 07eb663..ba394b7 100644 +--- a/fb/fbcopy.c ++++ b/fb/fbcopy.c +@@ -91,8 +91,7 @@ fbCopyNtoN (DrawablePtr pSrcDrawable, + while (nbox--) + { + #ifndef FB_ACCESS_WRAPPER /* pixman_blt() doesn't support accessors yet */ +- if (pm == FB_ALLONES && alu == GXcopy && !reverse && +- !upsidedown) ++ if (pm == FB_ALLONES && alu == GXcopy) + { + if (!pixman_blt ((uint32_t *)src, (uint32_t *)dst, srcStride, dstStride, srcBpp, dstBpp, + (pbox->x1 + dx + srcXoff), diff --git a/recipes/xorg-xserver/xserver-xorg_1.8.99.905.bb b/recipes/xorg-xserver/xserver-xorg_1.8.99.905.bb deleted file mode 100644 index 34dd100069..0000000000 --- a/recipes/xorg-xserver/xserver-xorg_1.8.99.905.bb +++ /dev/null @@ -1,38 +0,0 @@ -# Assign it here, since the hal->udev transition happens post 1.7 in angstrom -DISTRO_XORG_CONFIG_MANAGER_angstrom = "udev" - -require xorg-xserver-common.inc - -DESCRIPTION = "the X.Org X server" -DEPENDS += "pixman libpciaccess openssl dri2proto glproto xorg-minimal-fonts font-util-native" -PE = "2" -PR = "${INC_PR}.3" - -# Needs newer mesa-dri, where is D_P = "-1" -DEFAULT_PREFERENCE = "-1" -DEFAULT_PREFERENCE_shr = "1" - -SRC_URI += " \ - file://dolt-fix-1.7.0.patch \ - file://randr-support-1.7.0.patch \ - file://hack-fbdev-ignore-return-mode.patch \ - file://0001-xf86Modes-make-sure-that-DisplayModeRec-name-is-init.patch \ - " -SRC_URI[archive.md5sum] = "7772d0bdcf6819332fb3a896fa854bd8" -SRC_URI[archive.sha256sum] = "5f8d472d8a486f7638a9bce164baa8be400ebe21746a6805e6621887f2689678" - -SRC_URI_append_angstrom = " file://hack-assume-pixman-supports-overlapped-blt.patch" -SRC_URI_append_shr = " file://hack-assume-pixman-supports-overlapped-blt.patch" - -do_install_prepend() { - mkdir -p ${D}/${libdir}/X11/fonts -} - -# The NVidia driver requires Xinerama support in the X server. Ion uses it. -PACKAGE_ARCH_ion = "${MACHINE_ARCH}" -XINERAMA = "${@['--disable-xinerama','--enable-xinerama'][bb.data.getVar('MACHINE',d) in ['ion']]}" - -EXTRA_OECONF += " ${CONFIG_MANAGER_OPTION} ${XINERAMA} --disable-kdrive --disable-xephyr --disable-xsdl --disable-xfake --disable-xfbdev --disable-dmx" -EXTRA_OECONF += " --enable-dri2 --disable-unit-tests " - -export LDFLAGS += " -ldl " diff --git a/recipes/xorg-xserver/xserver-xorg_1.8.99.906.bb b/recipes/xorg-xserver/xserver-xorg_1.8.99.906.bb new file mode 100644 index 0000000000..fc7530d71c --- /dev/null +++ b/recipes/xorg-xserver/xserver-xorg_1.8.99.906.bb @@ -0,0 +1,38 @@ +# Assign it here, since the hal->udev transition happens post 1.7 in angstrom +DISTRO_XORG_CONFIG_MANAGER_angstrom = "udev" + +require xorg-xserver-common.inc + +DESCRIPTION = "the X.Org X server" +DEPENDS += "pixman libpciaccess openssl dri2proto glproto xorg-minimal-fonts font-util-native" +PE = "2" +PR = "${INC_PR}.3" + +# Needs newer mesa-dri, where is D_P = "-1" +DEFAULT_PREFERENCE = "-1" +DEFAULT_PREFERENCE_shr = "1" + +SRC_URI += " \ + file://dolt-fix-1.7.0.patch \ + file://randr-support-1.7.0.patch \ + file://hack-fbdev-ignore-return-mode.patch \ + file://0001-xf86Modes-make-sure-that-DisplayModeRec-name-is-init.patch \ + " +SRC_URI[archive.md5sum] = "d4ab361cacc35e2ed4587019980b7e57" +SRC_URI[archive.sha256sum] = "7bb5e3d1e36b65e367d11707e7e11285d9eb087d3281c59c8143dfe90cf9977e" + +SRC_URI_append_angstrom = " file://hack-assume-pixman-supports-overlapped-blt.patch" +SRC_URI_append_shr = " file://hack-assume-pixman-supports-overlapped-blt.patch" + +do_install_prepend() { + mkdir -p ${D}/${libdir}/X11/fonts +} + +# The NVidia driver requires Xinerama support in the X server. Ion uses it. +PACKAGE_ARCH_ion = "${MACHINE_ARCH}" +XINERAMA = "${@['--disable-xinerama','--enable-xinerama'][bb.data.getVar('MACHINE',d) in ['ion']]}" + +EXTRA_OECONF += " ${CONFIG_MANAGER_OPTION} ${XINERAMA} --disable-kdrive --disable-xephyr --disable-xsdl --disable-xfake --disable-xfbdev --disable-dmx" +EXTRA_OECONF += " --enable-dri2 --disable-unit-tests " + +export LDFLAGS += " -ldl " -- cgit v1.2.3