babl.git
3 years ago-Wsign-compare babl-memory
Axel Viala [Fri, 25 Mar 2022 15:08:22 +0000 (16:08 +0100)]
-Wsign-compare babl-memory

3 years ago-Wold-style-declaration
Axel Viala [Fri, 25 Mar 2022 14:59:28 +0000 (15:59 +0100)]
-Wold-style-declaration

3 years ago-Wsign-compare conversions.c
Axel Viala [Fri, 25 Mar 2022 14:42:56 +0000 (15:42 +0100)]
-Wsign-compare conversions.c

3 years agoFix warning: -Wsign-compare babl-fish-path
Axel Viala [Fri, 25 Mar 2022 14:36:16 +0000 (15:36 +0100)]
Fix warning: -Wsign-compare babl-fish-path

3 years agobabl-lut-verify: warning: comparison of integer expressions of different signedness...
Axel Viala [Thu, 24 Mar 2022 16:14:40 +0000 (17:14 +0100)]
babl-lut-verify: warning: comparison of integer expressions of different signedness: ‘int’ and ‘long unsigned int’ [-Wsign-compare]

3 years agobabl_fish_path: comparison of integer expressions of different signedness
Axel Viala [Thu, 24 Mar 2022 16:12:15 +0000 (17:12 +0100)]
babl_fish_path: comparison of integer expressions of different signedness

3 years agoFix warning: comparison of integer expressions of different signedness: ‘int’ and...
Axel Viala [Thu, 24 Mar 2022 16:01:01 +0000 (17:01 +0100)]
Fix warning: comparison of integer expressions of different signedness: ‘int’ and ‘long unsigned int’ [-Wsign-compare]

3 years agobin: profile-aware babl format defaults.
Jehan [Wed, 17 Aug 2022 13:53:25 +0000 (15:53 +0200)]
bin: profile-aware babl format defaults.

Instead of always defaulting to "R'G'B' float", if a input/output
profile was set, check if it's CMYK, grayscale or RGB.

The defaults are:
* For a CMYK profile: "CMYK float"
* For a grayscale profile: "Y' float"
* For anything else (or no profile): "R'G'B' float"

3 years agobabl: fix typos in error strings.
Jehan [Wed, 17 Aug 2022 13:18:04 +0000 (15:18 +0200)]
babl: fix typos in error strings.

3 years agobin: add -r/--intent for setting the rendering intent on the CLI tool.
Jehan [Wed, 17 Aug 2022 13:16:12 +0000 (15:16 +0200)]
bin: add -r/--intent for setting the rendering intent on the CLI tool.

3 years agobin: show source format in verbose/default output
Øyvind Kolås [Fri, 29 Jul 2022 20:26:56 +0000 (22:26 +0200)]
bin: show source format in verbose/default output

3 years agobin: add a --brief/-b option.
Jehan [Fri, 22 Jul 2022 09:35:58 +0000 (11:35 +0200)]
bin: add a --brief/-b option.

This will output the result as int or float values (depending on output
format), separated by space.
It would allow to use the output of this script for testing conversion
(with expected output), and can also be used for chaining calls, making
this a re-entrant CLI tool.

3 years agobin: improve usage of the CLI tool.
Jehan [Wed, 20 Jul 2022 21:18:32 +0000 (23:18 +0200)]
bin: improve usage of the CLI tool.

- Add a --help/-h option.
- Detect invalid options (argument starting with '-').
- Support '--' option to indicate end of options. This can be
  particularly useful to set negative component values in floating point
  formats.
- Print usage in various error types (when they are of wrong
  syntax/option types), additionally to printing it when --help is
  called.

3 years agobin: convert from Babl formats with space.
Jehan [Wed, 20 Jul 2022 20:41:50 +0000 (22:41 +0200)]
bin: convert from Babl formats with space.

3 years agobin: new "babl" tool to convert pixel values in command line.
Jehan [Wed, 20 Jul 2022 19:43:29 +0000 (21:43 +0200)]
bin: new "babl" tool to convert pixel values in command line.

This is a CLI tool to quickly make conversions of raw pixel values from
one known format to another.

This is a first basic version, which supports input and output in float,
u8, u16 and u32 (no "half" type yet in particular).

Also it doesn't support profiles yet, or rendering intents, but soon
will.

Finally it doesn't have a "help" output yet to help usage.

3 years agobabl/base/babl-rgb-converter.c: Fix universal_nonlinear_rgb_u8_converter_sse2
Sergey Torokhov [Fri, 15 Jul 2022 22:15:20 +0000 (01:15 +0300)]
babl/base/babl-rgb-converter.c: Fix universal_nonlinear_rgb_u8_converter_sse2

Fix alignment of vector of floats in babl-rgb-converter.c
Downstream Bug (Gentoo): https://bugs.gentoo.org/857708
Bug: https://gitlab.gnome.org/GNOME/babl/-/issues/76

Thanks-to: Alexander Bezrukov <phmagic@mail.ru>
Signed-off-by: Alexander Bezrukov <phmagic@mail.ru>
Signed-off-by: Sergey Torokhov <torokhov-s-a@yandex.ru>
3 years agomeson: Various fixes
Xavier Claessens [Sat, 23 Apr 2022 14:33:17 +0000 (10:33 -0400)]
meson: Various fixes

- Add missing lcms dependencies. That's needed when lcms is a subproject
  otherwise those targets does not find its headers.
- Add lcms2 wrap so meson can build it as subproject in case the
  dependency is not found on system.
- Fix couple meson warnings
- Use meson.override_dependency() so babl can be used as subproject
  without hardcoding "babl_dep" variable name in main project.

3 years agomeson: fix misspelled kwarg name
Eli Schwartz [Mon, 14 Mar 2022 00:26:05 +0000 (20:26 -0400)]
meson: fix misspelled kwarg name

set10 doesn't have a `Description` kwarg, it does have a `description`
kwarg though.

This caused the conf variable to not have a description when it should
have one, and newer versions of Meson with better argument validation
error out with:

meson.build:58:5: ERROR: configuration_data.set10 got unknown keyword arguments "Description"

3 years agopost-release version bump
Øyvind Kolås [Tue, 22 Mar 2022 16:19:11 +0000 (17:19 +0100)]
post-release version bump

3 years agorelease 0.1.92
Øyvind Kolås [Tue, 22 Mar 2022 16:12:57 +0000 (17:12 +0100)]
release 0.1.92

3 years agoextensions: build arm-neon variants of basic extensions
Øyvind Kolås [Tue, 22 Mar 2022 15:50:42 +0000 (16:50 +0100)]
extensions: build arm-neon variants of basic extensions

3 years agoextensions: simple avoid unneccesary double
Øyvind Kolås [Tue, 22 Mar 2022 15:44:18 +0000 (16:44 +0100)]
extensions: simple avoid unneccesary double

3 years agoCIE: full separation of single and double precision code
Øyvind Kolås [Tue, 15 Mar 2022 13:30:12 +0000 (14:30 +0100)]
CIE: full separation of single and double precision code

3 years agobabl: prevent loading extension modules with incorrect SIMD
Øyvind Kolås [Tue, 15 Mar 2022 11:56:16 +0000 (12:56 +0100)]
babl: prevent loading extension modules with incorrect SIMD

This now happens on top of bailing inside the individual modules -
which in some cases is insufficient. This is likely sufficient
to fix issue #69.

3 years agoavoid some avoidable implicit promotion to double
Øyvind Kolås [Sat, 26 Feb 2022 02:02:38 +0000 (03:02 +0100)]
avoid some avoidable implicit promotion to double

3 years agoci: disable to save the environment
Øyvind Kolås [Wed, 23 Feb 2022 16:34:59 +0000 (17:34 +0100)]
ci: disable to save the environment

Arch linux continue to be a bit incompatible with the buildfarm,
CI is already bad for the environment, cpu consuming expected
failures are even worse.

The CI might turn up again backed by debian, but it is better to
turn it off for now.

3 years agoci: attempt building with latest archlinux image
Øyvind Kolås [Wed, 23 Feb 2022 16:24:13 +0000 (17:24 +0100)]
ci: attempt building with latest archlinux image

3 years agotools: mark a function static inline, needed for -O0 builds with clang
Øyvind Kolås [Tue, 22 Feb 2022 00:56:48 +0000 (01:56 +0100)]
tools: mark a function static inline, needed for -O0 builds with clang

3 years agomeson: post release version bump
Øyvind Kolås [Mon, 21 Feb 2022 22:35:12 +0000 (23:35 +0100)]
meson: post release version bump

3 years agorelease babl 0.1.90
Øyvind Kolås [Mon, 21 Feb 2022 21:30:17 +0000 (22:30 +0100)]
release babl 0.1.90

3 years agoNEWS: update
Øyvind Kolås [Mon, 21 Feb 2022 21:29:56 +0000 (22:29 +0100)]
NEWS: update

3 years agobabl: drop a now deprecated const
Øyvind Kolås [Sat, 19 Feb 2022 17:04:31 +0000 (18:04 +0100)]
babl: drop a now deprecated const

3 years agobabl_format_new: also free doc to plug leak
Andrzej Hunt [Sat, 4 Sep 2021 11:43:29 +0000 (13:43 +0200)]
babl_format_new: also free doc to plug leak

doc and name are allocated via babl_strdup, hence if we don't use them
we need to free both of them - therefore add a free(doc) to match the
existing free(name).

format_new (called just below) transfers ownership of doc, hence it's
correct not to free doc in the case where we're instantiating a new
format - whereas name is copied within format_new, and therefore needs to be
free'd in either scenario.

Leak seen while running gimp+babl built with ASAN:

  Direct leak of 99 byte(s) in 1 object(s) allocated from:
    #0 0x5e87cd in malloc /home/abuild/rpmbuild/BUILD/llvm-12.0.0.src/build/../projects/compiler-rt/lib/asan/asan_malloc_linux.cpp:145:3
    #1 0x7f038605e2b8 in babl_malloc /home/ahunt/git/babl/_build/../babl/babl-memory.c:115:9
    #2 0x7f038605eec7 in babl_strdup /home/ahunt/git/babl/_build/../babl/babl-memory.c:296:9
    #3 0x7f038605110f in babl_format_new /home/ahunt/git/babl/_build/../babl/babl-format.c:376:17
    #4 0x7f037313a432 in init /home/ahunt/git/babl/_build/../extensions/cairo.c:569:25
    #5 0x7f03860412a1 in babl_extension_load /home/ahunt/git/babl/_build/../babl/babl-extension.c:226:7
    #6 0x7f0386040d1c in babl_extension_load_dir /home/ahunt/git/babl/_build/../babl/babl-extension.c:268:19
    #7 0x7f03860409a8 in babl_extension_load_dir_list /home/ahunt/git/babl/_build/../babl/babl-extension.c:338:17
    #8 0x7f038607d6cd in babl_init /home/ahunt/git/babl/_build/../babl/babl.c:154:7
    #9 0x7f0386bce5ab in gegl_post_parse_hook /home/ahunt/git/gegl/_build/../gegl/gegl-init.c:542:3
    #10 0x7f03844aad8a in g_option_context_parse /home/ahunt/git/glib/_build/../glib/goption.c:2228:12
    #11 0x7f0386bce381 in gegl_init /home/ahunt/git/gegl/_build/../gegl/gegl-init.c:189:8
    #12 0xef1f6b in gimp_init_for_testing /home/ahunt/git/gimp/app/tests.c:69:3
    [...]

SUMMARY: AddressSanitizer: 99 byte(s) leaked in 1 allocation(s).

3 years agoAdd CIE Lab alpha u16 format
Tomasz Golinski [Mon, 25 Oct 2021 19:58:08 +0000 (21:58 +0200)]
Add CIE Lab alpha u16 format

3 years agoAdd CIE Lab alpha u8 format
Tomasz Golinski [Fri, 8 Oct 2021 12:15:05 +0000 (14:15 +0200)]
Add CIE Lab alpha u8 format

3 years agobabl: fix mutex lock/unlocks symmetry in babl_fish()
Øyvind Kolås [Wed, 9 Feb 2022 19:03:46 +0000 (20:03 +0100)]
babl: fix mutex lock/unlocks symmetry in babl_fish()

In the case where the fish we are to look up is the memcpy fish we were
not locking the mutex. Whereas the common cleanup after the branches
assumes the lock is held. This is probably the cause of gimp#7632.

3 years agotools: include more conversions in babl-lut-verify
Øyvind Kolås [Thu, 27 Jan 2022 12:31:29 +0000 (13:31 +0100)]
tools: include more conversions in babl-lut-verify

3 years agotools: use _putenv_s() instead of setenv() on Windows.
Jehan [Thu, 27 Jan 2022 16:39:49 +0000 (17:39 +0100)]
tools: use _putenv_s() instead of setenv() on Windows.

setenv() does not exist on Windows API, hence babl tools fail to build.
Fixing the issue by using an alternative Windows API.

3 years agotools: rewrite babl-lut-verify to be more generic
Øyvind Kolås [Thu, 27 Jan 2022 08:25:07 +0000 (09:25 +0100)]
tools: rewrite babl-lut-verify to be more generic

3 years agotools: include CMYK encodings in babl-benchmark
Øyvind Kolås [Thu, 27 Jan 2022 07:29:44 +0000 (08:29 +0100)]
tools: include CMYK encodings in babl-benchmark

3 years agobabl: add 4:8 luts
Øyvind Kolås [Thu, 27 Jan 2022 07:18:53 +0000 (08:18 +0100)]
babl: add 4:8 luts

3 years agotools/babl-benchmark: print LUT/REF markers
Øyvind Kolås [Thu, 27 Jan 2022 04:52:53 +0000 (05:52 +0100)]
tools/babl-benchmark: print LUT/REF markers

3 years agobabl: do not load cache if BABL_INHIBIT_CACHE is set in environment
Øyvind Kolås [Thu, 27 Jan 2022 04:38:47 +0000 (05:38 +0100)]
babl: do not load cache if BABL_INHIBIT_CACHE is set in environment

3 years agotools: inhibit cache use in lut-verify and babl-benchmark
Øyvind Kolås [Thu, 27 Jan 2022 04:37:45 +0000 (05:37 +0100)]
tools: inhibit cache use in lut-verify and babl-benchmark

3 years agosse2-float: correctly handle associted alpha in remainder
Øyvind Kolås [Thu, 27 Jan 2022 03:33:04 +0000 (04:33 +0100)]
sse2-float: correctly handle associted alpha in remainder

3 years agobabl: fix fix bpp initialization when loaded from cache
Øyvind Kolås [Thu, 27 Jan 2022 01:29:15 +0000 (02:29 +0100)]
babl: fix fix bpp initialization when loaded from cache

3 years agobabl: clean up compiler warnings
Øyvind Kolås [Wed, 26 Jan 2022 14:07:56 +0000 (15:07 +0100)]
babl: clean up compiler warnings

3 years agobabl: do luts for 2->16 byte fishes
Øyvind Kolås [Wed, 26 Jan 2022 14:03:31 +0000 (15:03 +0100)]
babl: do luts for 2->16 byte fishes

3 years agobabl: initialize bpp after reading cost in fish cache
Øyvind Kolås [Wed, 26 Jan 2022 14:03:01 +0000 (15:03 +0100)]
babl: initialize bpp after reading cost in fish cache

3 years agobabl: make unified alpha conversion branchless
Øyvind Kolås [Wed, 26 Jan 2022 11:23:37 +0000 (12:23 +0100)]
babl: make unified alpha conversion branchless

3 years agobabl: improve LUT debug info
Øyvind Kolås [Wed, 26 Jan 2022 06:59:53 +0000 (07:59 +0100)]
babl: improve LUT debug info

3 years agobabl: add support for 2,2 LUTs
Øyvind Kolås [Wed, 26 Jan 2022 05:03:50 +0000 (06:03 +0100)]
babl: add support for 2,2 LUTs

3 years agobabl: only show active luts during gc on info_level>=4
Øyvind Kolås [Wed, 26 Jan 2022 04:16:45 +0000 (05:16 +0100)]
babl: only show active luts during gc on info_level>=4

3 years agonew symbol babl_fish_get_process
Øyvind Kolås [Wed, 26 Jan 2022 03:38:53 +0000 (04:38 +0100)]
new symbol babl_fish_get_process

This permits some APIs to avoid a function call per dispatch,
specifically the samplers in GeglBuffer.

3 years agobabl: remove optional instrumentation
Øyvind Kolås [Wed, 26 Jan 2022 03:43:30 +0000 (04:43 +0100)]
babl: remove optional instrumentation

3 years agobabl: add LUT debugging configurable through BABL_LUT_INFO environment variable
Øyvind Kolås [Wed, 26 Jan 2022 02:36:35 +0000 (03:36 +0100)]
babl: add LUT debugging configurable through BABL_LUT_INFO environment variable

It is a number ranging from 0 to 5 if with more information provided at
higher levels.

3 years agobabl: measure performance of LUTs and only replace if faster
Øyvind Kolås [Wed, 26 Jan 2022 02:15:14 +0000 (03:15 +0100)]
babl: measure performance of LUTs and only replace if faster

With this also enabling replacement of conversions where spaces do not
differ.

3 years agobabl: LUTs for 16byte destination encodings
Øyvind Kolås [Tue, 25 Jan 2022 11:13:44 +0000 (12:13 +0100)]
babl: LUTs for 16byte destination encodings

3 years agobabl: do LUTs for 1 and 2 byte encodings
Øyvind Kolås [Tue, 25 Jan 2022 07:22:02 +0000 (08:22 +0100)]
babl: do LUTs for 1 and 2 byte encodings

3 years agotools: add RGB variants to babl-benchmark
Øyvind Kolås [Tue, 25 Jan 2022 05:34:16 +0000 (06:34 +0100)]
tools: add RGB variants to babl-benchmark

3 years agobabl: also do auto LUTs for 3-3 bpp and 3-4bpp paths
Øyvind Kolås [Mon, 24 Jan 2022 10:08:28 +0000 (11:08 +0100)]
babl: also do auto LUTs for 3-3 bpp and 3-4bpp paths

3 years agobabl: lut remove unused u16 code
Øyvind Kolås [Mon, 24 Jan 2022 07:04:40 +0000 (08:04 +0100)]
babl: lut remove unused u16 code

3 years agotools: use rand() as fallback of random().
Jehan [Mon, 24 Jan 2022 14:11:34 +0000 (15:11 +0100)]
tools: use rand() as fallback of random().

This fixes building babl on Windows as the random() API is not available
there (unlike rand()). Windows docs says it's not cryptographically
secure but for this tool usage, it's probably enough and I see we use
the same function replacement tricks on other tool sources.

3 years agoRevert "make trampoline for lut processing"
Øyvind Kolås [Mon, 24 Jan 2022 06:39:06 +0000 (07:39 +0100)]
Revert "make trampoline for lut processing"

This reverts commit b3e884edf3b5c58fb4c2cede1346bd8a9d9c4a1e.

benchmarking on x86_64 saw no effect, and as a surprise on arm
it pessimises performance.

3 years agobuild: fix append of sse2 cflags
Øyvind Kolås [Mon, 24 Jan 2022 06:30:46 +0000 (07:30 +0100)]
build: fix append of sse2 cflags

3 years agomake trampoline for lut processing
Øyvind Kolås [Mon, 24 Jan 2022 06:05:12 +0000 (07:05 +0100)]
make trampoline for lut processing

3 years agobuild: append list of one element rather than string
Øyvind Kolås [Mon, 24 Jan 2022 06:26:54 +0000 (07:26 +0100)]
build: append list of one element rather than string

3 years agotools: add babl-lut-verify
Øyvind Kolås [Mon, 24 Jan 2022 06:24:54 +0000 (07:24 +0100)]
tools: add babl-lut-verify

3 years agoctx: factor lut processing out of path_process
Øyvind Kolås [Mon, 24 Jan 2022 06:01:12 +0000 (07:01 +0100)]
ctx: factor lut processing out of path_process

3 years agobabl: LUTs fix typo in timelimit check
Øyvind Kolås [Mon, 24 Jan 2022 03:30:15 +0000 (04:30 +0100)]
babl: LUTs fix typo in timelimit check

3 years agobabl: free LUTs that have been unused for more than 5 minutes
Øyvind Kolås [Mon, 24 Jan 2022 02:56:09 +0000 (03:56 +0100)]
babl: free LUTs that have been unused for more than 5 minutes

3 years agobabl: lut, tidy u8 code - disable u16/half variant
Øyvind Kolås [Mon, 24 Jan 2022 00:57:20 +0000 (01:57 +0100)]
babl: lut, tidy u8 code - disable u16/half variant

3 years agobabl: avoid using half initialized LUTs when used from threads
Øyvind Kolås [Sun, 23 Jan 2022 22:35:34 +0000 (23:35 +0100)]
babl: avoid using half initialized LUTs when used from threads

3 years agobabl: add sse2 flags when building RGB converter
Øyvind Kolås [Sun, 23 Jan 2022 22:16:59 +0000 (23:16 +0100)]
babl: add sse2 flags when building RGB converter

3 years agobabl: LUT cleanups
Øyvind Kolås [Sun, 23 Jan 2022 22:16:38 +0000 (23:16 +0100)]
babl: LUT cleanups

3 years agobabl: use LUT for 16bit to 8bit conversions
Øyvind Kolås [Sun, 23 Jan 2022 13:24:00 +0000 (14:24 +0100)]
babl: use LUT for 16bit to 8bit conversions

3 years agobabl: remove some now dead u8 code
Øyvind Kolås [Sun, 23 Jan 2022 11:08:14 +0000 (12:08 +0100)]
babl: remove some now dead u8 code

3 years agobabl: add lut for some u8 conversions
Øyvind Kolås [Sun, 23 Jan 2022 10:54:17 +0000 (11:54 +0100)]
babl: add lut for some u8 conversions

The fish path now marks created fishes that shall be monitored for
usage and have full 24bit LUTs generated on demand when limits are
exceeded. This 3-4x increases the throughput.

3 years agotools: rework babl-benchmark to operate on sets resembling workingspace + GEGL +...
Øyvind Kolås [Sun, 23 Jan 2022 06:30:28 +0000 (07:30 +0100)]
tools: rework babl-benchmark to operate on sets resembling workingspace + GEGL + display

3 years agobabl: add u8 code paths to trc/matrix space conversion
Øyvind Kolås [Sun, 23 Jan 2022 04:21:21 +0000 (05:21 +0100)]
babl: add u8 code paths to trc/matrix space conversion

This is relevant for ARM, on modern x86_64 at least it is cheaper to
convert to/from float with external loops.

3 years agobabl: adjust default path parameters to a path_length of 3
Øyvind Kolås [Sun, 23 Jan 2022 03:18:01 +0000 (04:18 +0100)]
babl: adjust default path parameters to a path_length of 3

Also adjust so that the max additional bits of depth is 2, this makes us
catch some fast paths that are missed by very promising slow two-step
converters.

3 years agobabl: remove allocations in u8 variants of RGB space conversions
Øyvind Kolås [Sun, 23 Jan 2022 02:41:22 +0000 (03:41 +0100)]
babl: remove allocations in u8 variants of RGB space conversions

3 years agobabl: cpuaccel fix arm neon detect
Øyvind Kolås [Sun, 23 Jan 2022 01:51:19 +0000 (02:51 +0100)]
babl: cpuaccel fix arm neon detect

3 years agobabl: cpuaccel fix arm neon detect
Øyvind Kolås [Sun, 23 Jan 2022 01:50:42 +0000 (02:50 +0100)]
babl: cpuaccel fix arm neon detect

3 years agobabl: add more missing SIMD build related files
Øyvind Kolås [Sun, 23 Jan 2022 01:48:02 +0000 (02:48 +0100)]
babl: add more missing SIMD build related files

3 years agobabl: add missing files babl-trc.[ch]
Øyvind Kolås [Sun, 23 Jan 2022 01:46:23 +0000 (02:46 +0100)]
babl: add missing files babl-trc.[ch]

3 years agoextensions/cairo: add a correct enough for 8bit cairo32 to cairo24 conversion
Øyvind Kolås [Sun, 23 Jan 2022 01:44:36 +0000 (02:44 +0100)]
extensions/cairo: add a correct enough for 8bit cairo32 to cairo24 conversion

3 years agoextensions: reduce amount of competing conversions
Øyvind Kolås [Sun, 23 Jan 2022 01:18:46 +0000 (02:18 +0100)]
extensions: reduce amount of competing conversions

Avoid loading extensions if a variant with better SIMD support
is expected to exist. We know all variants that are expectd to
exist and thus can register only the fastest known variant.

This avoids combinatorial explosion of conversions to test.

3 years agotools: babl-verify make verify do space free conversions by default, it is more useful
Øyvind Kolås [Sat, 22 Jan 2022 23:55:57 +0000 (00:55 +0100)]
tools: babl-verify make verify do space free conversions by default, it is more useful

3 years agoextensions: cairo remove a broken conversion, fix RGBA u8 to cairo reference
Øyvind Kolås [Sat, 22 Jan 2022 23:54:20 +0000 (00:54 +0100)]
extensions: cairo remove a broken conversion, fix RGBA u8 to cairo reference

3 years agomultipass build, with SIMD variants for x86_64 and arm
Øyvind Kolås [Sun, 23 Jan 2022 00:10:09 +0000 (01:10 +0100)]
multipass build, with SIMD variants for x86_64 and arm

Some extensions have their own separate build, so does the
RGB color space conversions, trc computations and base
set of conversions.

3 years agobabl: reduce number of pixels tested for paths to 1024, include some out of bounds...
Øyvind Kolås [Sat, 22 Jan 2022 23:53:25 +0000 (00:53 +0100)]
babl: reduce number of pixels tested for paths to 1024, include some out of bounds pixels in start

3 years agobase: x86-64-v2 and x86-64-v3 variants
Øyvind Kolås [Sat, 22 Jan 2022 00:26:17 +0000 (01:26 +0100)]
base: x86-64-v2 and x86-64-v3 variants

3 years agobuild: enable -ftree-vectorize always, and -mfpu=neon on aarch64
Øyvind Kolås [Fri, 21 Jan 2022 23:06:37 +0000 (00:06 +0100)]
build: enable -ftree-vectorize always, and -mfpu=neon on aarch64

3 years agobabl: sync cpuaccel with GEGL
Øyvind Kolås [Fri, 21 Jan 2022 23:02:43 +0000 (00:02 +0100)]
babl: sync cpuaccel with GEGL

3 years agogitlab-ci: disable paccache, trying to unbreak build
Øyvind Kolås [Mon, 17 Jan 2022 18:19:46 +0000 (19:19 +0100)]
gitlab-ci: disable paccache, trying to unbreak build

3 years agobabl: set ecx to 0 in cpuid
Øyvind Kolås [Mon, 17 Jan 2022 18:07:07 +0000 (19:07 +0100)]
babl: set ecx to 0 in cpuid

This is neccesary to be able to detect AVX2 reliably.

4 years agotests: add a xyz to lab test
Øyvind Kolås [Sat, 30 Oct 2021 02:55:05 +0000 (04:55 +0200)]
tests: add a xyz to lab test

This is testing D50 XYZ to D50 CIE Lab the use of D50 for all XYZ and
Lab is currently implicit in all babl code.

4 years agoOklab: disable only Oklch not Oklab
Øyvind Kolås [Fri, 29 Oct 2021 01:34:36 +0000 (03:34 +0200)]
Oklab: disable only Oklch not Oklab

Oklab itself is enabled by default now for testing, but does not seem to
produce correct values with the Oklab test vectors, even with manual
attempt at converting the test vector (presumed) CIE XYZ D65 to CIE XYZ
D50 before running the conversion.

The failure to pass symmetry tests as mentioned in issue #63 seems to be
limited to Oklch, Oklab itself is fine.

4 years agooklab: add double variant of code for model conversions
Øyvind Kolås [Thu, 28 Oct 2021 23:16:48 +0000 (01:16 +0200)]
oklab: add double variant of code for model conversions