Commit Graph

55 Commits

Author SHA1 Message Date
Matt Turner
ae6646f159 Pre-release version bump to 0.44.0 2024-11-05 11:51:31 -05:00
Lance Arsenault
126d61e796 pixman: Add library destructor
Closes: https://gitlab.freedesktop.org/pixman/pixman/-/issues/111
2024-11-05 04:31:04 +00:00
f wasil
0e424031bd RISC-V floating point operations 2024-10-30 03:39:37 +00:00
Marek Pikuła
15af6fd0bc
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>
2024-08-16 20:03:28 +02:00
Marek Pikuła
b753a6f49b
mips: Fix a typo in mips_dspr2_flags
Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
2024-08-14 14:13:07 +02:00
Matt Turner
2e29b7c43d 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
2024-08-13 13:51:36 -04:00
Matt Turner
b252d40714 Post-release version bump to 0.43.5 2024-02-29 11:19:46 -05:00
Matt Turner
54cad71674 Pre-release version bump to 0.43.4 2024-02-29 11:13:20 -05:00
Matt Turner
add7c8db45 pixman-arm: Use unified syntax
Allows us to use the same assembly without a bunch of #ifdef __clang__.
2024-02-29 10:47:07 -05:00
Matt Turner
033716e99a Revert "Allow to build pixman on clang/arm32"
This reverts merge request !78
2024-02-29 15:41:37 +00:00
Heiko Lewin
74130e84c5 Allow to build pixman on clang/arm32 2024-02-29 14:46:55 +00:00
Simon Ser
fdd7161097 Post-release version bump to 0.43.3 2024-01-28 13:32:42 +01:00
Simon Ser
91b8526c1e Pre-release version bump to 0.43.2 2024-01-28 13:26:31 +01:00
Simon Ser
8e4be8c2db Post-release version bump to 0.43.1
Signed-off-by: Simon Ser <contact@emersion.fr>
2024-01-04 11:48:38 +01:00
Simon Ser
6c2e4a0dd9 Pre-release version bump to 0.43.0
Signed-off-by: Simon Ser <contact@emersion.fr>
2024-01-04 11:01:05 +01:00
Benjamin Gilbert
b4b789df5b 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.
2023-11-08 18:43:10 +00:00
Matt Turner
753f5e095e meson: Fix syntax 2023-08-30 11:58:04 -04:00
Heiko Lewin
67490a8bc1
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
2023-07-18 07:20:01 +02:00
Emanuel Schmidt
eb998d7b65 Separate meson build options for demos and tests 2023-02-08 20:56:05 +01:00
Matt Turner
618e3d4283 Post-release version bump to 0.42.3 2022-11-03 09:53:12 -04:00
Matt Turner
37216a3283 Pre-release version bump to 0.42.2 2022-11-02 13:25:48 -04:00
Simon Ser
1a0d50ce70 meson: explicitly set C standard to gnu99
This explicitly indicates that GNU extensions (like asm) are used.
This fixes build errors when Pixman is used as a Meson subproject.

Signed-off-by: Simon Ser <contact@emersion.fr>
2022-10-27 18:21:37 +00:00
Simon Ser
7df9e162c6 Post-release version bump to 0.42.1
Signed-off-by: Simon Ser <contact@emersion.fr>
2022-10-18 11:01:24 +02:00
Simon Ser
8d6d7f44f4 Pre-release version bump to 0.42.0
Signed-off-by: Simon Ser <contact@emersion.fr>
2022-10-18 09:44:04 +02:00
Benjamin Gilbert
421fc252ab meson: Add feature to disable compiler TLS support
When compiling with MinGW, use of the __thread attribute causes pixman
to gain a dependency on the winpthread DLL.  With Autotools, this could
be avoided by configuring with ac_cv_tls=none, causing pixman to fall
back to TlsSetValue() instead.

Add a Meson 'tls' option that can be 'disabled' to skip support for TLS
compiler attributes, or 'enabled' to require a working TLS attribute.
2022-10-18 01:02:43 +00:00
Nirbheek Chauhan
adc07d4618 meson: Fix usage of pkgconfig.generate()
The library that the pkgconfig file is for should be the first
positional argument. The `libraries:` kwarg is for libraries that the
user must also link against, and which meson does not know about (and
hence cannot automatically add to the `Libs:` or `Requires:` section
in the .pc file).

Fixes:
```
subprojects/pixman/meson.build:564: DEPRECATION: Library pixman-1 was
passed to the "libraries" keyword argument of a previous call to
generate() method instead of first positional argument. Adding
pixman-1 to "Requires" field, but this is a deprecated behaviour that
will change in a future version of Meson. Please report the issue if
this warning cannot be avoided in your case.
```
2022-01-22 13:25:57 +05:30
Nirbheek Chauhan
3563dfe436 meson: Fix warning about extract_all_objects usage
We use this because of a meson bug that was fixed in 0.52:

https://mesonbuild.com/Release-notes-for-0-52-0.html#improved-support-for-static-libraries

Bump the requirement and remove the extract_all_objects workaround.
This gets rid of a meson warning:

WARNING: extract_all_objects called without setting recursive
keyword argument. Meson currently defaults to
non-recursive to maintain backward compatibility but
the default will be changed in the future.
2022-01-21 09:07:53 +00:00
Manuel Stoeckl
c6e1af995e demos: port to Gtk3
GTK2 has reached end of life, and GTK3 has been available for a
almost a decade.

Signed-off-by: Manuel Stoeckl <code@mstoeckl.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
2022-01-12 23:19:39 -05:00
Mizuki Asakura
eadb82866b added aarch64 bilinear implementations (ver.4.1)
Since aarch64 has different neon syntax from aarch32 and has no
support for (older) arm-simd,
there are no SIMD accelerations for pixman on aarch64.

We need new implementations.

This patch also contains Ben Avions's series of patches for aarch32
and now the benchmark results are fine to aarch64.

Please find the result at the below ticket.

Added: https://bugs.freedesktop.org/show_bug.cgi?id=94758
Signed-off-by: Mizuki Asakura <ed6e117f@gmail.com>
2021-09-17 17:03:02 +00:00
Dylan Baker
9b49f4e087 meson: remove pixman dependency
AFAICT from the git history, what happened is that the gtk demos rely on
gtk being built with pixman support. pkg-config isn't really expressive
enough to have that information, so the solution that was come up with
was to search for pixman as well as gtk+ and hope that pixman being
installed was.

This isn't actually used anywhere in the meson build anyway, and it's
causing problems for projects that want to use pixman as a supproject
(there's a port of cairo underway that's hitting this), because it
confuses meson.
2020-06-18 14:21:09 -07:00
Tim-Philipp Müller
606f5c15b0 meson: add option to skip building of tests and demos
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
2020-06-02 02:30:39 +00:00
Tom Stellard
c2fe1568ff Add -ftrapping-math to default cflags
This should resolve https://gitlab.freedesktop.org/pixman/pixman/-/issues/22
and make the tests pass with clang.

-ftrapping-math is already the default[1] for gcc, so this should not change
behavior when compiling with gcc.  However, clang defaults[2] to -fno-trapping-math,
so -ftrapping-math is needed to avoid floating-point expceptions when running the
combiner and stress tests.

The root causes of this issue is that that pixman-combine-float.c guards floating-point
division operations with a FLOAT_IS_ZERO check e.g.

if (FLOAT_IS_ZERO (sa))
	f = 1.0f;
else
	f = CLAMP (da / sa);

With -fno-trapping-math, the compiler assumes that division will never trap, so it may
re-order the division and the guard and execute the division first.  In most cases,
this would not be an issue, because floating-point exceptions are ignored.  However,
these tests call enable_divbyzero_exceptions() which causes the SIGFPE signal to
be sent to the program when a divide by zero exception is raised.

[1] https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
[2] https://clang.llvm.org/docs/UsersManual.html#controlling-floating-point-behavior
2020-05-11 22:33:49 +00:00
Matt Turner
10a057e27f Post-release version bump to 0.40.1
Signed-off-by: Matt Turner <mattst88@gmail.com>
2020-04-19 15:01:30 -07:00
Matt Turner
244383bf9f Pre-release version bump to 0.40.0
Signed-off-by: Matt Turner <mattst88@gmail.com>
2020-04-19 14:52:22 -07:00
Shiyou Yin
5330640025 configure.ac: use '-mloongson-mmi' for Loongson MMI
It's recommended to use '-mloongson-mmi' for MMI.

Reviewed-by: Matt Turner <mattst88@gmail.com>
2020-04-07 15:18:03 -07:00
Mathieu Duponchelle
e8321503c6 meson: add missing function check (getisax)
.. and add gettimeofday to the list of funcs to check instead
of having a separate check for it.
2020-01-30 23:31:35 +01:00
Mathieu Duponchelle
8992d5b4fc meson: finish porting over mmx and ssse2 flags for sun and msvc
Those flags are set by the configure.ac script
2020-01-30 23:29:20 +01:00
Chun-wei Fan
06a3f6e60b meson.build: Improve libpng search on MSVC
The build system for libpng for MSVC does not generate a pkg-config file
for us, and CMake support in Meson does not work very well.  So, look
for libpng manually on MSVC builds if depedency discovery did not work
out via pkg-config or the CMake config files.
2019-11-19 05:49:35 +08:00
Chun-wei Fan
7661b1fae9 build: Don't assume PThreads if threading support is found
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()
2019-11-19 05:49:35 +08:00
Chun-wei Fan
e9db26898b meson.build: Disable OpenMP on MSVC builds
The implementation of OpenMP is not compliant for our uses, so disable
it for now by just not checking for it on MSVC builds, as we implicitly
add an /openmp switch to the build, which will cause linking the tests
programs to fail, as the OpenMP implementation is not enough.
2019-11-19 05:49:34 +08:00
Chun-wei Fan
f251c12f8a meson.build: Fix MMX, SSE2 and SSSE3 checks on MSVC
-For MSVC builds, do not use the GCC-specific CFlags when checking for
 these features.

-For the MMX check, assume that we have good enough MMX intrinsics and
 inline assembly support (on ix86), since MSVC provides sufficient
 support for those since before the times of MSVC 2008, and 2008 is the
 oldest version that we can support, as with the pre-C99 GTK+ stack.

Unfortunately due to x64 compiler issues, pre-Visual Studio 2010 will
crash when building SSSE3 code, so we do not enable building SSSE3 code
on pre-2010 Visual Studio.

Also, for all x64 Visual Studio builds, we do not enable USE_X86_MMX
as inline assembly is not allowed for x64 Visual Studio builds, and
instead use the compatibility instrinsics that we already have in the
code.
2019-11-18 16:19:36 +08:00
Christoph Reiter
fd5c0da579 meson: fix TLS support under mingw
GCC on Windows complains that "__declspec(thread)" doesn't work, but still
compiles it, so the meson check doesn't work. The warning printed by gcc:
"warning: 'thread' attribute directive ignored [-Wattributes]"

Pass -Werror=attributes to make the check fail instead.

This fixes the test suite (minus gtk tests) on Windows with mingw.
2019-06-10 16:42:59 +00:00
Christoph Reiter
be0d3e6994 meson: define SIZEOF_LONG and use -Wundef
meson builds defaulted to SIZEOF_LONG=0 in various places
2019-06-10 16:34:06 +00:00
Matt Turner
e21ebfb13f Post-release version bump to 0.38.5
Signed-off-by: Matt Turner <mattst88@gmail.com>
2019-04-10 10:25:18 -07:00
Matt Turner
e8df10eea9 Pre-release version bump to 0.38.4
Signed-off-by: Matt Turner <mattst88@gmail.com>
2019-04-10 10:17:47 -07:00
Matt Turner
8888e752bf Post-release version bump to 0.38.3
Signed-off-by: Matt Turner <mattst88@gmail.com>
2019-04-07 13:34:44 -07:00
Matt Turner
a7ffb3e617 Pre-release version bump to 0.38.2
Signed-off-by: Matt Turner <mattst88@gmail.com>
2019-04-07 13:13:30 -07:00
Matt Turner
4c4753c407 meson: Correct copy-and-paste mistake
Signed-off-by: Matt Turner <mattst88@gmail.com>
2019-04-07 12:31:40 -07:00
Dylan Baker
0ea37df428 meson: store ARM SIMD and NEON tests as text files
This is unfortunately required to make the tests work correctly, as
otherwise meson assumes that the files are C code not assembly. I've
opened https://github.com/mesonbuild/meson/issues/5151, to discuss
fixing the issue in meson upstream.

Fixes #29
2019-03-27 10:54:50 -07:00
Dylan Baker
6e206cf7fc meson: Add proper include paths for the loongson check 2019-03-27 10:53:34 -07:00