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 @@
>           &region, src, mask, dest,
>           src_x, src_y, mask_x, mask_y, dest_x, dest_y, width, height))
>      {
> -     return;
> +     goto out;
>      }
> 
>      extents = pixman_region32_extents (&region);
> @@ -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

Reply via email to