pixman: Branch 'master' - 6 commits
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Apr 8 14:34:51 UTC 2025
.gitlab-ci.d/01-docker/Dockerfile | 36 +++++++++++++++++++++---------------
pixman/pixman-glyph.c | 15 ++++++++-------
pixman/pixman-rvv.c | 35 +++++++++++++++++------------------
pixman/pixman.c | 2 +-
test/matrix-test.c | 2 ++
test/pixel-test.c | 2 +-
6 files changed, 50 insertions(+), 42 deletions(-)
New commits:
commit 52de98d9eb588d5ce77a477a74b93f3d2fbf5d16
Author: Marek Pikuła <m.pikula at partner.samsung.com>
Date: Mon Apr 7 13:23:59 2025 +0200
docker: Decrease build time for gcovr
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 at partner.samsung.com>
diff --git a/.gitlab-ci.d/01-docker/Dockerfile b/.gitlab-ci.d/01-docker/Dockerfile
index eee2ac3..43d1e2c 100644
--- a/.gitlab-ci.d/01-docker/Dockerfile
+++ b/.gitlab-ci.d/01-docker/Dockerfile
@@ -28,9 +28,7 @@ RUN echo "deb http://deb.debian.org/debian bookworm-backports main" > /etc/apt/
python3-userpath \
python3-venv \
# gcovr dependencies.
- libxml2-dev \
- libxslt-dev \
- python3-dev \
+ python3-lxml \
# User bookworm-backports for QEMU, as it has version 7 by default, which
# has some issues.
&& ${APT_INSTALL} \
@@ -42,7 +40,7 @@ RUN echo "deb http://deb.debian.org/debian bookworm-backports main" > /etc/apt/
&& pip install pipx --break-system-packages \
# Install a recent version of meson and gcovr using pipx to have the same
# version across all variants regardless of base.
- && pipx install --global \
+ && pipx install --global --system-site-packages \
gcovr${GCOVR_VERSION} \
meson${MESON_VERSION} \
&& gcovr --version \
commit 856207fbd6fb9455b85a090e8c58dedad1e6b49b
Author: Marek Pikuła <m.pikula at partner.samsung.com>
Date: Sat Apr 5 18:42:45 2025 +0200
docker: Move LLVM archive to a separate thin layer
This improves caching of the image build process.
Signed-off-by: Marek Pikuła <m.pikula at partner.samsung.com>
diff --git a/.gitlab-ci.d/01-docker/Dockerfile b/.gitlab-ci.d/01-docker/Dockerfile
index 58655a4..eee2ac3 100644
--- a/.gitlab-ci.d/01-docker/Dockerfile
+++ b/.gitlab-ci.d/01-docker/Dockerfile
@@ -1,15 +1,16 @@
ARG BASE_IMAGE=docker.io/debian
ARG BASE_IMAGE_TAG=bookworm-slim
-FROM ${BASE_IMAGE}:${BASE_IMAGE_TAG} AS base
+FROM ${BASE_IMAGE}:${BASE_IMAGE_TAG} AS base-image
-LABEL org.opencontainers.image.title="Pixman build environment for platform coverage" \
- org.opencontainers.image.authors="Marek Pikuła <m.pikula at partner.samsung.com>"
-
-ARG DEBIAN_FRONTEND=noninteractive
ENV APT_UPDATE="apt-get update" \
- APT_INSTALL="apt-get install -y --no-install-recommends" \
+ APT_INSTALL="env DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends" \
APT_CLEANUP="rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*"
+FROM base-image AS base
+
+LABEL org.opencontainers.image.title="Pixman build environment for platform coverage" \
+ org.opencontainers.image.authors="Marek Pikuła <m.pikula at partner.samsung.com>"
+
ARG GCOVR_VERSION="~=7.2"
ARG MESON_VERSION="~=1.7"
RUN echo "deb http://deb.debian.org/debian bookworm-backports main" > /etc/apt/sources.list.d/debian-12-backports.list \
@@ -107,17 +108,24 @@ RUN ${APT_UPDATE} \
&& ${APT_CLEANUP}
# Windows base image with a pre-built LLVM MinGW toolchain.
-FROM base AS windows-llvm-base
+FROM base-image AS windows-llvm-base-build
ARG LLVM_MINGW_RELEASE=20250402
ARG LLVM_MINGW_VARIANT=llvm-mingw-${LLVM_MINGW_RELEASE}-ucrt-ubuntu-20.04
RUN ${APT_UPDATE} \
&& ${APT_INSTALL} \
- procps \
+ ca-certificates \
wget \
+ xz-utils \
&& ${APT_CLEANUP} \
&& wget https://github.com/mstorsjo/llvm-mingw/releases/download/${LLVM_MINGW_RELEASE}/${LLVM_MINGW_VARIANT}-`uname -m`.tar.xz \
-O - | tar -xJ -C /opt \
&& mv /opt/llvm* /opt/llvm
+
+FROM base AS windows-llvm-base
+RUN ${APT_UPDATE} \
+ && ${APT_INSTALL} procps \
+ && ${APT_CLEANUP}
+COPY --from=windows-llvm-base-build /opt/llvm /opt/llvm
ENV PATH=/opt/llvm/bin:${PATH} \
# Inspired by https://code.videolan.org/videolan/docker-images
WINE_BOOT='wine wineboot --init \
commit 6a4227dfd89f13812cd06f710fe27c6111f6faf1
Author: Marek Pikuła <m.pikula at partner.samsung.com>
Date: Sat Apr 5 08:00:56 2025 +0200
docker: Update Meson to 1.7
No significant changes, just a version bump to see if it builds without
issues.
Signed-off-by: Marek Pikuła <m.pikula at partner.samsung.com>
diff --git a/.gitlab-ci.d/01-docker/Dockerfile b/.gitlab-ci.d/01-docker/Dockerfile
index 33854b7..58655a4 100644
--- a/.gitlab-ci.d/01-docker/Dockerfile
+++ b/.gitlab-ci.d/01-docker/Dockerfile
@@ -11,7 +11,7 @@ ENV APT_UPDATE="apt-get update" \
APT_CLEANUP="rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*"
ARG GCOVR_VERSION="~=7.2"
-ARG MESON_VERSION="~=1.6"
+ARG MESON_VERSION="~=1.7"
RUN echo "deb http://deb.debian.org/debian bookworm-backports main" > /etc/apt/sources.list.d/debian-12-backports.list \
&& ${APT_UPDATE} \
&& ${APT_INSTALL} \
commit 6c91250df6bef1515ec4effd7822405fb968f474
Author: Marek Pikuła <m.pikula at partner.samsung.com>
Date: Sat Apr 5 07:57:18 2025 +0200
docker: Update Wine to 10.5 and update LLVM-MinGW
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 at partner.samsung.com>
diff --git a/.gitlab-ci.d/01-docker/Dockerfile b/.gitlab-ci.d/01-docker/Dockerfile
index ed29da5..33854b7 100644
--- a/.gitlab-ci.d/01-docker/Dockerfile
+++ b/.gitlab-ci.d/01-docker/Dockerfile
@@ -108,7 +108,7 @@ RUN ${APT_UPDATE} \
# Windows base image with a pre-built LLVM MinGW toolchain.
FROM base AS windows-llvm-base
-ARG LLVM_MINGW_RELEASE=20241203
+ARG LLVM_MINGW_RELEASE=20250402
ARG LLVM_MINGW_VARIANT=llvm-mingw-${LLVM_MINGW_RELEASE}-ucrt-ubuntu-20.04
RUN ${APT_UPDATE} \
&& ${APT_INSTALL} \
@@ -179,7 +179,7 @@ RUN ${APT_UPDATE} \
lld \
llvm \
&& ${APT_CLEANUP}
-ARG WINE_VERSION=9.22
+ARG WINE_VERSION=10.5
RUN git clone https://gitlab.winehq.org/wine/wine.git \
-b wine-${WINE_VERSION} \
--depth 1
commit aa7415234375a932c023815e535fe451621a1bd3
Author: Marek Pikuła <m.pikula at partner.samsung.com>
Date: Sat Apr 5 07:37:51 2025 +0200
rvv: Pass through clang-format
There are some minor style differences with the clang-format style.
Signed-off-by: Marek Pikuła <m.pikula at partner.samsung.com>
diff --git a/pixman/pixman-rvv.c b/pixman/pixman-rvv.c
index 6808f50..2a9d344 100644
--- a/pixman/pixman-rvv.c
+++ b/pixman/pixman-rvv.c
@@ -112,7 +112,7 @@ rvv_blend_overlay (const vfloat32m1_t sa,
size_t vl)
{
vfloat32m1_t t0, t1, t2, t3, t4, f0, f1, f2;
- vbool32_t vb;
+ vbool32_t vb;
t0 = __riscv_vfadd_vv_f32m1 (d, d, vl);
t1 = __riscv_vfmul_vv_f32m1 (__riscv_vfadd_vv_f32m1 (s, s, vl), d, vl);
vb = __riscv_vmflt_vv_f32m1_b32 (t0, da, vl);
@@ -141,7 +141,7 @@ rvv_blend_darken (const vfloat32m1_t sa,
size_t vl)
{
vfloat32m1_t ss, dd;
- vbool32_t vb;
+ vbool32_t vb;
ss = __riscv_vfmul_vv_f32m1 (da, s, vl);
dd = __riscv_vfmul_vv_f32m1 (sa, d, vl);
vb = __riscv_vmfgt_vv_f32m1_b32 (ss, dd, vl);
@@ -164,7 +164,7 @@ rvv_blend_lighten (const vfloat32m1_t sa,
size_t vl)
{
vfloat32m1_t ss, dd;
- vbool32_t vb;
+ vbool32_t vb;
ss = __riscv_vfmul_vv_f32m1 (s, da, vl);
dd = __riscv_vfmul_vv_f32m1 (d, sa, vl);
vb = __riscv_vmfgt_vv_f32m1_b32 (ss, dd, vl);
@@ -198,7 +198,7 @@ rvv_blend_color_dodge (const vfloat32m1_t sa,
size_t vl)
{
vfloat32m1_t t0, t1, t2, t3, t4;
- vbool32_t is_d_zero, vb, is_t0_non_zero;
+ vbool32_t is_d_zero, vb, is_t0_non_zero;
is_d_zero = __riscv_vmfeq_vf_f32m1_b32 (d, 0.0f, vl);
@@ -296,7 +296,7 @@ rvv_blend_hard_light (const vfloat32m1_t sa,
size_t vl)
{
vfloat32m1_t t0, t1, t2, t3, t4;
- vbool32_t vb;
+ vbool32_t vb;
t0 = __riscv_vfadd_vv_f32m1 (s, s, vl);
t1 = __riscv_vfmul_vv_f32m1 (__riscv_vfadd_vv_f32m1 (s, s, vl), d, vl);
vb = __riscv_vmfgt_vv_f32m1_b32 (t0, sa, vl);
@@ -334,9 +334,8 @@ rvv_blend_soft_light (const vfloat32m1_t sa,
const vfloat32m1_t d,
size_t vl)
{
- vfloat32m1_t t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12,
- t13;
- vbool32_t is_sa_lt_2s, is_da_ls_4d, is_da_non_zero;
+ vfloat32m1_t t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13;
+ vbool32_t is_sa_lt_2s, is_da_ls_4d, is_da_non_zero;
is_da_non_zero = __riscv_vmfne_vf_f32m1_b32 (da, 0.0f, vl);
t0 = __riscv_vfadd_vv_f32m1 (s, s, vl); // 2 * s
is_sa_lt_2s = __riscv_vmflt_vv_f32m1_b32 (sa, t0, vl);
@@ -358,8 +357,8 @@ rvv_blend_soft_light (const vfloat32m1_t sa,
__riscv_vfadd_vv_f32m1 (d, d, vl), vl);
is_da_ls_4d = __riscv_vmflt_vv_f32m1_b32 (da, t6, vl);
t10 = __riscv_vfsub_vv_f32m1 (
- __riscv_vfsqrt_v_f32m1 (__riscv_vfmul_vv_f32m1 (d, da, vl), vl), d,
- vl); // sqrtf (d * da) - d
+ __riscv_vfsqrt_v_f32m1 (__riscv_vfmul_vv_f32m1 (d, da, vl), vl), d,
+ vl); // sqrtf (d * da) - d
t11 = __riscv_vfmul_vv_f32m1 (t2, t10,
vl); // (sqrtf (d * da) - d) * (sa - 2 * s)
t12 = __riscv_vfsub_vv_f32m1 (
@@ -404,7 +403,7 @@ rvv_blend_difference (const vfloat32m1_t sa,
size_t vl)
{
vfloat32m1_t dsa, sda;
- vbool32_t vb;
+ vbool32_t vb;
dsa = __riscv_vfmul_vv_f32m1 (d, sa, vl);
sda = __riscv_vfmul_vv_f32m1 (s, da, vl);
vb = __riscv_vmflt_vv_f32m1_b32 (sda, dsa, vl);
@@ -759,8 +758,8 @@ rvv_get_factor (combine_factor_t factor,
const vfloat32m1_t fa = rvv_get_factor (a, sa, da, vl); \
const vfloat32m1_t fb = rvv_get_factor (b, sa, da, vl); \
vfloat32m1_t t0 = __riscv_vfadd_vv_f32m1 ( \
- __riscv_vfmul_vv_f32m1 (s, fa, vl), \
- __riscv_vfmul_vv_f32m1 (d, fb, vl), vl); \
+ __riscv_vfmul_vv_f32m1 (s, fa, vl), \
+ __riscv_vfmul_vv_f32m1 (d, fb, vl), vl); \
return __riscv_vfmin_vv_f32m1 (__riscv_vfmv_v_f_f32m1 (1.0f, vl), t0, \
vl); \
} \
@@ -856,12 +855,13 @@ static const pixman_fast_path_t rvv_fast_paths[] = {
{PIXMAN_OP_NONE},
};
-// clang-format off
pixman_implementation_t *
_pixman_implementation_create_rvv (pixman_implementation_t *fallback)
{
- pixman_implementation_t *imp = _pixman_implementation_create (fallback, rvv_fast_paths);
+ pixman_implementation_t *imp = _pixman_implementation_create (
+ fallback, rvv_fast_paths);
+ // clang-format off
imp->combine_float[PIXMAN_OP_CLEAR] = rvv_combine_clear_u_float;
imp->combine_float[PIXMAN_OP_SRC] = rvv_combine_src_u_float;
imp->combine_float[PIXMAN_OP_DST] = rvv_combine_dst_u_float;
@@ -955,7 +955,7 @@ _pixman_implementation_create_rvv (pixman_implementation_t *fallback)
imp->combine_float_ca[PIXMAN_OP_CONJOINT_OVER] = rvv_combine_conjoint_over_ca_float;
imp->combine_float_ca[PIXMAN_OP_CONJOINT_OVER_REVERSE] = rvv_combine_conjoint_over_reverse_ca_float;
imp->combine_float_ca[PIXMAN_OP_CONJOINT_IN] = rvv_combine_conjoint_in_ca_float;
- imp->combine_float_ca[PIXMAN_OP_CONJOINT_IN_REVERSE] =rvv_combine_conjoint_in_reverse_ca_float;
+ imp->combine_float_ca[PIXMAN_OP_CONJOINT_IN_REVERSE] = rvv_combine_conjoint_in_reverse_ca_float;
imp->combine_float_ca[PIXMAN_OP_CONJOINT_OUT] = rvv_combine_conjoint_out_ca_float;
imp->combine_float_ca[PIXMAN_OP_CONJOINT_OUT_REVERSE] = rvv_combine_conjoint_out_reverse_ca_float;
imp->combine_float_ca[PIXMAN_OP_CONJOINT_ATOP] = rvv_combine_conjoint_atop_ca_float;
@@ -983,5 +983,4 @@ _pixman_implementation_create_rvv (pixman_implementation_t *fallback)
return imp;
}
-
-// clang-format on
\ No newline at end of file
+// clang-format on
commit b61453104f0d63e23e2696f149ce6ab28f1e4270
Author: Marek Pikuła <m.pikula at partner.samsung.com>
Date: Mon Apr 7 10:52:25 2025 +0200
Fix some build warning
- `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 at partner.samsung.com>
diff --git a/pixman/pixman-glyph.c b/pixman/pixman-glyph.c
index dc90411..346d789 100644
--- a/pixman/pixman-glyph.c
+++ b/pixman/pixman-glyph.c
@@ -391,7 +391,8 @@ box32_intersect (pixman_box32_t *dest,
return dest->x2 > dest->x1 && dest->y2 > dest->y1;
}
-#if defined(__GNUC__) && !defined(__x86_64__) && !defined(__amd64__)
+#if defined(__GNUC__) && defined(__i386__) && !defined(__x86_64__) && \
+ !defined(__amd64__)
__attribute__((__force_align_arg_pointer__))
#endif
PIXMAN_EXPORT void
@@ -418,10 +419,10 @@ pixman_composite_glyphs_no_mask (pixman_op_t op,
_pixman_image_validate (src);
_pixman_image_validate (dest);
-
+
dest_format = dest->common.extended_format_code;
dest_flags = dest->common.flags;
-
+
pixman_region32_init (®ion);
if (!_pixman_compute_composite_region32 (
®ion,
@@ -452,9 +453,9 @@ pixman_composite_glyphs_no_mask (pixman_op_t op,
glyph_box.y1 = dest_y + glyphs[i].y - glyph->origin_y;
glyph_box.x2 = glyph_box.x1 + glyph->image->bits.width;
glyph_box.y2 = glyph_box.y1 + glyph->image->bits.height;
-
+
pbox = pixman_region32_rectangles (®ion, &n);
-
+
info.mask_image = glyph_img;
while (n--)
@@ -588,7 +589,7 @@ add_glyphs (pixman_glyph_cache_t *cache,
glyph_box.y1 = glyphs[i].y - glyph->origin_y + off_y;
glyph_box.x2 = glyph_box.x1 + glyph->image->bits.width;
glyph_box.y2 = glyph_box.y1 + glyph->image->bits.height;
-
+
if (box32_intersect (&composite_box, &glyph_box, &dest_box))
{
int src_x = composite_box.x1 - glyph_box.x1;
@@ -623,7 +624,7 @@ out:
*
* Then (mask_x, mask_y) in the infinite mask and (src_x, src_y) in the source
* image are both aligned with (dest_x, dest_y) in the destination image. Then
- * these three images are composited within the
+ * these three images are composited within the
*
* (dest_x, dest_y, dst_x + width, dst_y + height)
*
diff --git a/pixman/pixman.c b/pixman/pixman.c
index 26e5008..2b408c6 100644
--- a/pixman/pixman.c
+++ b/pixman/pixman.c
@@ -854,7 +854,7 @@ pixman_image_fill_rectangles (pixman_op_t op,
int n_rects,
const pixman_rectangle16_t *rects)
{
- pixman_box32_t stack_boxes[6];
+ pixman_box32_t stack_boxes[6] = {0};
pixman_box32_t *boxes;
pixman_bool_t result;
int i;
diff --git a/test/matrix-test.c b/test/matrix-test.c
index cd8820c..e93e878 100644
--- a/test/matrix-test.c
+++ b/test/matrix-test.c
@@ -219,6 +219,8 @@ test_matrix (int testnum, int verbose)
}
}
}
+#else
+ (void)transform_ok;
#endif
byteswap_vector_48_16 (&result_i);
crc32 = compute_crc32 (crc32, &result_i, sizeof (result_i));
diff --git a/test/pixel-test.c b/test/pixel-test.c
index be24113..9051bae 100644
--- a/test/pixel-test.c
+++ b/test/pixel-test.c
@@ -2974,7 +2974,7 @@ done:
pixman_image_unref (src);
pixman_image_unref (dest);
- if (have_mask)
+ if (have_mask && mask != NULL)
pixman_image_unref (mask);
return result;
More information about the xorg-commit
mailing list