Skip to content
Snippets Groups Projects
  1. Nov 03, 2022
  2. Oct 27, 2022
    • Matt Turner's avatar
      Revert "Fix signed-unsigned semantics in reduce_32" · c3bbb94b
      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
      c3bbb94b
  3. Sep 17, 2021
    • Nirbheek Chauhan's avatar
      tests: Fix undefined symbol build error on macOS · bd4e7a9b
      Nirbheek Chauhan authored and Simon Ser's avatar Simon Ser committed
      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
      bd4e7a9b
  4. Jul 21, 2021
  5. Mar 20, 2020
  6. Dec 19, 2019
  7. Nov 18, 2019
    • Chun-wei Fan's avatar
      thread-test.c: Use Windows Threading API on Windows · 7331d2b4
      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.
      7331d2b4
    • Chun-wei Fan's avatar
      test/solid-test.c: Include stdint.h · 3bceb3a9
      Chun-wei Fan authored
      We need that to make sure we have UINT16_MAX.
      3bceb3a9
    • Chun-wei Fan's avatar
      build: Don't assume PThreads if threading support is found · 7661b1fa
      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()
      7661b1fa
  8. Nov 01, 2019
  9. Oct 15, 2019
  10. May 25, 2019
    • Basile Clement's avatar
      Ordered dithering with blue noise, v2 · cb2ec426
      Basile Clement authored and Bryce Harrington's avatar Bryce Harrington committed
      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
      cb2ec426
    • Basile Clement's avatar
      test: Check the dithering path in tolerance-test · 37d2e681
      Basile Clement authored and Bryce Harrington's avatar Bryce Harrington committed
      This adds support for testing dithered destinations in tolerance-test.
      When dithering is enabled, the pixel checker allows for an additional
      quantization error.
      37d2e681
  11. Jan 16, 2019
  12. Nov 29, 2018
    • Dylan Baker's avatar
      meson: Add a meson build system · 199a3bd2
      Dylan Baker authored and Adam Jackson's avatar Adam Jackson committed
      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.
      199a3bd2
  13. Nov 06, 2018
  14. Jul 06, 2018
  15. Jun 05, 2018
  16. Sep 02, 2016
  17. Dec 30, 2015
  18. Dec 23, 2015
  19. Oct 16, 2015
  20. Sep 25, 2015
    • Ben Avison's avatar
      affine-bench: remove 8e margin from COVER area · 2876d8d3
      Ben Avison authored and Pekka Paalanen's avatar Pekka Paalanen committed
      
      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: default avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
      Reviewed-by: default avatarBen Avison <bavison@riscosopen.org>
      2876d8d3
  21. Sep 20, 2015
  22. Sep 16, 2015
    • Ben Avison's avatar
      test: Add cover-test v5 · 4c71f595
      Ben Avison authored and Pekka Paalanen's avatar Pekka Paalanen committed
      
      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: default avatarBen Avison <bavison@riscosopen.org>
      [Pekka: changes in v4 and v5]
      Signed-off-by: default avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
      Reviewed-by: default avatarBen Avison <bavison@riscosopen.org>
      Acked-by: default avatarOded Gabbay <oded.gabbay@gmail.com>
      4c71f595
  23. Sep 09, 2015
  24. Sep 03, 2015
    • Pekka Paalanen's avatar
      test: add fence-image-self-test · 07006853
      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: default avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
      Reviewed-by: default avatarBen Avison <bavison@riscosopen.org>
      07006853
  25. Sep 01, 2015
  26. Aug 28, 2015
  27. Aug 18, 2015
  28. Jul 06, 2015
Loading