Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
|
|
Signed-off-by: Loukas Agorgianitis <loukas@agorgianitis.com>
|
|
Signed-off-by: Loukas Agorgianitis <loukas@agorgianitis.com>
|
|
After disabling OpenMP, the Windows runs shouldn't fail.
This reverts commit dd0750341d3d669df31ebf98d5c1ceb453005779.
|
|
Fixes #122 by disabling OpenMP for Windows targets. It was already done
before for i686 variant (in !125), but it seems that 64-bit version is
buggy as well. It looks like it doesn't increase job execution time
significantly.
Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
|
|
|
|
|
|
Linux 6.5 introduced COMPAT_HWCAP_ISA_V. When trying to compile pixman
against linux headers older than this, pixman will fail to compile
because it assumes COMPAT_HWCAP_ISA_V exists.
During meson configuration, do not enable have_rvv if the platform is
Linux and COMPAT_HWCAP_ISA_V doesn't exist.
Signed-off-by: Charlie Jenkins <charlie@rivosinc.com>
Fixes: 0e424031bda2 ("RISC-V floating point operations")
|
|
Bug: https://gitlab.freedesktop.org/pixman/pixman/-/issues/122
|
|
Signed-off-by: Loukas Agorgianitis <loukas@agorgianitis.com>
|
|
Signed-off-by: Loukas Agorgianitis <loukas@agorgianitis.com>
|
|
Signed-off-by: Loukas Agorgianitis <loukas@agorgianitis.com>
|
|
Signed-off-by: Loukas Agorgianitis <loukas@agorgianitis.com>
|
|
Signed-off-by: Loukas Agorgianitis <loukas@agorgianitis.com>
|
|
Signed-off-by: Loukas Agorgianitis <loukas@agorgianitis.com>
|
|
Signed-off-by: Loukas Agorgianitis <loukas@agorgianitis.com>
|
|
Signed-off-by: Manuel Stoeckl <code@mstoeckl.com>
|
|
This format is necessary for Pixman to be able to use, without a
conversion step, high bit depth images from other libraries. On
little endian systems, notable equivalent formats are PNG's 16 bit
RGBA output (assuming png_set_swap), DRM_FORMAT_ABGR16161616,
GL_RGBA16, and QImage::Format_RGBA64_Premultiplied.
Signed-off-by: Manuel Stoeckl <code@mstoeckl.com>
|
|
https://gitlab.freedesktop.org/pixman/pixman/-/issues/119
When the advanced preloader reached the end of a scanline, it advanced
the `PF_SRC`, `PF_DST`, and `PF_MASK` addresses by 1 instead of
advancing to the next scanline.
Most of the time, this means the prefetcher is simply prefetching the
wrong place in the image. But when the stride is negative, this can
result in a segfault when trying to read memory beyond the end of the
image buffer.
I have fixed this by combining the bitshift and add instructions to
directly update the address register by the correct amount before
prefetching.
My fix results in the same behavior as the code in
`pixman/pixman-arm-neon-asm.h`:
```
PF ldrbge, DUMMY, [PF_SRC, SRC_STRIDE, lsl #src_bpp_shift]!
```
This instruction means that `PF_SRC` is updated with the offset of
`SRC_STRIDE << #src_bpp_shift` and then the byte at updated `PF_SRC` is
read into `DUMMY`. (The `ge` condition has been replaced with a
separate branch instruction in aarch64.)
I also cleaned up a couple other cases where instructions were
redundant.
|
|
The aarch64 advanced prefetcher has a bug where it can read past the
end of the image buffers. Typically this causes no ill effects (beyond
making the attempted prefetch useless), because it's simply prefetching
junk data and discarding it. Where this causes problems (i.e. segfault)
is when it tries to read memory that not readable, such as a memory map
with no read permission.
To expose this specific bug, we need a test case with a negative stride
and enough height such that `last_scanline_ptr + height` runs past the
end of the image buffer (this equation is approximate and omits some
small variables). Using `fence_malloc`, we can catch the problem with a
segfault when the prefetch attempts to read memory beyond the end of the
image buffer.
|
|
In case there are intermittent errors which can be "fixed" by running
the job again.
Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
|
|
Since the migration to the new FDO infrastructure
(freedesktop/freedesktop#2076), there is an option to use fleeting
runners for jobs not requiring KVM. In our case there are multiple
instances where it is not needed, so it's possible to use untagged
(fleeting) runners, which spin up only in case when the job queue load
is high, possibly helping with #112.
Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
|
|
Building the recent version from sources seems to help a little with the
intermittent CI fails for windows-amd64 target. Wine 10.0 from Debian
Trixie repos didn't do the job.
Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
|
|
This commit introduces the implementation of most fast paths outlined in
`pixman-fast-path.c`, along with a complete implementation of combine
functions for integer operations.
Co-Authored-By: Bernard Gingold <b.gingold@samsung.com>
Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
|
|
To prevent name clashes with the upcoming integer implementation, the
float-specific functions are renamed to include a `_float` suffix.
Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
|
|
The script parses and compares results from the `lowlevel-blt-bench`.
For example, it can be used to compare different backends when running
the benchmark with different `PIXMAN_DISABLE`.
Additional features:
- save the results in a CSV file (both single result and comparison),
- print the results as a table with colors, allowing for easy
identification of the best and worst results.
Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
|
|
For some platforms there is no pre-built lxml wheel. In order to
decrease build time of gcovr venv, it's possibe to pull python3-lxml
from the system package manager instead of building it from source.
Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
|
|
This improves caching of the image build process.
Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
|
|
No significant changes, just a version bump to see if it builds without
issues.
Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
|
|
Wine 10.5 is the latest stable release of Wine, which includes fixes for
Windows on ARM, improving the overall stability of CI.
Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
|
|
There are some minor style differences with the clang-format style.
Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
|
|
- `unused-but-set-variable` for platforms without float128 in
`test/matrix-test.c`
- `unused-but-set-variable` for `test/pixel-test.c`
- `maybe-uninitialized` for `pixman_image_fill_rectangles`
- enable `__force_align_arg_pointer__` only for x86
Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
|
|
Fixes: https://gitlab.freedesktop.org/pixman/pixman/-/issues/113
|
|
clang's integrated assembler doesn't handle .fpu coming before .arch
like GNU as does. With .fpu after .arch, neon support can be detected
and used properly.
Fixes: https://gitlab.freedesktop.org/pixman/pixman/-/issues/113
|
|
It seems that GitLab doesn't allow expansion of variables provided with
template "inputs" if they are not defined as CI variable on project
level. This makes the default values saves in global `variable` section
unusable. That means that if a projects doesn't have the CI variables
defined, the CI won't run – this includes forks.
In order to prevent problematic setup for forks, the default runner tags
are hard-coded.
Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
|
|
It turns out it's relatively easy to provide support for Windows on ARM.
Unfortunately, it requires building Wine from source, as the version
distributed by Debian (both Bookworm and Sid) is buggy for some tests.
However, building it isn't overly complicated, and can be replaced with
pre-built package once a fixed version lands in Debian Trixie.
Besides that, I also fixed the dynamic linking issue and enabled OpenMP
as for x86 targets.
It has the following advantages:
- It greatly decreases the image size, and improves maintainability of
the package, as we don't rely on third-party image (from Linaro).
- We can build a native image and run it on ARM GitLab runner spreading
the load between different runners, and significantly improving the
speed of execution (over 12 min down to under a minute).
Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
|
|
- Update LLVM-MinGW.
- Separate out win32 and win64 images. In some scenarios there are
dependency clashes, thus it's easier to simply separate these two
images.
- Fix dynamic library loading. This means we can link dynamically
everything and enable OpenMP for LLVM builds (meaning faster running
tests)
Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
|
|
- build Docker images
- execute build and test stages
- enable OpenMP for ARMv6 target to improve pipeline speed. This means
that coverage report cannot be generated for this target (no support
for -fprofile-update=atomic).
Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
|
|
This enables reuse of the Docker build with different runner tags. Will
be used for running native image builds on ARM64 runners.
Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
|
|
Enables specifying GitLab runner tag on per-job basis. It requires
setting the `RUNNER_TAG_DEFAULT` variable as GitLab CI variable in order
to properly expand it when referenced in templates.
Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
|
|
Remove disabled, failing targets to unclutter the pipeline description.
Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
|
|
Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
|
|
Required to successfully run cross-compiled PPC targets.
Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
|
|
Bookworm uses QEMU 7, which is buggy in some contexts (e.g., when
running on aarch64 host).
This change updates QEMU to version 9 from bookworm-backports. It
doesn't affect sid images (which have upstream version 9).
Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
|
|
- Upload all coverage artifacts in the summary stage. Having all source
coverage reports makes it easier to debug the summary stage behavior
without the need to download each artifact separately.
- Fail if coverage report cannot be generated to prevent silent coverage
report failure, which was possible since coverage report was in the
`after_script` block.
- Always save artifacts, so that it's easier to debug what's happened if
the job failed.
Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
|
|
|
|
|
|
Reduces churn when running clang-format.
|