Hi > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of Liu Xinyun > Sent: Tuesday, September 21, 2010 2:30 PM > To: [email protected] > Subject: [meego-commits] 7643: Changes to Trunk:Testing/pixman > > Hi, > I have made the following changes to pixman in project Trunk:Testing. Please > review and accept ASAP. > > Thank You, > Liu Xinyun > > [This message was auto-generated] > > --- > > Request #7643: > > submit: home:xyl:branches:Trunk:Testing/pixman(r3)(cleanup) -> > Trunk:Testing/pixman > > > Message: > Add disable-cache-prefetch.patch and enable it for MeeGo. Fix BMC #2250 > > State: new 2010-09-20T23:29:32 xyl > Comment: None > > > > changes files: > -------------- > --- pixman.changes > +++ pixman.changes > @@ -0,0 +1,7 @@ > +* Tue Sep 21 2010 Liu Xinyun <[email protected]> - 0.18.4 > +- Add disable-cache-prefetch.patch and enable it for MeeGo > +- Fix BMC #2250 > + I see we just get 2% improvements. Any side effect to disable this cache prefetch?
> +* Thu Sep 09 2010 Liu Xinyun <[email protected]> - 0.18.4 > +- Update to 0.18.4. It's required by cairo-1.9.12 > + Why? Cairo 1.9.12 has been Trunk for a long time. > > old: > ---- > pixman-0.18.2.tar.bz2 > > new: > ---- > disable-cache-prefetch.patch > pixman-0.18.4.tar.bz2 > > spec files: > ----------- > --- pixman.spec > +++ pixman.spec > @@ -1,19 +1,20 @@ > # > -# Do not Edit! Generated by: > -# spectacle version 0.18 > +# Do NOT Edit the Auto-generated Part! > +# Generated by: spectacle version 0.19 > # > # >> macros > # << macros > > Name: pixman > Summary: Pixel manipulation library > -Version: 0.18.2 > +Version: 0.18.4 > Release: 1 > Group: System/Libraries > License: MIT > URL: http://www.x.org/ > Source0: > http://xorg.freedesktop.org/archive/individual/lib/%{name}-%{version}.tar.bz2 > Source100: pixman.yaml > +Patch0: disable-cache-prefetch.patch > Requires(post): /sbin/ldconfig > Requires(postun): /sbin/ldconfig > > @@ -34,6 +35,8 @@ > %prep > %setup -q -n %{name}-%{version} > > +# disable-cache-prefetch.patch > +%patch0 -p1 > # >> setup > # << setup > > @@ -41,7 +44,9 @@ > # >> build pre > # << build pre > > -%configure --disable-static > +%configure --disable-static \ > + --enable-cache-prefetch=no > + > make %{?jobs:-j%jobs} > > # >> build post > > other changes: > -------------- > > ++++++ disable-cache-prefetch.patch (new) > --- disable-cache-prefetch.patch > +++ disable-cache-prefetch.patch > +From 4338c93f9ba317735a1ecc7319303b48b77aedcb Mon Sep 17 00:00:00 > 2001 > +From: Liu Xinyun <[email protected]> > +Date: Tue, 21 Sep 2010 13:24:08 +0800 > +Subject: [PATCH] Add disable cache prefetch. > + > +Disable cache prefetch for ATOM, the performance increased a little. > + > +old: 0.18.4 > +new: 0.18.4-disable-cache-prefetch > +Speedups > +======== > +image-rgba poppler-0 17590.75 (17597.01 1.30%) > -> 15414.85 (16345.44 2.89%): 1.14x speedup > +image-rgba xfce4-terminal-a1-0 18429.77 (18471.36 1.03%) -> > 16648.99 (16725.68 1.18%): 1.11x speedup > +image-rgba gnome-terminal-vim-0 25272.76 (25366.13 0.18%) > -> 22993.57 (23060.22 0.52%): 1.10x speedup > +image-rgba ocitysmap-0 9079.30 (9128.50 6.54%) -> > 8410.53 (8452.60 8.02%): 1.08x speedup > +image-rgba swfdec-giant-steps-0 12436.80 (12473.41 0.39%) -> > 11701.41 (11760.38 0.90%): 1.06x speedup > +image-rgba firefox-planet-gnome-0 103749.15 (103983.13 0.19%) > -> 98310.02 (98522.71 0.35%): 1.06x speedup > + > +Signed-off-by: Liu Xinyun <[email protected]> > +Signed-off-by: Chen Miaobo <[email protected]> > +--- > + configure.ac | 13 +++++++++++++ > + pixman/pixman-sse2.c | 7 +++++++ > + 2 files changed, 20 insertions(+), 0 deletions(-) > + > +diff --git a/configure.ac b/configure.ac > +index c9269f4..a531cb7 100644 > +--- a/configure.ac > ++++ b/configure.ac > +@@ -280,6 +280,19 @@ fi > + AM_CONDITIONAL(USE_SSE2, test $have_sse2_intrinsics = yes) > + > + dnl > ================================================================ > =========== > ++dnl cache prefetch > ++AC_ARG_ENABLE(cache-prefetch, > ++ [AC_HELP_STRING([--enable-cache-prefetch], > ++ [disable DISABLE_CACHE_PREFETCH macros [default=yes]])], > ++ [enable_cache_prefetch=$enableval], [enable_cache_prefetch=yes]) > ++#AC_CHECK_DECL(enable_cache_prefetch) > ++if test $enable_cache_prefetch = no ; then > ++ AC_DEFINE(DISABLE_CACHE_PREFETCH, 1, [enable > DISABLE_CACHE_PREFETCH macros]) > ++fi > ++AC_CHECK_DECL(DISABLE_CACHE_PREFETCH) > ++AC_SUBST(DISABLE_CACHE_PREFETCH) > ++ > ++dnl > ================================================================ > =========== > + dnl Other special flags needed when building code using MMX or SSE > instructions > + case $host_os in > + solaris*) > +diff --git a/pixman/pixman-sse2.c b/pixman/pixman-sse2.c > +index 946e7ba..708838a 100644 > +--- a/pixman/pixman-sse2.c > ++++ b/pixman/pixman-sse2.c > +@@ -384,6 +384,13 @@ maybe_prefetch_next (__m128i* addr) > + cache_prefetch_next (addr); > + } > + > ++#ifdef DISABLE_CACHE_PREFETCH > ++#define cache_prefetch(addr) do {} while (0); > ++#define cache_prefetch_next(addr) do {} while (0); > ++#define maybe_prefetch(addr) do {} while (0); > ++#define maybe_prefetch_next(addr) do {} while (0); > ++#endif > ++ > + /* load 4 pixels from a 16-byte boundary aligned address */ > + static force_inline __m128i > + load_128_aligned (__m128i* src) > +-- > +1.7.0.4 > + > > ++++++ pixman-0.18.2.tar.bz2 -> pixman-0.18.4.tar.bz2 > --- configure > +++ configure > @@ -1,6 +1,6 @@ > #! /bin/sh > # Guess values for system-dependent variables and create Makefiles. > -# Generated by GNU Autoconf 2.65 for pixman 0.18.2. > +# Generated by GNU Autoconf 2.65 for pixman 0.18.4. > # > # Report bugs to <"[email protected]">. > # > @@ -701,8 +701,8 @@ > # Identity of this package. > PACKAGE_NAME='pixman' > PACKAGE_TARNAME='pixman' > -PACKAGE_VERSION='0.18.2' > -PACKAGE_STRING='pixman 0.18.2' > +PACKAGE_VERSION='0.18.4' > +PACKAGE_STRING='pixman 0.18.4' > PACKAGE_BUGREPORT='"[email protected]"' > PACKAGE_URL='' > > @@ -1466,7 +1466,7 @@ > # Omit some internal or obsolete options to make the list less imposing. > # This message is too long to be a string in the A/UX 3.1 sh. > cat <<_ACEOF > -\`configure' configures pixman 0.18.2 to adapt to many kinds of systems. > +\`configure' configures pixman 0.18.4 to adapt to many kinds of systems. > > Usage: $0 [OPTION]... [VAR=VALUE]... > > @@ -1536,7 +1536,7 @@ > > if test -n "$ac_init_help"; then > case $ac_init_help in > - short | recursive ) echo "Configuration of pixman 0.18.2:";; > + short | recursive ) echo "Configuration of pixman 0.18.4:";; > esac > cat <<\_ACEOF > > @@ -1651,7 +1651,7 @@ > test -n "$ac_init_help" && exit $ac_status > if $ac_init_version; then > cat <<\_ACEOF > -pixman configure 0.18.2 > +pixman configure 0.18.4 > generated by GNU Autoconf 2.65 > > Copyright (C) 2009 Free Software Foundation, Inc. > @@ -2146,7 +2146,7 @@ > This file contains any messages produced by compilers while > running configure, to aid debugging if configure makes a mistake. > > -It was created by pixman $as_me 0.18.2, which was > +It was created by pixman $as_me 0.18.4, which was > generated by GNU Autoconf 2.65. Invocation command line was > > $ $0 $@ > @@ -2954,7 +2954,7 @@ > > # Define the identity of the package. > PACKAGE='pixman' > - VERSION='0.18.2' > + VERSION='0.18.4' > > > cat >>confdefs.h <<_ACEOF > @@ -11086,13 +11086,13 @@ > > > > -LT_VERSION_INFO="18:2:18" > +LT_VERSION_INFO="18:4:18" > > PIXMAN_VERSION_MAJOR=0 > > PIXMAN_VERSION_MINOR=18 > > -PIXMAN_VERSION_MICRO=2 > +PIXMAN_VERSION_MICRO=4 > > > > @@ -12561,7 +12561,7 @@ > # report actual input values of CONFIG_FILES etc. instead of their > # values after options handling. > ac_log=" > -This file was extended by pixman $as_me 0.18.2, which was > +This file was extended by pixman $as_me 0.18.4, which was > generated by GNU Autoconf 2.65. Invocation command line was > > CONFIG_FILES = $CONFIG_FILES > @@ -12627,7 +12627,7 @@ > cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 > ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; > s/[\\""\`\$]/\\\\&/g'`" > ac_cs_version="\\ > -pixman config.status 0.18.2 > +pixman config.status 0.18.4 > configured by $0, generated by GNU Autoconf 2.65, > with options \\"\$ac_cs_config\\" > > --- configure.ac > +++ configure.ac > @@ -54,7 +54,7 @@ > > m4_define([pixman_major], 0) > m4_define([pixman_minor], 18) > -m4_define([pixman_micro], 2) > +m4_define([pixman_micro], 4) > > m4_define([pixman_version],[pixman_major.pixman_minor.pixman_micro]) > > --- pixman/pixman-access.c > +++ pixman/pixman-access.c > @@ -2640,7 +2640,7 @@ > #else > mask = 1 << ((i + x) & 0x1f); > #endif > - v = RGB24_TO_ENTRY_Y (indexed, values[i]) ? mask : 0; > + v = RGB24_TO_ENTRY_Y (indexed, values[i]) & 0x1 ? mask : 0; > > WRITE (image, pixel, (READ (image, pixel) & ~mask) | v); > } > --- pixman/pixman-bits-image.c > +++ pixman/pixman-bits-image.c > @@ -914,6 +914,7 @@ > bits->common.transform->matrix[2][2] == pixman_fixed_1 && > bits->common.transform->matrix[0][0] > 0 && > bits->common.transform->matrix[1][0] == 0 && > + !bits->read_func && > (bits->common.filter == PIXMAN_FILTER_BILINEAR || > bits->common.filter == PIXMAN_FILTER_GOOD || > bits->common.filter == PIXMAN_FILTER_BEST) && > --- pixman/pixman-compiler.h > +++ pixman/pixman-compiler.h > @@ -158,9 +158,16 @@ > static pthread_key_t tls_ ## name ## _key; > \ > \ > static void > \ > + tls_ ## name ## _destroy_value (void *value) \ > + { > \ > + free (value); \ > + } > \ > + \ > + static void > \ > tls_ ## name ## _make_key (void) \ > { > \ > - pthread_key_create (&tls_ ## name ## _key, NULL); \ > + pthread_key_create (&tls_ ## name ## _key, \ > + tls_ ## name ## _destroy_value); \ > } > \ > \ > static type * \ > --- pixman/pixman-version.h > +++ pixman/pixman-version.h > @@ -33,9 +33,9 @@ > > #define PIXMAN_VERSION_MAJOR 0 > #define PIXMAN_VERSION_MINOR 18 > -#define PIXMAN_VERSION_MICRO 2 > +#define PIXMAN_VERSION_MICRO 4 > > -#define PIXMAN_VERSION_STRING "0.18.2" > +#define PIXMAN_VERSION_STRING "0.18.4" > > #define PIXMAN_VERSION_ENCODE(major, minor, micro) ( \ > ((major) * 10000) \ > --- pixman/pixman.c > +++ pixman/pixman.c > @@ -634,7 +634,7 @@ > ®ion, src, mask, dest, > src_x, src_y, mask_x, mask_y, dest_x, dest_y, width, height)) > { > - return; > + goto out; > } > > extents = pixman_region32_extents (®ion); > @@ -651,7 +651,7 @@ > */ > op = optimize_operator (op, src_flags, mask_flags, dest_flags); > if (op == PIXMAN_OP_DST) > - return; > + goto out; > > /* Check cache for fast paths */ > cache = PIXMAN_GET_THREAD_LOCAL (fast_path_cache); > --- test/blitters-test.c > +++ test/blitters-test.c > @@ -482,7 +482,7 @@ > /* Predefined value for running with all the fastpath functions > disabled. It needs to be updated every time when changes are > introduced to this program or behavior of pixman changes! */ > - if (crc == 0x8F9F7DC1) > + if (crc == 0xBBACC28D) > { > printf ("blitters test passed\n"); > } > > ++++++ pixman.yaml > --- pixman.yaml > +++ pixman.yaml > @@ -1,14 +1,17 @@ > Name: pixman > Summary: Pixel manipulation library > -Version: 0.18.2 > +Version: 0.18.4 > Release: 1 > Group: System/Libraries > License: MIT > URL: http://www.x.org/ > Sources: > - > http://xorg.freedesktop.org/archive/individual/lib/%{name}-%{version}.tar.bz2 > - > +Patches: > + - disable-cache-prefetch.patch > Configure: configure > +ConfigOptions: > + - --enable-cache-prefetch=no > SubPackages: > - Name: devel > Summary: Development components for the pixman library > > _______________________________________________ > Meego-commits mailing list > [email protected] > http://lists.meego.com/listinfo/meego-commits _______________________________________________ MeeGo-packaging mailing list [email protected] http://lists.meego.com/listinfo/meego-packaging
