Skip to content
Snippets Groups Projects
  1. Apr 07, 2019
  2. Mar 27, 2019
  3. Feb 11, 2019
  4. Jan 16, 2019
  5. Dec 07, 2018
  6. Nov 29, 2018
    • Dylan Baker's avatar
      gitlab-ci: Add meson build to pipeline test · eb0dfaa0
      Dylan Baker authored and Adam Jackson's avatar Adam Jackson committed
      eb0dfaa0
    • 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
    • Dylan Baker's avatar
      Add .editorconfig file · 761f36c3
      Dylan Baker authored and Adam Jackson's avatar Adam Jackson committed
      This sets the style for meson (which uses the upstream style, 2 space
      indent with no tabs), and sets the tab_width to 8 per the CODING_STYLE
      document.
      761f36c3
  7. Nov 21, 2018
  8. Nov 06, 2018
    • Maarten Lankhorst's avatar
      pixman: Add tests for (a)rgb floating point formats. · 489fa0df
      Maarten Lankhorst authored
      
      Add some basic tests to ensure that the newly added formats work as
      intended.
      
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      489fa0df
    • Maarten Lankhorst's avatar
      pixman: Add support for argb/xrgb float formats, v5. · a4b8a26d
      Maarten Lankhorst authored
      
      Pixman is already using the floating point formats internally, expose
      this capability in case someone wants to support higher bit per
      component formats.
      
      This is useful for igt which depends on cairo to do the rendering.
      It can use it to convert floats internally to planar Y'CbCr formats,
      or to F16.
      
      We add a new type PIXMAN_TYPE_RGBA_FLOAT for this format, which is an
      all float array of R, G, B, and A. Formats that use mixed float/int
      RGBA aren't supported, and will probably need their own type.
      
      Changes since v1:
      - Use RGBA 128 bits and RGB 96 bits memory layouts, to better match the opengl format.
      Changes since v2:
      - Add asserts in accessor and for strides to force alignment.
      - Move test changes to their own commit.
      Changes since v3:
      - Define 32bpc as PIXMAN_FORMAT_PACKED_C32
      - Rename pixman accessors from rgb*_float_float to rgb*f_float
      Changes since v4:
      - Create a new PIXMAN_FORMAT_BYTE for fitting up to 64 bits per component.
        (based on Siarhei Siamashka's suggestion)
      - Use new format type PIXMAN_TYPE_RGBA_FLOAT
      
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> #v4
      [mlankhorst: Fix missing braces in PIXMAN_FORMAT_RESHIFT macro]
      a4b8a26d
  9. Jul 06, 2018
  10. Jun 05, 2018
  11. May 14, 2018
  12. Jan 09, 2018
  13. Sep 03, 2016
  14. Sep 02, 2016
    • Søren Sandmann's avatar
      pixman-filter: Speed up BOX/BOX filter · 3b46fce6
      Søren Sandmann authored
      The convolution of two BOX filters is simply the length of the
      interval where both are non-zero, so we can simply return width from
      the integral() function because the integration region has already
      been restricted to be such that both functions are non-zero on it.
      
      This is both faster and more accurate than doing numerical integration.
      
      This patch is based on one by Bill Spitzak
      
          https://lists.freedesktop.org/archives/pixman/2016-March/004446.html
      
      
      
      with these changes:
      
      - Rebased to not assume any changes in the arguments to integral().
      
      - Dropped the multiplication by scale
      
      - Added more details in the commit message.
      
      Signed-off-by: default avatarSøren Sandmann <soren.sandmann@gmail.com>
      Reviewed-by: default avatarBill Spitzak <spitzak@gmail.com>
      3b46fce6
    • Bill Spitzak's avatar
      pixman-filter: integral splitting is only needed for triangle filter · 8855b3a2
      Bill Spitzak authored and Søren Sandmann's avatar Søren Sandmann committed
      
      Only the triangle is discontinuous at 0. The other filters resemble a
      cubic closely enough that Simpsons integration works without
      splitting.
      
      Changes by Søren: Rebase without the changes to the integral function,
      update comment to match the new code.
      
      Signed-off-by: default avatarBill Spitzak <spitzak@gmail.com>
      Signed-off-by: default avatarSøren Sandmann <soren.sandmann@gmail.com>
      Reviewed-by: default avatarSøren Sandmann <soren.sandmann@gmail.com>
      8855b3a2
    • Bill Spitzak's avatar
      pixman-filter: Correct Simpsons integration · 6ae281fb
      Bill Spitzak authored and Søren Sandmann's avatar Søren Sandmann committed
      
      Simpsons uses cubic curve fitting, with 3 samples defining each
      cubic. This makes the weights of the samples be in a pattern of
      1,4,2,4,2...4,1, and then dividing the result by 3.
      
      The previous code was using weights of 1,2,0,6,0,6...,2,1.
      
      With this fix the integration is accurate enough that the number of
      samples could be reduced a lot. Multiples of 12 seem to work best.
      
      v7: Merged with patch to reduce from 128 samples to 16
      v9: Changed samples from 16 to 12
      v10: Fixed rebase error that made it not compile
      v11: minor whitespace change
      v14: more whitespace changes
      
      Signed-off-by: default avatarBill Spitzak <spitzak@gmail.com>
      Reviewed-by: default avatarOded Gabbay <oded.gabbay@gmail.com>
      Reviewed-by: default avatarSøren Sandmann <soren.sandmann@gmail.com>
      6ae281fb
    • Bill Spitzak's avatar
      pixman-filter: reduce amount of malloc/free/memcpy to generate filter · 6acaf2bc
      Bill Spitzak authored and Søren Sandmann's avatar Søren Sandmann committed
      
      Rearranged so that the entire block of memory for the filter pair
      is allocated first, and then filled in. Previous version allocated
      and freed two temporary buffers for each filter and did an extra
      memcpy.
      
      v8: small refactor to remove the filter_width function
      
      v10: Restored filter_width function but with arguments changed to
           match later patches
      
      v11: Removed unused arg and pointer from filter_width function
           Whitespace fixes.
      
      Signed-off-by: default avatarBill Spitzak <spitzak@gmail.com>
      Reviewed-by: default avatarOded Gabbay <oded.gabbay@gmail.com>
      Acked-by: default avatarSøren Sandmann <soren.sandmann@gmail.com>
      6acaf2bc
    • Bill Spitzak's avatar
      pixman-image: Added enable-gnuplot config to view filters in gnuplot · d0e6c9f4
      Bill Spitzak authored and Søren Sandmann's avatar Søren Sandmann committed
      
      If enable-gnuplot is configured, then you can pipe the output of a
      pixman-using program to gnuplot and get a continuously-updated plot of
      the horizontal filter. This works well with demos/scale to test the
      filter generation.
      
      The plot is all the different subposition filters shuffled
      together. This is misleading in a few cases:
      
        IMPULSE.BOX - goes up and down as the subfilters have different
                      numbers of non-zero samples
      
        IMPULSE.TRIANGLE - somewhat crooked for the same reason
      
        1-wide filters - looks triangular, but a 1-wide box would be more
                         accurate
      
      Changes by Søren: Rewrote the pixman-filter.c part to
           - make it generate correct coordinates
           - add a comment on how coordinates are generated
           - in rounding.txt, add a ceil() variant of the first-sample
             formula
           - make the gnuplot output slightly prettier
      
      v7: First time this ability was included
      
      v8: Use config option
          Moved code to the filter generator
          Modified scale demo to not call filter generator a second time.
      
      v10: Only print if successful generation of plots
           Use #ifdef, not #if
      
      v11: small whitespace fixes
      v12: output range from -width/2 to width/2 and include y==0, to avoid misleading plots
           for subsample_bits==0 and for box filters which may have no small values.
      
      Signed-off-by: default avatarBill Spitzak <spitzak@gmail.com>
      d0e6c9f4
Loading