- Nov 03, 2022
-
-
Signed-off-by:
Claude Heiland-Allen <claude@mathr.co.uk>
-
- Oct 27, 2022
-
-
Matt Turner authored
This reverts commit aaf59b03. This commit regressed the scaling-test unit test, by apparently allowing the compiler to emit fused multiply-add instructions in cases they wouldn't have been allowed before. While using gcc's -ffp-contract=... flag avoids the issue on amd64, it does not on at least aarch64 and ppc64. This is unfortunate, because the commit being reverted resolved pixman/pixman#43 so we will reintroduce this failure, but after more than a year without a fix for the unit test, I think it's time to bite the bullet. Fixes: pixman/pixman#49
-
- Sep 17, 2021
-
-
prng_state and prng_state_data are getting classified as a "Common symbol" by the compiler due to the convoluted way in which it is `#include`-ed in various test sources, and that's not read as a valid symbol by the linker later. Initializing the symbol clarifies it to the compiler that this specific declaration is the canonical location for this variable, and that it's not a "Common symbol". Fixes pixman/pixman#42
-
- Jul 21, 2021
-
-
- Mar 20, 2020
-
-
Matt Turner authored
Closes: pixman/pixman#7
-
- Dec 19, 2019
-
-
Khem Raj authored
Some architectures e.g. nios2 do not support all exceptions.
-
- Nov 18, 2019
-
-
Chun-wei Fan authored
...When we don't have a pthreads implementation available, which is normally the case on Windows. This attempts to make it easier for people on Windows to verify whether their builds of Pixman (and Cairo component, if applicable) are thread-safe. Also, make the number of threads a #define, so if we need to change it at some point, it's easier. This re-enables the thread-test program on Windows in Meson builds.
-
Chun-wei Fan authored
We need that to make sure we have UINT16_MAX.
-
Chun-wei Fan authored
Look also for pthread.h if threading support is found by Meson, as the underlying threading support may not be PThreads, depending on platform. For now, disable the thread-test test program if pthread.h and if necessary, the PThreads library, cannot be found, as the current implementation assumes the use of PThreads. Also bump the required Meson version to 0.50.0 since we need it for -cc.get_argument_syntax() -For a later commit, the has_headers sub-method for cc.find_library()
-
- Nov 01, 2019
-
-
Adam Jackson authored
Does not make the test pass, but does fix this error: ../test/stress-test.c:538:25: runtime error: signed integer overflow: 2147483647 - -2 cannot be represented in type 'int'
-
- Oct 15, 2019
-
-
Adam Jackson authored
../test/utils.c:2070:57: runtime error: left shift of 255 by 24 places cannot be represented in type 'int'
-
Adam Jackson authored
../test/affine-test.c:174:34: runtime error: left shift of 1 by 31 places cannot be represented in type 'int'
-
- May 25, 2019
-
-
On some screens (typically low quality laptop screens), using Bayer ordered dithering has been observed to cause color changes depending on *where the gradient is rendered on the screen*, causing visible flickering when moving an image on the screen. To alleviate the issue, this patch adds support for ordered dithering using a 64x64 matrix tuned from blue noise. In addition to being devoid of the positional dependency on screen, the blue noise matrix also generates more pleasing and less discernable patterns. As such, it is now the method used for PIXMAN_DITHER_GOOD and PIXMAN_DITHER_BEST dithering methods. The 64x64 blue noise matrix has been generated using the provided `pixman/dither/make-blue-noise.c` script, which uses the void-and-cluster method. Changes since v1 (thanks Bill): - Use uint16_t for the blue noise matrix for lower memory usage - Use bitwise computation for array index
-
This adds support for testing dithered destinations in tolerance-test. When dithering is enabled, the pixel checker allows for an additional quantization error.
-
- Jan 16, 2019
-
-
Reviewed-by:
Matt Turner <mattst88@gmail.com>
-
- Nov 29, 2018
-
-
This commit adds a meson build system for pixman. It carries the usual improvements of meson, better clean build time, much better incremental build times, while being simpler and easier to understand. This takes advantage of some features from the most recent versions of meson: the builtin openmp dependency and the feature option type. There are a couple of things that I've done a bit differently than the autotools build system, I've built a libdemos which is the utilities from the demos folder, and I've linked the demos with libtestutils from tetsts, otherwise I expect that most things will be the same. I've tested so far cross compiling from x86_64 -> x86, x86_64 -> Aarch64, and Linux to Windows via mingw, as well as native x86_64 Linux builds which all work. I've also built with mingw nativly, there are some test failures there. An MSVC build can be generated, but fails. v2: - set WORDS_BIGENDIAN in the config for big endian systems.
-
- Nov 06, 2018
-
-
Maarten Lankhorst authored
Add some basic tests to ensure that the newly added formats work as intended. Signed-off-by:
Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
- Jul 06, 2018
-
-
Currently the number of bits per pixel is used instead of the number of bytes per pixel when calculating image strides. This does not cause any real problems, but the gaps between scanlines are excessively large. This patch actually converts bits to bytes and rounds up the result to the nearest byte boundary. Signed-off-by:
Siarhei Siamashka <siarhei.siamashka@gmail.com> Reviewed-by:
<soren.sandmann@gmail.com>
-
- Jun 05, 2018
-
-
__builtin_shuffle was removed in clang 5.0. Build log says: test/utils-prng.c:207:27: error: use of unknown builtin '__builtin_shuffle' [-Wimplicit-function-declaration] randdata.vb = __builtin_shuffle (randdata.vb, bswap_shufflemask); ^ test/utils-prng.c:207:25: error: assigning to 'uint8x16' (vector of 16 'uint8_t' values) from incompatible type 'int' randdata.vb = __builtin_shuffle (randdata.vb, bswap_shufflemask); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 errors generated Link to original discussion: http://lists.llvm.org/pipermail/cfe-dev/2017-August/055140.html It's possible to build pixman if attached patch is applied. Basically patch adds check for __builtin_shuffle support and in case there is none, falls back to clang-specific __builtin_shufflevector that do the same but have different API. Bugzilla: https://bugs.gentoo.org/646360 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104886 Tested-by:
Philip Chimento <philip.chimento@gmail.com> Reviewed-by:
Matt Turner <mattst88@gmail.com> Reviewed-by:
Adam Jackson <ajax@redhat.com>
-
- Sep 02, 2016
-
-
Søren Sandmann authored
This new test tests a bunch of bilinear downscalings, where many have a transformation such that the BILINEAR filter can be reduced to NEAREST (and many don't). A CRC32 is computed for all the resulting images and compared to a known-good value for both 4-bit and 7-bit interpolation. V2: Remove leftover comment, some minor formatting fixes, use a timestamp as the PRNG seed. Signed-off-by:
Søren Sandmann <soren.sandmann@gmail.com> Reviewed-by:
Bill Spitzak <spitzak@gmail.com>
-
- Dec 30, 2015
-
-
Andrea Canciani authored
The `check` target in test/Makefile.win32 assumed that any non-0 exit code from the tests was an error, but the testsuite is currently using 77 as a SKIP exit code (based on the convention used in autotools). Fixes fence-image-self-test and cover-test (now reported as SKIP). Signed-off-by:
Andrea Canciani <ranma42@gmail.com> Acked-by:
Oded Gabbay <oded.gabbay@gmail.com>
-
- Dec 23, 2015
-
-
Andrea Canciani authored
Instead of explicitly depending on "pixman" for the "all" and "check" targets, rely on the dependency to the .lib file Signed-off-by:
Andrea Canciani <ranma42@gmail.com> Reviewed-by:
Oded Gabbay <oded.gabbay@gmail.com>
-
- Oct 16, 2015
-
-
On MacOS X, according to the manpage of mprotect(), "When a program violates the protections of a page, it gets a SIGBUS or SIGSEGV signal.", but fence-image-self-test was only accepting a SIGSEGV as notification of invalid access. Fixes fence-image-self-test Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
- Sep 25, 2015
-
-
Patch "Remove the 8e extra safety margin in COVER_CLIP analysis" reduced the required image area for setting the COVER flags in pixman.c:analyze_extent(). Do the same reduction in affine-bench. Leaving the old calculations in place would be very confusing for anyone reading the code. Also add a comment that explains how affine-bench wants to hit the COVER paths. This explains why the intricate extent calculations are copied from pixman.c. [Pekka: split patch, change comments, write commit message] Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Ben Avison <bavison@riscosopen.org>
-
- Sep 20, 2015
-
-
Some architectures, such as Microblaze and Nios2, currently do not implement FE_DIVBYZERO, even though they have <fenv.h> and feenableexcept(). This commit adds a configure.ac check to verify whether FE_DIVBYZERO is defined or not, and if not, disables the problematic code in test/utils.c. Signed-off-by:
Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by:
Marek Vasut <marex@denx.de> Acked-by:
Siarhei Siamashka <siarhei.siamashka@gmail.com> Signed-off-by:
Oded Gabbay <oded.gabbay@gmail.com>
-
- Sep 16, 2015
-
-
This test aims to verify both numerical correctness and the honouring of array bounds for scaled plots (both nearest-neighbour and bilinear) at or close to the boundary conditions for applicability of "cover" type fast paths and iter fetch routines. It has a secondary purpose: by setting the env var EXACT (to any value) it will only test plots that are exactly on the boundary condition. This makes it possible to ensure that "cover" routines are being used to the maximum, although this requires the use of a debugger or code instrumentation to verify. Changes in v4: Check the fence page size and skip the test if it is too large. Since we need to deal with pixman_fixed_t coordinates that go beyond the real image width, make the page size limit 16 kB. A 32 kB or larger page size would cause an a8 image width to be 32k or more, which is no longer representable in pixman_fixed_t. Use a shorthand variable 'filter' in test_cover(). Whitespace adjustments. Changes in v5: Skip if fenced memory is not supported. Do you know of any such platform? Signed-off-by:
Ben Avison <bavison@riscosopen.org> [Pekka: changes in v4 and v5] Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Ben Avison <bavison@riscosopen.org> Acked-by:
Oded Gabbay <oded.gabbay@gmail.com>
-
- Sep 09, 2015
-
-
Pekka Paalanen authored
Add a function to get the page size used for memory fence purposes, and use it everywhere where getpagesize() was used. This offers a single point in code to override the page size, in case one wants to experiment how the tests work with a higher page size than what the developer's machine has. This also offers a clean API, without adding #ifdefs, to tests for checking the page size. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Oded Gabbay <oded.gabbay@gmail.com> Reviewed-by:
Ben Avison <bavison@riscosopen.org>
-
Pekka Paalanen authored
Used a wrong variable name, causing: /home/pq/git/pixman/demos/../test/utils.c: In function ‘fence_image_create_bits’: /home/pq/git/pixman/demos/../test/utils.c:562:46: error: ‘width’ undeclared (first use in this function) Use the correct variable. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Oded Gabbay <oded.gabbay@gmail.com> Reviewed-by:
Ben Avison <bavison@riscosopen.org>
-
- Sep 03, 2015
-
-
Pekka Paalanen authored
Tests that fence_malloc and fence_image_create_bits actually work: that out-of-bounds and out-of-row (unused stride area) accesses trigger SIGSEGV. If fence_malloc is a dummy (FENCE_MALLOC_ACTIVE not defined), this test is skipped. Changes in v2: - check FENCE_MALLOC_ACTIVE value, not whether it is defined - test that reading bytes near the fence pages does not cause a segmentation fault Changes in v3: - Do not print progress messages unless VERBOSE environment variable is set. Avoid spamming the terminal output of 'make check' on some versions of autotools. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Ben Avison <bavison@riscosopen.org>
-
- Sep 01, 2015
-
-
Pekka Paalanen authored
Useful for detecting out-of-bounds accesses in composite operations. This will be used by follow-up patches adding new tests. Changes in v2: - fix style on fence_image_create_bits args - add page to stride only if stride_fence - add comment on the fallback definition about freeing storage Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Ben Avison <bavison@riscosopen.org>
-
Pekka Paalanen authored
Define a new token to simplify checking whether fence_malloc() actually can catch out-of-bounds access. This will be used in the future to skip tests that rely on fence_malloc checking functionality. Changes in v2: - #define FENCE_MALLOC_ACTIVE always, but change its value to help catch use of it without including utils.h Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Ben Avison <bavison@riscosopen.org>
-
- Aug 28, 2015
-
-
Add mask details to the output. [Pekka: redo whitespace and print src,dst,mask x and y.] Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Ben Avison <bavison@riscosopen.org>
-
- Aug 18, 2015
-
-
Pekka Paalanen authored
If a user gives multiple patterns or extra arguments, only the last one was used as the pattern while the former were just ignored. This is a user error silently converted to something possibly unexpected. In presence of extra arguments, complain and quit. Cc: Ben Avison <bavison@riscosopen.org> Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
- Jul 06, 2015
-
-
Pekka Paalanen authored
The memcpy speed measurement takes several seconds. When you are running single tests in a harness that iterates dozens or hundreds of times, the repeated measurements are redundant and take a lot of time. It is also an open question whether the measured speed changes over long test runs due to unidentified platform reasons (Raspberry Pi). Add a command line option to set the reference memcpy speed, skipping the measuring. The speed is mainly used to compute how many iterations do run inside the bench_*() functions, so for repeated testing on the same hardware, it makes sense to lock that number to a constant. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Ben Avison <bavison@riscosopen.org>
-
Pekka Paalanen authored
Add a command line option for choosing CSV output mode. In CSV mode, only the results in Mpixels/s are printed in an easily machine-parseable format. All user-friendly printing is suppressed. This is intended for cases where you benchmark one particular operation at a time. Running the "all" set of benchmarks will print just fine, but you may have trouble matching rows to operations as you have to look at the tests_tbl[] to see what row is which. Reviewed-by:
Ben Avison <bavison@riscosopen.org> v2: don't add a space after comma in CSV. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Pekka Paalanen authored
Refactor the Mpixels/s computations into a function. Easier to read and better documents what is being computed. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Ben Avison <bavison@riscosopen.org>
-
Pekka Paalanen authored
The bench_* functions, that did not already do it, are modified to return the number of pixels processed during the benchmark. This moves the computation to the site that actually determines the number, and simplifies bench_composite() a bit. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Ben Avison <bavison@riscosopen.org>
-
Pekka Paalanen authored
Move the printing of the memory speed and scaling mode into a new function. This will help with implementing a machine-readable output option. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Ben Avison <bavison@riscosopen.org>
-
Pekka Paalanen authored
When given just a single test pattern instead of "all", print the test details. This can be used to verify the pattern parser agrees with the user, just like scaling settings are printed. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Ben Avison <bavison@riscosopen.org>
-
Pekka Paalanen authored
We assign string literals to it, so it better be const. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Ben Avison <bavison@riscosopen.org>
-