diff options
Diffstat (limited to 'pixman')
-rw-r--r-- | pixman/configure | 70 | ||||
-rw-r--r-- | pixman/configure.ac | 20 | ||||
-rw-r--r-- | pixman/pixman/pixman-access.c | 30 | ||||
-rw-r--r-- | pixman/pixman/pixman-arm-neon.c | 10 | ||||
-rw-r--r-- | pixman/pixman/pixman-bits-image.c | 10 | ||||
-rw-r--r-- | pixman/pixman/pixman-cpu.c | 2 | ||||
-rw-r--r-- | pixman/pixman/pixman-fast-path.c | 8 | ||||
-rw-r--r-- | pixman/pixman/pixman-image.c | 6 | ||||
-rw-r--r-- | pixman/pixman/pixman-sse2.c | 12 | ||||
-rw-r--r-- | pixman/pixman/pixman-version.h | 4 | ||||
-rw-r--r-- | pixman/pixman/pixman.h | 2 | ||||
-rw-r--r-- | pixman/test/blitters-test.c | 5 | ||||
-rw-r--r-- | pixman/test/fetch-test.c | 18 |
13 files changed, 124 insertions, 73 deletions
diff --git a/pixman/configure b/pixman/configure index df72bda48..10d8afece 100644 --- a/pixman/configure +++ b/pixman/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.63 for pixman 0.16.0. +# Generated by GNU Autoconf 2.63 for pixman 0.16.2. # # Report bugs to <"sandmann@daimi.au.dk">. # @@ -745,8 +745,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='pixman' PACKAGE_TARNAME='pixman' -PACKAGE_VERSION='0.16.0' -PACKAGE_STRING='pixman 0.16.0' +PACKAGE_VERSION='0.16.2' +PACKAGE_STRING='pixman 0.16.2' PACKAGE_BUGREPORT='"sandmann@daimi.au.dk"' # Factoring default headers for most tests. @@ -1506,7 +1506,7 @@ if test "$ac_init_help" = "long"; then # 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.16.0 to adapt to many kinds of systems. +\`configure' configures pixman 0.16.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1576,7 +1576,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of pixman 0.16.0:";; + short | recursive ) echo "Configuration of pixman 0.16.2:";; esac cat <<\_ACEOF @@ -1687,7 +1687,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -pixman configure 0.16.0 +pixman configure 0.16.2 generated by GNU Autoconf 2.63 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1701,7 +1701,7 @@ cat >config.log <<_ACEOF 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.16.0, which was +It was created by pixman $as_me 0.16.2, which was generated by GNU Autoconf 2.63. Invocation command line was $ $0 $@ @@ -2417,7 +2417,7 @@ fi # Define the identity of the package. PACKAGE='pixman' - VERSION='0.16.0' + VERSION='0.16.2' cat >>confdefs.h <<_ACEOF @@ -2647,6 +2647,8 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac +test_CFLAGS=${CFLAGS+set} # We may override autoconf default CFLAGS. + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -4369,13 +4371,13 @@ if test "${lt_cv_nm_interface+set}" = set; then else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:4372: $ac_compile\"" >&5) + (eval echo "\"\$as_me:4374: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 - (eval echo "\"\$as_me:4375: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval echo "\"\$as_me:4377: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 - (eval echo "\"\$as_me:4378: output\"" >&5) + (eval echo "\"\$as_me:4380: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -5581,7 +5583,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 5584 "configure"' > conftest.$ac_ext + echo '#line 5586 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -7434,11 +7436,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7437: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7439: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7441: \$? = $ac_status" >&5 + echo "$as_me:7443: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -7773,11 +7775,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7776: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7778: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7780: \$? = $ac_status" >&5 + echo "$as_me:7782: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -7878,11 +7880,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7881: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7883: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:7885: \$? = $ac_status" >&5 + echo "$as_me:7887: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -7933,11 +7935,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7936: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7938: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:7940: \$? = $ac_status" >&5 + echo "$as_me:7942: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -10736,7 +10738,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10739 "configure" +#line 10741 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -10832,7 +10834,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10835 "configure" +#line 10837 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11757,6 +11759,16 @@ else fi +# Default CFLAGS to -O -g rather than just the -g from AC_PROG_CC +# if we're using Sun Studio and neither the user nor a config.site +# has set CFLAGS. +if test $SUNCC = yes && \ + test "$test_CFLAGS" == "" && \ + test "$CFLAGS" = "-g" +then + CFLAGS="-O -g" +fi + # # We ignore pixman_major in the version here because the major version should # always be encoded in the actual library name. Ie., the soname is: @@ -11767,13 +11779,13 @@ fi -LT_VERSION_INFO="16:0:16" +LT_VERSION_INFO="16:2:16" PIXMAN_VERSION_MAJOR=0 PIXMAN_VERSION_MINOR=16 -PIXMAN_VERSION_MICRO=0 +PIXMAN_VERSION_MICRO=2 @@ -12209,7 +12221,7 @@ have_vmx_intrinsics=no { $as_echo "$as_me:$LINENO: checking whether to use VMX/Altivec intrinsics" >&5 $as_echo_n "checking whether to use VMX/Altivec intrinsics... " >&6; } xserver_save_CFLAGS=$CFLAGS -CFLAGS="$CFLAGS $VMX_CFLAGS" +CFLAGS="$VMX_CFLAGS $CFLAGS" cat >conftest.$ac_ext <<_ACEOF #if defined(__GNUC__) && (__GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 4)) @@ -12298,7 +12310,7 @@ have_arm_simd=no { $as_echo "$as_me:$LINENO: checking whether to use ARM SIMD assembler" >&5 $as_echo_n "checking whether to use ARM SIMD assembler... " >&6; } xserver_save_CFLAGS=$CFLAGS -CFLAGS="$CFLAGS $ARM_SIMD_CFLAGS" +CFLAGS="$ARM_SIMD_CFLAGS $CFLAGS" cat >conftest.$ac_ext <<_ACEOF int main () { @@ -12382,7 +12394,7 @@ have_arm_neon=no { $as_echo "$as_me:$LINENO: checking whether to use ARM NEON" >&5 $as_echo_n "checking whether to use ARM NEON... " >&6; } xserver_save_CFLAGS=$CFLAGS -CFLAGS="$CFLAGS $ARM_NEON_CFLAGS" +CFLAGS="$ARM_NEON_CFLAGS $CFLAGS" cat >conftest.$ac_ext <<_ACEOF #include <arm_neon.h> @@ -13404,7 +13416,7 @@ exec 6>&1 # 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.16.0, which was +This file was extended by pixman $as_me 0.16.2, which was generated by GNU Autoconf 2.63. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -13467,7 +13479,7 @@ Report bugs to <bug-autoconf@gnu.org>." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -pixman config.status 0.16.0 +pixman config.status 0.16.2 configured by $0, generated by GNU Autoconf 2.63, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff --git a/pixman/configure.ac b/pixman/configure.ac index 937fae787..a1c6949e9 100644 --- a/pixman/configure.ac +++ b/pixman/configure.ac @@ -54,7 +54,7 @@ AC_PREREQ([2.57]) m4_define([pixman_major], 0) m4_define([pixman_minor], 16) -m4_define([pixman_micro], 0) +m4_define([pixman_micro], 2) m4_define([pixman_version],[pixman_major.pixman_minor.pixman_micro]) @@ -65,6 +65,8 @@ AM_CONFIG_HEADER(config.h) AC_CANONICAL_HOST +test_CFLAGS=${CFLAGS+set} # We may override autoconf default CFLAGS. + AC_PROG_CC AC_PROG_LIBTOOL AC_CHECK_FUNCS([getisax]) @@ -75,6 +77,16 @@ AC_C_INLINE AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"]) AC_CHECK_DECL([__amd64], [AMD64_ABI="yes"], [AMD64_ABI="no"]) +# Default CFLAGS to -O -g rather than just the -g from AC_PROG_CC +# if we're using Sun Studio and neither the user nor a config.site +# has set CFLAGS. +if test $SUNCC = yes && \ + test "$test_CFLAGS" == "" && \ + test "$CFLAGS" = "-g" +then + CFLAGS="-O -g" +fi + # # We ignore pixman_major in the version here because the major version should # always be encoded in the actual library name. Ie., the soname is: @@ -306,7 +318,7 @@ fi have_vmx_intrinsics=no AC_MSG_CHECKING(whether to use VMX/Altivec intrinsics) xserver_save_CFLAGS=$CFLAGS -CFLAGS="$CFLAGS $VMX_CFLAGS" +CFLAGS="$VMX_CFLAGS $CFLAGS" AC_COMPILE_IFELSE([ #if defined(__GNUC__) && (__GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 4)) error "Need GCC >= 3.4 for sane altivec support" @@ -350,7 +362,7 @@ ARM_SIMD_CFLAGS="-mcpu=arm1136j-s" have_arm_simd=no AC_MSG_CHECKING(whether to use ARM SIMD assembler) xserver_save_CFLAGS=$CFLAGS -CFLAGS="$CFLAGS $ARM_SIMD_CFLAGS" +CFLAGS="$ARM_SIMD_CFLAGS $CFLAGS" AC_COMPILE_IFELSE([ int main () { asm("uqadd8 r1, r1, r2"); @@ -389,7 +401,7 @@ ARM_NEON_CFLAGS="-mfpu=neon -mcpu=cortex-a8" have_arm_neon=no AC_MSG_CHECKING(whether to use ARM NEON) xserver_save_CFLAGS=$CFLAGS -CFLAGS="$CFLAGS $ARM_NEON_CFLAGS" +CFLAGS="$ARM_NEON_CFLAGS $CFLAGS" AC_COMPILE_IFELSE([ #include <arm_neon.h> int main () { diff --git a/pixman/pixman/pixman-access.c b/pixman/pixman/pixman-access.c index 532aa2ef7..d9fd38c15 100644 --- a/pixman/pixman/pixman-access.c +++ b/pixman/pixman/pixman-access.c @@ -230,7 +230,7 @@ fetch_scanline_a2r10g10b10 (pixman_image_t *image, const uint32_t *pixel = bits + x; const uint32_t *end = pixel + width; uint64_t *buffer = (uint64_t *)b; - + while (pixel < end) { uint32_t p = READ (image, pixel++); @@ -238,16 +238,16 @@ fetch_scanline_a2r10g10b10 (pixman_image_t *image, uint64_t r = (p >> 20) & 0x3ff; uint64_t g = (p >> 10) & 0x3ff; uint64_t b = p & 0x3ff; - + r = r << 6 | r >> 4; g = g << 6 | g >> 4; b = b << 6 | b >> 4; - - a <<= 62; + + a <<= 14; a |= a >> 2; a |= a >> 4; a |= a >> 8; - + *buffer++ = a << 48 | r << 32 | g << 16 | b; } } @@ -309,11 +309,11 @@ fetch_scanline_a2b10g10r10 (pixman_image_t *image, g = g << 6 | g >> 4; b = b << 6 | b >> 4; - a <<= 62; + a <<= 14; a |= a >> 2; a |= a >> 4; a |= a >> 8; - + *buffer++ = a << 48 | r << 32 | g << 16 | b; } } @@ -1115,18 +1115,18 @@ fetch_scanline_yv12 (pixman_image_t *image, { int16_t y, u, v; int32_t r, g, b; - + y = y_line[x + i] - 16; u = u_line[(x + i) >> 1] - 128; v = v_line[(x + i) >> 1] - 128; - + /* R = 1.164(Y - 16) + 1.596(V - 128) */ r = 0x012b27 * y + 0x019a2e * v; /* G = 1.164(Y - 16) - 0.813(V - 128) - 0.391(U - 128) */ g = 0x012b27 * y - 0x00d0f2 * v - 0x00647e * u; /* B = 1.164(Y - 16) + 2.018(U - 128) */ b = 0x012b27 * y + 0x0206a2 * u; - + *buffer++ = 0xff000000 | (r >= 0 ? r < 0x1000000 ? r & 0xff0000 : 0xff0000 : 0) | (g >= 0 ? g < 0x1000000 ? (g >> 8) & 0x00ff00 : 0x00ff00 : 0) | @@ -1148,16 +1148,16 @@ fetch_pixel_a2r10g10b10 (bits_image_t *image, uint64_t r = (p >> 20) & 0x3ff; uint64_t g = (p >> 10) & 0x3ff; uint64_t b = p & 0x3ff; - + r = r << 6 | r >> 4; g = g << 6 | g >> 4; b = b << 6 | b >> 4; - - a <<= 62; + + a <<= 14; a |= a >> 2; a |= a >> 4; a |= a >> 8; - + return a << 48 | r << 32 | g << 16 | b; } @@ -1197,7 +1197,7 @@ fetch_pixel_a2b10g10r10 (bits_image_t *image, g = g << 6 | g >> 4; b = b << 6 | b >> 4; - a <<= 62; + a <<= 14; a |= a >> 2; a |= a >> 4; a |= a >> 8; diff --git a/pixman/pixman/pixman-arm-neon.c b/pixman/pixman/pixman-arm-neon.c index 4125d1b0c..8a2d72ea3 100644 --- a/pixman/pixman/pixman-arm-neon.c +++ b/pixman/pixman/pixman-arm-neon.c @@ -64,6 +64,12 @@ unpack0565 (uint16x8_t rgb) return res; } +#ifdef USE_GCC_INLINE_ASM +/* Some versions of gcc have problems with vshll_n_u8 intrinsic (Bug 23576) */ +#define vshll_n_u8(a, n) ({ uint16x8_t r; \ + asm ("vshll.u8 %q0, %P1, %2\n" : "=w" (r) : "w" (a), "i" (n)); r; }) +#endif + static force_inline uint16x8_t pack0565 (uint8x8x4_t s) { @@ -2761,8 +2767,8 @@ arm_neon_fill (pixman_implementation_t *imp, pixman_implementation_t * _pixman_implementation_create_arm_neon (void) { - pixman_implementation_t *simd = _pixman_implementation_create_arm_simd (); - pixman_implementation_t *imp = _pixman_implementation_create (simd); + pixman_implementation_t *general = _pixman_implementation_create_fast_path (); + pixman_implementation_t *imp = _pixman_implementation_create (general); imp->composite = arm_neon_composite; #if 0 /* this code has some bugs */ diff --git a/pixman/pixman/pixman-bits-image.c b/pixman/pixman/pixman-bits-image.c index 6b8018985..4e78ce107 100644 --- a/pixman/pixman/pixman-bits-image.c +++ b/pixman/pixman/pixman-bits-image.c @@ -612,14 +612,14 @@ source_image_needs_out_of_bounds_workaround (bits_image_t *image) { if (!image->common.client_clip) { - /* There is no client clip, so the drawable in question - * is a window if the clip region extends beyond the - * drawable geometry. + /* There is no client clip, so if the clip region extends beyond the + * drawable geometry, it must be because the X server generated the + * bogus clip region. */ const pixman_box32_t *extents = pixman_region32_extents (&image->common.clip_region); - if (extents->x1 >= 0 && extents->x2 < image->width && - extents->y1 >= 0 && extents->y2 < image->height) + if (extents->x1 >= 0 && extents->x2 <= image->width && + extents->y1 >= 0 && extents->y2 <= image->height) { return FALSE; } diff --git a/pixman/pixman/pixman-cpu.c b/pixman/pixman/pixman-cpu.c index a2a7b8a1a..5d5469bb8 100644 --- a/pixman/pixman/pixman-cpu.c +++ b/pixman/pixman/pixman-cpu.c @@ -325,7 +325,7 @@ pixman_have_arm_neon (void) * that would lead to SIGILL instructions on old CPUs that don't have * it. */ -#if !defined(__amd64__) && !defined(__x86_64__) +#if !defined(__amd64__) && !defined(__x86_64__) && !defined(_M_AMD64) #ifdef HAVE_GETISAX #include <sys/auxv.h> diff --git a/pixman/pixman/pixman-fast-path.c b/pixman/pixman/pixman-fast-path.c index 7f805780f..5ab8d8c99 100644 --- a/pixman/pixman/pixman-fast-path.c +++ b/pixman/pixman/pixman-fast-path.c @@ -389,15 +389,11 @@ fast_composite_add_n_8888_8888_ca (pixman_implementation_t *imp, { ma = *mask++; - if (ma == 0xffffffff && srca == 0xff) - { - *dst = src; - } - else if (ma) + if (ma) { d = *dst; s = src; - + UN8x4_MUL_UN8x4_ADD_UN8x4 (s, ma, d); *dst = s; diff --git a/pixman/pixman/pixman-image.c b/pixman/pixman/pixman-image.c index 583195377..bba5fd68c 100644 --- a/pixman/pixman/pixman-image.c +++ b/pixman/pixman/pixman-image.c @@ -312,7 +312,7 @@ pixman_image_set_transform (pixman_image_t * image, { { { pixman_fixed_1, 0, 0 }, { 0, pixman_fixed_1, 0 }, - { 0, 0, pixman_fixed_1 }} + { 0, 0, pixman_fixed_1 } } }; image_common_t *common = (image_common_t *)image; @@ -342,10 +342,12 @@ pixman_image_set_transform (pixman_image_t * image, memcpy (common->transform, transform, sizeof(pixman_transform_t)); + result = TRUE; + out: image_property_changed (image); - return TRUE; + return result; } PIXMAN_EXPORT void diff --git a/pixman/pixman/pixman-sse2.c b/pixman/pixman/pixman-sse2.c index 727ad42ec..bb74882b2 100644 --- a/pixman/pixman/pixman-sse2.c +++ b/pixman/pixman/pixman-sse2.c @@ -359,13 +359,13 @@ in_over_2x128 (__m128i* src_lo, static force_inline void cache_prefetch (__m128i* addr) { - _mm_prefetch (addr, _MM_HINT_T0); + _mm_prefetch ((void const*)addr, _MM_HINT_T0); } static force_inline void cache_prefetch_next (__m128i* addr) { - _mm_prefetch (addr + 4, _MM_HINT_T0); /* 64 bytes ahead */ + _mm_prefetch ((void const *)(addr + 4), _MM_HINT_T0); /* 64 bytes ahead */ } /* load 4 pixels from a 16-byte boundary aligned address */ @@ -2628,12 +2628,18 @@ create_mask_2x32_64 (uint32_t mask0, return _mm_set_pi32 (mask0, mask1); } +/* Work around a code generation bug in Sun Studio 12. */ +#if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590) +# define create_mask_2x32_128(mask0, mask1) \ + (_mm_set_epi32 ((mask0), (mask1), (mask0), (mask1))) +#else static force_inline __m128i create_mask_2x32_128 (uint32_t mask0, uint32_t mask1) { return _mm_set_epi32 (mask0, mask1, mask0, mask1); } +#endif /* SSE2 code patch for fbcompose.c */ @@ -5600,7 +5606,7 @@ static const pixman_fast_path_t sse2_fast_paths[] = { PIXMAN_OP_OVER, PIXMAN_x8r8g8b8, PIXMAN_a8, PIXMAN_x8r8g8b8, sse2_composite_over_x888_8_8888, 0 }, { PIXMAN_OP_OVER, PIXMAN_x8r8g8b8, PIXMAN_a8, PIXMAN_a8r8g8b8, sse2_composite_over_x888_8_8888, 0 }, { PIXMAN_OP_OVER, PIXMAN_x8b8g8r8, PIXMAN_a8, PIXMAN_x8b8g8r8, sse2_composite_over_x888_8_8888, 0 }, - { PIXMAN_OP_OVER, PIXMAN_x8b8g8r8, PIXMAN_a8, PIXMAN_a8r8g8b8, sse2_composite_over_x888_8_8888, 0 }, + { PIXMAN_OP_OVER, PIXMAN_x8b8g8r8, PIXMAN_a8, PIXMAN_a8b8g8r8, sse2_composite_over_x888_8_8888, 0 }, #endif { PIXMAN_OP_OVER, PIXMAN_x8r8g8b8, PIXMAN_a8, PIXMAN_a8r8g8b8, sse2_composite_over_x888_n_8888, NEED_SOLID_MASK }, { PIXMAN_OP_OVER, PIXMAN_x8r8g8b8, PIXMAN_a8, PIXMAN_x8r8g8b8, sse2_composite_over_x888_n_8888, NEED_SOLID_MASK }, diff --git a/pixman/pixman/pixman-version.h b/pixman/pixman/pixman-version.h index 65df97052..79d74fed4 100644 --- a/pixman/pixman/pixman-version.h +++ b/pixman/pixman/pixman-version.h @@ -33,9 +33,9 @@ #define PIXMAN_VERSION_MAJOR 0 #define PIXMAN_VERSION_MINOR 16 -#define PIXMAN_VERSION_MICRO 0 +#define PIXMAN_VERSION_MICRO 2 -#define PIXMAN_VERSION_STRING "0.16.0" +#define PIXMAN_VERSION_STRING "0.16.2" #define PIXMAN_VERSION_ENCODE(major, minor, micro) ( \ ((major) * 10000) \ diff --git a/pixman/pixman/pixman.h b/pixman/pixman/pixman.h index 969d42702..5b90a0c8d 100644 --- a/pixman/pixman/pixman.h +++ b/pixman/pixman/pixman.h @@ -222,8 +222,6 @@ pixman_bool_t pixman_transform_from_pixman_f_transform (struct pixman_transform const struct pixman_f_transform *ft); void pixman_f_transform_from_pixman_transform (struct pixman_f_transform *ft, const struct pixman_transform *t); -pixman_bool_t pixman_transform_from_pixman_f_transform (struct pixman_transform *t, - const struct pixman_f_transform *ft); pixman_bool_t pixman_f_transform_invert (struct pixman_f_transform *dst, const struct pixman_f_transform *src); pixman_bool_t pixman_f_transform_point (const struct pixman_f_transform *t, diff --git a/pixman/test/blitters-test.c b/pixman/test/blitters-test.c index 23de6c2f5..ba9900a79 100644 --- a/pixman/test/blitters-test.c +++ b/pixman/test/blitters-test.c @@ -314,6 +314,9 @@ free_random_image (uint32_t initcrc, uint32_t *data = pixman_image_get_data (img); uint32_t mask = (1 << PIXMAN_FORMAT_DEPTH (fmt)) - 1; + if (PIXMAN_FORMAT_TYPE (fmt) == PIXMAN_TYPE_BGRA) + mask <<= (PIXMAN_FORMAT_BPP (fmt) - PIXMAN_FORMAT_DEPTH (fmt)); + for (i = 0; i < 32; i++) mask |= mask << (i * PIXMAN_FORMAT_BPP (fmt)); @@ -637,7 +640,7 @@ main (int argc, char *argv[]) /* 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 == 0xFE1244BF) + if (crc == 0x06D8EDB6) { printf ("blitters test passed\n"); } diff --git a/pixman/test/fetch-test.c b/pixman/test/fetch-test.c index c41f1a63e..6306a4c42 100644 --- a/pixman/test/fetch-test.c +++ b/pixman/test/fetch-test.c @@ -2,6 +2,7 @@ #include <stdlib.h> #include <stdio.h> #include "pixman.h" +#include <config.h> #define SIZE 1024 @@ -34,8 +35,13 @@ testcase_t testcases[] = { .format = PIXMAN_g1, .width = 8, .height = 2, .stride = 4, +#ifdef WORDS_BIGENDIAN + .src = { 0xaa000000, + 0x55000000 }, +#else .src = { 0x00000055, 0x000000aa }, +#endif .dst = { 0x00ffffff, 0x00000000, 0x00ffffff, 0x00000000, 0x00ffffff, 0x00000000, 0x00ffffff, 0x00000000, 0x00000000, 0x00ffffff, 0x00000000, 0x00ffffff, 0x00000000, 0x00ffffff, 0x00000000, 0x00ffffff }, .indexed = &mono_pallete, @@ -51,14 +57,24 @@ testcase_t testcases[] = { 0x00898989, 0x00ababab, 0x00cdcdcd, 0x00efefef, }, }, #endif + /* FIXME: make this work on big endian */ { .format = PIXMAN_yv12, .width = 8, .height = 2, .stride = 8, +#ifdef WORDS_BIGENDIAN + .src = { 0x00ff00ff, 0x00ff00ff, + 0xff00ff00, 0xff00ff00, + 0x80ff8000, + 0x800080ff + }, +#else .src = { 0xff00ff00, 0xff00ff00, 0x00ff00ff, 0x00ff00ff, 0x0080ff80, - 0xff800080}, + 0xff800080 + }, +#endif .dst = { 0xff000000, 0xffffffff, 0xffb80000, 0xffffe113, 0xff000000, 0xffffffff, 0xff0023ee, 0xff4affff, |