[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[Git][xorg-team/lib/pixman][debian-unstable] 95 commits: implement r8g8b8 sRGB (without alpha)



Title: GitLab

Timo Aaltonen pushed to branch debian-unstable at X Strike Force / lib / pixman

Commits:

  • 83ba0244
    by Claude Heiland-Allen at 2022-11-03T12:51:47+00:00
    implement r8g8b8 sRGB (without alpha)
    
    Signed-off-by: Claude Heiland-Allen <claude@mathr.co.uk>
    
  • 40d6c9b2
    by Claude Heiland-Allen at 2022-11-03T12:51:47+00:00
    add r8g8b8 sRGB to test suite
    
    Signed-off-by: Claude Heiland-Allen <claude@mathr.co.uk>
    
  • 618e3d42
    by Matt Turner at 2022-11-03T09:53:12-04:00
    Post-release version bump to 0.42.3
    
  • 713077d0
    by Heiko Lewin at 2022-11-03T19:13:41+00:00
    Fix signed-unsigned semantics in reduce_32
    
  • eb998d7b
    by Emanuel Schmidt at 2023-02-08T20:56:05+01:00
    Separate meson build options for demos and tests
    
  • ee145e53
    by Emanuel Schmidt at 2023-02-14T22:20:12+01:00
    Changed name of the config-header to "pixman-config.h"
    
  • e4c878d1
    by Emanuel Schmidt at 2023-02-17T18:52:14+01:00
    Fixed missing dependency in libdemo
    
    After the latest changes and separation of demo- and test-targets,
    it was visible that a dependency towards `libtestutils_dep` was
    missing in one of the demo-dependencies. This change will fix
    this particular problem.
    
  • 48d5df1f
    by Benjamin Gilbert at 2023-07-08T17:36:00-04:00
    meson: don't dllexport when built as static library
    
    If a static Pixman is linked with a dynamic library, Pixman shouldn't
    export its own symbols into the latter's ABI.
    
  • 672f67db
    by Simon Ser at 2023-07-09T01:48:29+00:00
    Add pixman_region{,32}_empty()
    
    Inverse of pixman_region32_not_empty().
    
    Most of the time, callers want to check whether a region is empty,
    not whether a region is not empty. This results in code with
    double-negatives such as !pixman_region32_not_empty(), which is
    confusing to read.
    
    Signed-off-by: Simon Ser <contact@emersion.fr>
    
  • 55845c3d
    by Simon Ser at 2023-07-09T01:53:48+00:00
    Constify pixman_image_set_clip_region()
    
    This function copies the region passed in.
    
    Signed-off-by: Simon Ser <contact@emersion.fr>
    
  • 47d3fbe3
    by Benjamin Gilbert at 2023-07-09T01:56:40+00:00
    mmx: use xmmintrin.h if building with SSE2
    
    As of mingw-w64 commit 463f00975, winnt.h includes emmintrin.h when
    compiling with SSE2, causing redefinition errors for our copied MMX
    intrinsics.  If the build is assuming SSE2 anyway, just use the system
    header instead.
    
  • 67490a8b
    by Heiko Lewin at 2023-07-18T07:20:01+02:00
    pixman-arma64: Adjustments to build with llvm integrated assembler
    
    This enables building the aarch64 assembly with clang.
    Changes:
    1. Use `.func` or `.endfunc` only if available
    2. Prefix macro arg names with `\` 
    3. Use `\()` instead of `&`
    4. Always use commas to separate macro arguments
    5. Prefix asm symbols with an undderscore if necessary
    
  • 593a9702
    by Matt Turner at 2023-07-19T15:08:22-04:00
    test: Revert to including pixman-private.h
    
    This broke the Visual Studio builds in GTK's CI system.
    
  • 55eb680a
    by Dylan Baker at 2023-08-30T10:51:27-04:00
    autotools: remove autotools
    
    At this point meson is pretty well tested and seems to pretty much work,
    so we can consider dropping an extra build system.
    
    This doesn't solve the problem that pixman's release scripts are part of
    the autotools build system (as make targets). One solution might be to
    use xorg's release.sh instead.
    
  • 72c4245b
    by Dylan Baker at 2023-08-30T10:54:46-04:00
    delete win32 make files
    
    meson can handle building for win32 (including using visual studio, and
    mingw), and does a good deal more than these could. Since we're dropping
    autotools, we might as well drop these too.
    
  • 2cf9ae1c
    by Gauthier Östervall at 2023-08-30T11:12:41-04:00
    Update build instructions to meson and ninja
    
  • f1072b07
    by Matt Turner at 2023-08-30T11:14:04-04:00
    Remove generic build system information
    
  • 7169c040
    by Matt Turner at 2023-08-30T11:15:00-04:00
    Use more Markdown-friendly syntax
    
  • 7aeeb501
    by Simon Ser at 2023-08-30T15:49:50+00:00
    Fix const warnings in pixman_image_set_clip_region()
    
    Fixes the following warnings:
    
        pixman-image.c: In function 'pixman_image_set_clip_region':
        pixman-image.c:601:81: warning: passing argument 2 of 'pixman_region32_copy_from_region16' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
          601 |         if ((result = pixman_region32_copy_from_region16 (&common->clip_region, region)))
              |                                                                                 ^~~~~~
        In file included from pixman-image.c:32:
        pixman-private.h:859:56: note: expected 'pixman_region16_t *' {aka 'struct pixman_region16 *'} but argument is of type 'const pixman_region16_t *' {aka 'const struct pixman_region16 *'}
          859 |                                     pixman_region16_t *src);
              |                                     ~~~~~~~~~~~~~~~~~~~^~~
        pixman-utils.c:240:1: error: conflicting types for 'pixman_region16_copy_from_region32'; have 'pixman_bool_t(pixman_region16_t *, pixman_region32_t *)' {aka 'int(struct pixman_region16 *, struct pixman_region32 *)'}
          240 | pixman_region16_copy_from_region32 (pixman_region16_t *dst,
              | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        In file included from pixman-utils.c:31:
        pixman-private.h:862:1: note: previous declaration of 'pixman_region16_copy_from_region32' with type 'pixman_bool_t(pixman_region16_t *, const pixman_region32_t *)' {aka 'int(struct pixman_region16 *, const struct pixman_region32 *)'}
          862 | pixman_region16_copy_from_region32 (pixman_region16_t *dst,
              | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        pixman-utils.c:270:1: error: conflicting types for 'pixman_region32_copy_from_region16'; have 'pixman_bool_t(pixman_region32_t *, pixman_region16_t *)' {aka 'int(struct pixman_region32 *, struct pixman_region16 *)'}
          270 | pixman_region32_copy_from_region16 (pixman_region32_t *dst,
              | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        In file included from pixman-utils.c:31:
        pixman-private.h:858:1: note: previous declaration of 'pixman_region32_copy_from_region16' with type 'pixman_bool_t(pixman_region32_t *, const pixman_region16_t *)' {aka 'int(struct pixman_region32 *, const struct pixman_region16 *)'}
          858 | pixman_region32_copy_from_region16 (pixman_region32_t *dst,
              | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    Signed-off-by: Simon Ser <contact@emersion.fr>
    
  • 753f5e09
    by Matt Turner at 2023-08-30T11:58:04-04:00
    meson: Fix syntax
    
  • 634b8196
    by Havard Eidnes at 2023-08-30T12:14:26-04:00
    vmx: Simplify scaled_nearest_scanline_vmx_8888_8888_OVER
    
    Since combine4() does not take vector variables as arguments, there's no
    need to use a vector variable and casts back and forth to normal scalars
    for the arguments.
    
  • 47a1c3d3
    by Havard Eidnes at 2023-08-30T12:14:40-04:00
    vmx: Reimplement create_mask_32_128 and use it in vmx_fill
    
    Based on suggestion from @siamashka.
    
    This lets the compiler pick the vector instruction to use which is
    usually the best idea.
    
    Use create_mask_32_128() instead of create_mask_1x32_128() in
    vmx_fill(), avoiding loading memory beyond the filler argument on the
    stack.
    
    Remove the now-unused create_mask_1x32_128(). This gets rid of some
    (correct) warnings from the compiler about indexing beyond the variable
    in question.
    
  • 08115a42
    by Sam James at 2023-11-07T22:31:05+00:00
    pixman-bits-image: fix -Walloc-size
    
    GCC 14 introduces a new -Walloc-size included in -Wextra which gives (when forced
    to be an error):
    ```
    ../pixman/pixman-bits-image.c: In function ‘create_bits’:
    ../pixman/pixman-bits-image.c:1273:16: error: allocation of insufficient size ‘1’ for type ‘uint32_t’ {aka ‘unsigned int’} with size ‘4’ [-Werror=alloc-size]
     1273 |         return calloc (buf_size, 1);
          |                ^~~~~~~~~~~~~~~~~~~~
    ```
    
    The calloc prototype is:
    ```
    void *calloc(size_t nmemb, size_t size);
    ```
    
    So, just swap the number of members and size arguments to match the prototype, as
    we're initialising 1 element of size `buf_size`. GCC then sees we're not
    doing anything wrong.
    
    Signed-off-by: Sam James <sam@gentoo.org>
    
  • b4b789df
    by Benjamin Gilbert at 2023-11-08T18:43:10+00:00
    meson: avoid linking with -pthread if we don't have pthreads
    
    Meson always returns -pthread in dependency('threads') on non-MSVC
    compilers.  Fix a link error when building on MinGW without winpthreads.
    
  • 86f91623
    by Pavel Labath at 2023-12-15T13:10:52+01:00
    Fix alignment problem in pixman-fast-path.c
    
    The variable is accessed through uint32_t pointer, so it needs to be
    aligned to avoid undefined behavior (crashes on architectures which
    require aligned accesses).
    
    Closes: https://gitlab.freedesktop.org/pixman/pixman/-/issues/84
    
  • 7883ab8d
    by Simon Ser at 2023-12-15T13:21:09+01:00
    ci: upgrade to Fedora 39
    
    Fedora 28 is super old.
    
    Signed-off-by: Simon Ser <contact@emersion.fr>
    
  • 20cc4ee0
    by Matt Turner at 2024-01-03T21:24:46-05:00
    pixman-sse2: Remove unused functions
    
  • af101d3c
    by Matt Turner at 2024-01-03T21:24:46-05:00
    pixman-mmx: Don't redefine _MM_SHUFFLE
    
  • 7e76c962
    by Matt Turner at 2024-01-03T21:24:46-05:00
    pixman-access: Mark __dummy__ variables with MAYBE_UNUSED
    
  • 396e1a76
    by Matt Turner at 2024-01-03T21:40:12-05:00
    test: Use fabsl on float128
    
  • 6c2e4a0d
    by Simon Ser at 2024-01-04T11:01:05+01:00
    Pre-release version bump to 0.43.0
    
    Signed-off-by: Simon Ser <contact@emersion.fr>
    
  • 8e4be8c2
    by Simon Ser at 2024-01-04T11:48:38+01:00
    Post-release version bump to 0.43.1
    
    Signed-off-by: Simon Ser <contact@emersion.fr>
    
  • 8c39ce24
    by Simon Ser at 2024-01-27T13:15:28+01:00
    Drop automatic DEBUG define
    
    We don't use the historical odd stable release numbering scheme
    anymore.
    
    Developers can still enable this debugging code via CFLAGS=-DDEBUG.
    
    Signed-off-by: Simon Ser <contact@emersion.fr>
    Closes: https://gitlab.freedesktop.org/pixman/pixman/-/issues/87
    
  • 43773c69
    by Simon Ser at 2024-01-28T12:22:00+00:00
    Drop ChangeLog
    
    This file is empty and unused.
    
    Signed-off-by: Simon Ser <contact@emersion.fr>
    
  • e8bb34e3
    by Simon Ser at 2024-01-28T12:23:29+00:00
    Drop contrib/ci.sh
    
    This is unused and outdated (Autotools is no longer supported).
    
    Signed-off-by: Simon Ser <contact@emersion.fr>
    
  • 91b8526c
    by Simon Ser at 2024-01-28T13:26:31+01:00
    Pre-release version bump to 0.43.2
    
  • fdd71610
    by Simon Ser at 2024-01-28T13:32:42+01:00
    Post-release version bump to 0.43.3
    
  • ac485a9b
    by Gayathri Berli at 2024-02-24T12:28:30-05:00
    Revert the changes to fix the problem in big-endian architectures
    
    This reverts commit b4a105d77232a87304b7b621e2f99e699a8eebd3.
    
    There is an endianness issue in pixman-fast-path.c. In the function
    bits_image_fetch_separable_convolution_affine we have this code:
    
    #ifdef WORDS_BIGENDIAN
    	buffer[k] = (satot << 0) | (srtot << 8) | (sgtot << 16) | (sbtot << 24);
    #else
    	buffer[k] = (satot << 24) | (srtot << 16) | (sgtot << 8) | (sbtot << 0);
    #endif
    
    This will write out the pixels as BGRA on big endian systems but
    obviously that's wrong. Pixel order should be ARGB on big endian systems
    so we don't need any #ifdef for big endian here at all. Instead, the
    code should be the same on little and big endian, i.e. it should be just
    this line instead of the 5 lines above:
    
    	buffer[k] = (satot << 24) | (srtot << 16) | (sgtot << 8) | (sbtot << 0);
    
    Changing the code like this fixes the wrong colors that I get with
    pixman on my PowerPC/s390x system.
    
    Here is what cairo.h has to say (which is rooted in pixman):
    
     * @CAIRO_FORMAT_ARGB32: each pixel is a 32-bit quantity, with
     *   alpha in the upper 8 bits, then red, then green, then blue.
     *   The 32-bit quantities are stored native-endian. Pre-multiplied
     *   alpha is used. (That is, 50% transparent red is 0x80800000,
     *   not 0x80ff0000.) (Since 1.0)
    
    Closes: https://gitlab.freedesktop.org/pixman/pixman/-/issues/78
    Signed-off-by: Gayathri Berli <gayathri.berli@ibm.com>
    
  • 8c6d59a9
    by Matt Turner at 2024-02-24T12:36:53-05:00
    pixman-x86: Use cpuid.h header
    
  • 63332b4e
    by Matt Turner at 2024-02-25T17:28:14-05:00
    pixman-x86: Move #include "cpuid.h" inside conditionals
    
    Closes: https://gitlab.freedesktop.org/pixman/pixman/-/issues/93
    Closes: https://gitlab.freedesktop.org/pixman/pixman/-/issues/94
    
  • 74130e84
    by Heiko Lewin at 2024-02-29T14:46:55+00:00
    Allow to build pixman on clang/arm32
    
  • 033716e9
    by Matt Turner at 2024-02-29T15:41:37+00:00
    Revert "Allow to build pixman on clang/arm32"
    
    This reverts merge request !78
  • 63ae6af9
    by Makoto Kato at 2024-02-29T10:47:00-05:00
    pixman-arm: Fix build on clang/arm32
    
    Closes: https://gitlab.freedesktop.org/pixman/pixman/-/issues/74
    
  • add7c8db
    by Matt Turner at 2024-02-29T10:47:07-05:00
    pixman-arm: Use unified syntax
    
    Allows us to use the same assembly without a bunch of #ifdef __clang__.
    
  • 54cad716
    by Matt Turner at 2024-02-29T11:13:20-05:00
    Pre-release version bump to 0.43.4
    
  • b252d407
    by Matt Turner at 2024-02-29T11:19:46-05:00
    Post-release version bump to 0.43.5
    
  • 865e6ce0
    by Mike Hommey at 2024-07-12T15:55:33-04:00
    pixman: Adjust arm assembly for binutils change
    
    A change in the latest version of binutils broke building pixman for arm.
    
    The binutils change:
    https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=226749d5a6ff0d5c607d6428d6c81e1e7e7a994b
    
    Closes: https://gitlab.freedesktop.org/pixman/pixman/-/issues/96
    
  • 3a325068
    by Bill Roberts at 2024-07-22T16:57:13-05:00
    arm: add include guards on header
    
    Prevent double inclusion of header file.
    
    Signed-off-by: Bill Roberts <bill.roberts@arm.com>
    
  • 7ed0f8d0
    by Bill Roberts at 2024-07-22T16:57:13-05:00
    aarch64: support PAC and BTI
    
    Enable Pointer Authentication Codes (PAC) and Branch Target
    Identification (BTI) support for ARM 64 targets.
    
    PAC works by signing the LR with either an A key or B key and verifying
    the return address. There are quite a few instructions capable of doing
    this, however, the Linux ARM ABI is to use hint compatible instructions
    that can be safely NOP'd on older hardware and can be assembled and
    linked with older binutils. This limits the instruction set to paciasp,
    pacibsp, autiasp and autibsp. Instructions prefixed with pac are for
    signing and instructions prefixed with aut are for signing. Both
    instructions are then followed with an a or b to indicate which signing
    key they are using. The keys can be controlled using
    -mbranch-protection=pac-ret for the A key and
    -mbranch-protection=pac-ret+b-key for the B key.
    
    BTI works by marking all call and jump positions with bti c and bti
    j instructions. If execution control transfers to an instruction other
    than a BTI instruction, the execution is killed via SIGILL. Note that
    to remove one instruction, the aforementioned pac instructions will
    also work as a BTI landing pad for bti c usages.
    
    For BTI to work, all object files linked for a unit of execution,
    whether an executable or a library must have the GNU Notes section of
    the ELF file marked to indicate BTI support. This is so loader/linkers
    can apply the proper permission bits (PROT_BRI) on the memory region.
    
    PAC can also be annotated in the GNU ELF notes section, but it's not
    required for enablement, as interleaved PAC and non-pac code works as
    expected since it's the callee that performs all the checking. The
    linker follows the same rules as BTI for discarding the PAC flag from
    the GNU Notes section.
    
    Testing was done under the following CFLAGS and CXXFLAGS for all
    combinations:
    1. -mbranch-protection=none
    2. -mbranch-protection=standard
    3. -mbranch-protection=pac-ret
    4. -mbranch-protection=pac-ret+b-key
    5. -mbranch-protection=bti
    
    Signed-off-by: Bill Roberts <bill.roberts@arm.com>
    
  • e5f8efc4
    by Peter Hutterer at 2024-08-07T09:59:34+10:00
    ci: add workflow rules to allow for MR pipelines
    
    See
    https://gitlab.freedesktop.org/freedesktop/freedesktop/-/wikis/GitLab-CI#for-project-developers
    
  • 2e29b7c4
    by Matt Turner at 2024-08-13T13:51:36-04:00
    iwmmxt: Drop support
    
    In all likelyhood unused for at least many years, and possibly ever.
    
    Support is deprecated and will be removed in gcc-15. See deprecation
    notice in https://gcc.gnu.org/gcc-13/changes.html
    
    Closes: https://gitlab.freedesktop.org/pixman/pixman/-/issues/98
    
  • 5b8e9281
    by Marco Trevisan at 2024-08-14T02:41:08+00:00
    pixman-region: Make translate a no-op when using 0 offsets
    
    This avoids callers to have to optimize this codepath, in case this scenario happens.
    And definitely it may happen when the function is not explicitly called.
  • 6410ec79
    by Even Rouault at 2024-08-14T02:48:25+00:00
    pixman-combine-float.c: fix typo in MAKE_NON_SEPARABLE_PDF_COMBINERS()
    
    There's a copy&paste typo updating sc.g twice when there's a mask
  • b753a6f4
    by Marek Pikuła at 2024-08-14T14:13:07+02:00
    mips: Fix a typo in mips_dspr2_flags
    
    Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
    
  • a7263190
    by Marek Pikuła at 2024-08-16T20:03:19+02:00
    ci: Add multiarch Docker image build
    
    The image is used in CI pipeline to build and test on different
    architectures.
    
    This commit introduces more extensible GitLab CI scheme borrowed from
    qemu project.
    
    Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
    
  • 15af6fd0
    by Marek Pikuła at 2024-08-16T20:03:28+02:00
    mips: Widen CPU family check for DSPr2
    
    DSPr2 can be available for targets other than mips32. Some distros
    (e.g., Debian) don't support mips32 but still support mipsel. Extending
    the check enables use of such images for testing.
    
    Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
    
  • 2d35a876
    by Marek Pikuła at 2024-08-16T20:03:29+02:00
    mips: Add option to force MIPS CPU feature discovery
    
    Used to force feature discovery in CI where /proc/cpuinfo is unreliable.
    It can happen, e.g., if executed in qemu-user-static mode.
    
    For such a build, MIPS-specific features need to be manually disabled by
    using `PIXMAN_DISABLE` env variable.
    
    Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
    
  • e7ef051a
    by Marek Pikuła at 2024-08-16T20:04:49+02:00
    ci: Build and test on the supported platforms
    
    This commit introduces a build and test CI workflow, which tests the
    correctness of execution for nearly all configurations supported by
    pixman. The notable exception is ARM iWMMXt, which is omitted as it's
    soon to be deprecated as mentioned in #98.
    
    The build and test stage is separated, as a single build can be used to
    test multiple configurations for a given platform (e.g., MMX, SSE2,
    SSSE3 for x86).
    
    Execution is performed using multi-arch Docker images built in the
    `docker` stage. The important thing to note is that the runner needs to
    have a relatively recent version of Docker and QEMU, and needs to have
    the qemu-user-static+binfmt execution enabled.
    
    Once all tests are complete, coverage reports are merged together in the
    `summary` stage. Then the result can be used in a GitLab-native coverage
    report summary.
    
    Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
    
  • c35e47bd
    by Marek Pikuła at 2024-08-16T20:10:21+02:00
    ci: Increase granularity of Docker build selection
    
    Now, it's possible to selectively disable Docker image builds. Before,
    it was only possible to disable build/test jobs for a given
    architecture.
    
  • cbf9d7e0
    by Marek Pikuła at 2024-08-16T20:15:30+02:00
    ci: Add architecture coverage Docker images
    
    Add images providing an environment for architecture coverage tests.
    There is a separate build for Linux and Windows, as the Windows image is
    really large compared to Linux one. It decreases the execution time of
    both targets, as the images needed to be pulled by runners are smaller.
    
    Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
    
  • 4047a553
    by Marek Pikuła at 2024-08-20T18:05:44+02:00
    ci: Add platform coverage targets
    
    Platform coverage checks if the code builds and executes properly for
    architectures that are not officially supported by Debian. They don't
    contribute to general code coverage report but provide a valuable
    insight if all supported platforms are working correctly.
    
    Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
    
  • 0cb4fbe3
    by Marek Pikuła at 2024-08-21T18:46:07+02:00
    ci: Fix Docker change detection
    
    There was a missing wildcard for Docker directory
    change detection, so basically this rule was not
    checked correctly.
    
    Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
    
  • 726d77f6
    by Julia DeMille at 2024-09-03T00:35:47+00:00
    mmx: Fix compilation with clang-cl
    
  • 05b5ecd9
    by Marek Pikuła at 2024-09-03T18:20:56+02:00
    ci: Use env files instead of awk script
    
    It makes per-targe environment declaration more extensible, as it's
    possible now to set custom env variables only for the selected target
    for the entire pipeline workflow in a centralized way.
    
    Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
    
  • 028213b5
    by Marek Pikuła at 2024-09-03T18:20:57+02:00
    ci: Unify target enable flag
    
    It replaces CODE- and PLT- specific target enable variables. It is a
    ground work for unification of codecov and pltcov flows.
    
    Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
    
  • 19b1a98e
    by Marek Pikuła at 2024-09-03T18:20:58+02:00
    ci: Unify Docker image as multi-stage build
    
    This commit merges codecov and pltcov Dockerfiles into a single,
    multi-stage Dockerfile. This results in more streamlined Docker image
    builds with some common layers which can be reused by multiple images.
    
    Also, by making a common Dockerfile, all common dependencies have the
    same exact description, which decreases disparity between different
    images for all the supported architectures. Mind that package version
    disparity cannot be prevented 100%, as different base images may be used
    for different architectures (e.g., Debian Sid for riscv64 instead of
    Bookworm).
    
    Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
    
  • 44927bf1
    by Marek Pikuła at 2024-09-03T18:20:59+02:00
    ci: Unify build and test stage as job templates
    
    This commit unifies codecov and pltcov build and test stages as single
    parametrizable GitLab job templates. This cleans up the pipeline flow in
    preparation for LLVM support in the pipeline.
    
    Each target has now a Meson cross file, even when using a native
    compiler, so that the job template can be better generalized. This also
    allows to move architecture-specific build configuration to the cross
    file instead of using the additional Meson flags in the job declaration.
    
  • c0ee08aa
    by Marek Pikuła at 2024-09-03T18:21:00+02:00
    ci: Add LLVM support to the CI workflow
    
    Add support for LLVM for all targets. Mind that in the current state,
    some targets fail either build or test stage. For the time being, these
    jobs are marked with `:failing` job name suffix.
    
    Relevant issues:
    - https://gitlab.freedesktop.org/pixman/pixman/-/issues/105
    - https://gitlab.freedesktop.org/pixman/pixman/-/issues/106
    - https://gitlab.freedesktop.org/pixman/pixman/-/issues/107
    - https://gitlab.freedesktop.org/pixman/pixman/-/issues/108
    - https://gitlab.freedesktop.org/pixman/pixman/-/issues/109
    
  • 51dcfb80
    by Marek Pikuła at 2024-09-03T18:21:01+02:00
    ci: Add support for LLVM for Windows targets
    
    It uses LLVM MinGW project to get the precompiled LLVM toolchain for
    cross-compilation.
    
    Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
    
  • ffa5645a
    by Marek Pikuła at 2024-09-03T18:21:02+02:00
    ci: Add support for Windows on ARM
    
    It uses LLVM MinGW pre-built toolchain, and wine-arm64 base Docker image
    from Linaro.
    
    Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
    
  • b7ac7cd1
    by Marek Pikuła at 2024-09-25T20:20:08+02:00
    ci: Fix Docker image source for MRs
    
    If the MR doesn't modify the Docker context, the pipeline should use the
    image from upstream.
    
    Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
    
  • 76b133f2
    by Marek Pikuła at 2024-09-26T21:54:21+02:00
    ci: Fix active target rule for Docker stage
    
    If rule condition for selectively running Docker image builds was ill
    formed. It resulted in build of all images even when not all targets
    were selected with ACTIVE_TARGET_PATTERN variable.
    
  • 9176847f
    by Marek Pikuła at 2024-09-26T23:33:52+02:00
    ci: riscv64: Don't force enable RVV globally
    
    RVV compilation will be enabled for RVV implementation alone, similar to
    other platforms. This prevents introducing autovectorized code in the
    main library, thus making pixman compatible with RISC-V targets without
    RVV.
    
  • a3d297fa
    by Marek Pikuła at 2024-09-26T23:33:52+02:00
    ci: riscv64: Verify if tests run on target without RVV
    
    To ensure that the runtime discovery works correctly, and RVV code is
    disabled for target without RVV extension.
    
    Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
    
  • 126b0831
    by Marek Pikuła at 2024-09-27T00:22:54+02:00
    ci: Add option to use different version of LLVM
    
    Some targets require different version of LLVM, so now it's possible to
    set it in the target's environment. Mind that the highest available
    version depends on the base Debian image.
    
    The change bumps LLVM version for all Linux targets:
    - by default from 14 to 16,
    - from 16 to 18 for riscv64 (based on Sid; for now, LLVM 19 doesn't have
      libomp packaged),
    - mipsel stays at 14 as there seem to be some missing packages for
      higher versions.
    
    Windows targets stay the same, as they use a different source of LLVM
    (MinGW-compatible, which is currently version 18).
    
    Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
    
  • 277f485a
    by Marek Pikuła at 2024-09-27T00:22:55+02:00
    ci: Add missing ":failing" suffix for linux-ppc job
    
    Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
    
  • 11e51bc7
    by Marek Pikuła at 2024-10-14T16:12:44+02:00
    ci: Disable OpenMP for Win32 target
    
    OpenMP introduces random stack overflow errors for 32-bit Windows
    target.
    
    Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
    
  • 0476eda3
    by Marek Pikuła at 2024-10-21T13:17:25+02:00
    ci: Remove MESON_TESTTHREADS workaround
    
    https://github.com/mesonbuild/meson/pull/13604 got merged and released
    with Meson 1.6.0, which we already use in the Docker images, so the
    workaround can be dropped.
    
    Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
    
  • 15336dc7
    by Marek Pikuła at 2024-10-21T13:17:47+02:00
    ci: Pin gcovr version to 7.x
    
    Temporary version pin of gcovr due to errors in coverage report
    generation when running with newly released version 8.x.
    
    Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
    
  • de59d1a9
    by Marek Pikuła at 2024-10-21T16:49:40+02:00
    ci: Don't execute failing jobs
    
    Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
    
  • bc2ec45d
    by Marek Pikuła at 2024-10-21T16:49:41+02:00
    ci: Add auto_cancel policy
    
    Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
    
  • 90f9cf17
    by Marek Pikuła at 2024-10-21T16:49:50+02:00
    ci: Disable coverage for arm-v5 and mipsel targets
    
    Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
    
  • 643f098a
    by Changqing Li at 2024-10-30T01:34:41+00:00
    pixman-combine-float.c: fix inlining failed error
    
    Refer [1], always-inline is not suggested to be used if you have indirect
    calls. so replace force_inline with inline to fix error like:
    In function ‘combine_inner’,
        inlined from ‘combine_soft_light_ca_float’ at ../pixman/pixman-combine-float.c:655:511:
    ../pixman/pixman-combine-float.c:655:211: error: inlining failed in call to ‘always_inline’ ‘combine_soft_light_c’: function not considered for inlining
    
    Test with gcc-9 and gcc-14, both works well
    
    [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115679
    
    Signed-off-by: Changqing Li <changqing.li@windriver.com>
    
  • 0e424031
    by f wasil at 2024-10-30T03:39:37+00:00
    RISC-V floating point operations
    
  • a987256b
    by f wasil at 2024-11-05T03:39:54+00:00
    Fixed memory leak in tests
    
  • 126d61e7
    by Lance Arsenault at 2024-11-05T04:31:04+00:00
    pixman: Add library destructor
    
    Closes: https://gitlab.freedesktop.org/pixman/pixman/-/issues/111
    
  • ae6646f1
    by Matt Turner at 2024-11-05T11:51:31-05:00
    Pre-release version bump to 0.44.0
    
  • 31b00cc7
    by Timo Aaltonen at 2024-11-07T14:29:36+02:00
    Merge branch 'upstream-unstable' into debian-unstable
    
  • 2e58ff85
    by Timo Aaltonen at 2024-11-07T14:30:41+02:00
    version bump
    
  • b87363cd
    by Timo Aaltonen at 2024-11-07T14:31:18+02:00
    patches: Refresh patch.
    
  • c8cb00a5
    by Timo Aaltonen at 2024-11-07T15:45:17+02:00
    control, rules: Build with meson.
    
  • 7cca9d2d
    by Timo Aaltonen at 2024-11-07T15:45:25+02:00
    symbols: Updated.
    
  • 2ad07830
    by Timo Aaltonen at 2024-11-07T15:53:40+02:00
    control: Migrate to pkgconf.
    
  • 7d514953
    by Timo Aaltonen at 2024-11-07T15:54:27+02:00
    rules: Drop obsolete dbgsym-migration.
    
  • e55fd151
    by Timo Aaltonen at 2024-11-07T16:48:34+02:00
    releasing package pixman version 0.44.0-1
    

30 changed files:

The diff was not included because it is too large.

Reply to: