summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-01-26Make pixman_image_fill_rectangles() call pixman_image_fill_boxes()32Benjamin Otte1-68/+20
Avoids duplication of code
2010-01-26Add pixman_image_fill_boxes() APIBenjamin Otte2-0/+90
It's basically the 32bit version of pixman_image_fill_rectangles(), just with a saner data type.
2010-01-26Add pixman_image_composite32()Benjamin Otte2-2/+32
This is equal to pixman_image_composite(), just with 32bit parameters. pixman_image_composite() now just calls pixman_image_composite32()
2010-01-26Make region argument to pixman_region(32)_init_rects() constBenjamin Otte2-3/+3
No indenting of the header to keep git blame working
2010-01-26Fix typoBenjamin Otte1-1/+1
2009-12-17region: Enable or disable fatal errors and selfchecks based on version numberSøren Sandmann Pedersen1-5/+38
There is a couple of bugs in bugzilla where bugs in the X server triggered asserts in the pixman region code. It is probably better to let the X server survive this. (In fact, I thought I had disabled them for 0.16.0, but apparently not). The patch below uses these rules: - In _stable_ pixman releases, assertions and selfchecks are turned off. Assertions, so that the X server doesn't die. Selfchecks, for performance reasons. - In _unstable_ pixman releases, both assertions and selfcheck are turned on. These releases are what get added to development distributions such as rawhide, so we want as much self-checking as possible. - In _random git checkouts_, assertions are enabled, so that bugs are caught, but selfchecks are disabled so that you can use them for performance work without having to fiddle with turning selfchecks off.
2009-12-16Some minor formatting fixes.Søren Sandmann Pedersen1-23/+20
2009-12-16arm-simd: Whitespace fixesSøren Sandmann Pedersen1-42/+41
2009-12-16mmx: Eliminate trailing whitespace.Søren Sandmann Pedersen1-33/+33
2009-12-16Add 'check' to release-check make targetSøren Sandmann Pedersen2-2/+1
2009-12-16Reorder tests so that they fastest ones run first.Søren Sandmann Pedersen1-5/+5
2009-12-16Build tests and run non-GTK+ ones on `make check`Marvin Schmidt1-2/+4
Setting TESTS will run the tests on `make check` Bug 25131
2009-12-16ARM: added 'neon_combine_add_u' functionSiarhei Siamashka2-0/+22
2009-12-16ARM: added 'neon_combine_over_u' functionSiarhei Siamashka2-0/+55
2009-12-16ARM: macro template for single scanline compositing functionsSiarhei Siamashka1-0/+119
Existing template already supports 2D images processing, but pixman also needs some NEON optimized functions for improving performance when compositing is decoupled into "fetch -> process -> store" stages and done via temporary scanline buffer. That's why a new simplified template which deals only with the generation of single scanline processing functions is handy.
2009-12-16Use canonical pixman license notice for recently added ARM NEON assembly filesSiarhei Siamashka2-34/+34
2009-12-09ARM: added 'neon_composite_src_pixbuf_8888' fast pathSiarhei Siamashka2-0/+59
This is ARM NEON optimized conversion of native RGBA format used by GTK/GDK into native 32bpp RGBA format used by cairo/pixman.
2009-12-09ARM: added 'neon_composite_src_0888_0565_rev' fast pathSiarhei Siamashka2-0/+40
This is ARM NEON optimized conversion of native RGB format used by GTK/GDK into r5g6b5 format.
2009-12-09ARM: added 'neon_src_0888_8888_rev' fast pathSiarhei Siamashka2-0/+37
This is ARM NEON optimized conversion of native RGB format used by GTK/GDK into native 32bpp RGB format used by cairo/pixman.
2009-12-09ARM: added 'neon_composite_over_n_8888' fast pathSiarhei Siamashka2-0/+33
2009-12-09ARM: added 'neon_composite_over_n_0565' fast pathSiarhei Siamashka2-0/+112
2009-12-09ARM: added 'neon_composite_src_0565_8888' fast pathSiarhei Siamashka2-0/+40
2009-12-09ARM: added 'neon_composite_add_8888_8888_8888' fast pathSiarhei Siamashka2-0/+49
2009-12-09ARM: added 'neon_composite_add_8888_8888' fast pathSiarhei Siamashka2-0/+35
2009-12-09ARM: added 'neon_composite_over_8888_8_8888' fast pathSiarhei Siamashka2-0/+41
2009-12-09ARM: added 'neon_composite_over_8888_8888_8888' fast pathSiarhei Siamashka2-0/+38
2009-12-09ARM: minor source formatting changesSiarhei Siamashka1-108/+108
Now it's a bit harder to exceed 80 characters line limit when binding assembly functions.
2009-12-08ARM: added '.arch armv7a' directive to NEON assembly fileSiarhei Siamashka1-0/+1
This fix prevents build failure due to not accepting PLD instruction when compiling for armv4 cpu with the relevant -mcpu/-march options set in CFLAGS.
2009-12-04Make test program not throw warnings about undefined variablesBenjamin Otte1-1/+1
2009-12-04Fix bug that prevented pixman_fill MMX and SSE paths for 16 and 8bppBenjamin Otte2-13/+3
2009-11-30ARM: NEON optimized pixman_bltSiarhei Siamashka1-0/+70
NEON unit has fast access to L1/L2 caches and even simple copy of memory buffers using NEON provides more than 1.5x performance improvement on ARM Cortex-A8.
2009-11-27test: support for testing pixbuf fast path functions in blitters-testSiarhei Siamashka1-18/+41
2009-11-22Remove nonexistant function from headerBenjamin Otte1-4/+0
2009-11-20Post-release version bumpSøren Sandmann Pedersen1-1/+1
2009-11-20Pre-release version bumpSøren Sandmann Pedersen1-1/+1
2009-11-20Remove stray semicolon from blitters-test.cSøren Sandmann Pedersen1-1/+1
Pointed out by scottmc2@gmail.com in bug 25137.
2009-11-20C fast path function for 'over_n_1_0565'Siarhei Siamashka1-0/+100
This function is needed to improve performance of xfce4 terminal when using bitmap fonts and running with 16bpp desktop. Some other applications may potentially benefit too. After applying this patch, top functions from Xorg process in oprofile log change from samples % image name symbol name 13296 29.1528 libpixman-1.so.0.17.1 combine_over_u 6452 14.1466 libpixman-1.so.0.17.1 fetch_scanline_r5g6b5 5516 12.0944 libpixman-1.so.0.17.1 fetch_scanline_a1 2273 4.9838 libpixman-1.so.0.17.1 store_scanline_r5g6b5 1741 3.8173 libpixman-1.so.0.17.1 fast_composite_add_1000_1000 1718 3.7669 libc-2.9.so memcpy to samples % image name symbol name 5594 14.7033 libpixman-1.so.0.17.1 fast_composite_over_n_1_0565 4323 11.3626 libc-2.9.so memcpy 3695 9.7119 libpixman-1.so.0.17.1 fast_composite_add_1000_1000 when scrolling text in terminal (reading man page).
2009-11-17Delete the flags field from fast_path_info_tSøren Sandmann Pedersen6-207/+206
2009-11-17Eliminate NEED_PIXBUF flag.Søren Sandmann Pedersen4-85/+78
Instead introduce two new fake formats PIXMAN_pixbuf PIXMAN_rpixbuf and compute whether the source and mask have them in find_fast_path(). This lead to some duplicate entries in the fast path tables that could then be removed.
2009-11-17Compute src_format outside the fast path loop.Søren Sandmann Pedersen1-16/+15
Inside the loop all we have to do is check that the formats match.
2009-11-17Eliminate the NEED_COMPONENT_ALPHA flag.Søren Sandmann Pedersen5-38/+61
Instead introduce two new fake formats PIXMAN_a8r8g8b8_ca PIXMAN_a8b8g8r8_ca that are used in the fast path tables for this case.
2009-11-17Eliminate the NEED_SOLID_MASK flagSøren Sandmann Pedersen6-55/+32
This flag was used to indicate that the mask was solid while still allowing a specific format to be required. However, there is not actually any need for this because the fast paths all used _pixman_image_get_solid() which already allowed arbitrary formats. The one thing that had to be dealt with was component alpha. In addition to interpreting the presence of the NEED_COMPONENT_ALPHA flag, we now also interprete the *absence* of this flag as a requirement that the mask does *not* have component alpha. Siarhei Siamashka pointed out that the first version of this commit had a bug, in which a NEED_SOLID_MASK was accidentally not turned into a PIXMAN_solid in the ARM NEON implementation.
2009-11-17Use the destination buffer directly in more cases instead of fetching.Søren Sandmann Pedersen1-7/+19
When the destination buffer is either a8r8g8b8 or x8r8g8b8, we can use it directly instead of fetching into a temporary buffer. When the format is x8r8g8b8, we require the operator to not make use of destination alpha, but when it is a8r8g8b8, there are no restrictions. This is approximately a 5% speedup on the poppler cairo benchmark: [ # ] backend test min(s) median(s) stddev. count Before: [ 0] image poppler 6.661 6.709 0.59% 6/6 After: [ 0] image poppler 6.307 6.320 0.12% 5/6
2009-11-17test: Move image_endian_swap() from blitters-test.c to utils.[ch]Søren Sandmann Pedersen4-146/+87
2009-11-17test: Move random number generator from blitters/scaling-test to utils.[ch]Søren Sandmann Pedersen4-47/+36
2009-11-17test: In scaling-test use the crc32 from utils.cSøren Sandmann Pedersen2-105/+4
2009-11-17test: Move CRC32 code from blitters-test to new files utils.[ch]Søren Sandmann Pedersen4-105/+117
2009-11-17test: Rename utils.[ch] to gtk-utils.[ch]Søren Sandmann Pedersen11-17/+18
2009-11-13sse2: Add a fast path for OVER 8888 x 8 x 8888Søren Sandmann Pedersen1-4/+181
This is a small speedup on the swfdec-youtube benchmark: Before: [ 0] image swfdec-youtube 5.789 5.806 0.20% 6/6 After: [ 0] image swfdec-youtube 5.489 5.524 0.27% 6/6 Ie., approximately 5% faster.
2009-11-11ARM: enabled 'neon_composite_add_8000_8000' fast pathSiarhei Siamashka1-0/+1