babl.git
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

4 years agobabl: adjust sanity criteria for babl_model_is_symmetric
Øyvind Kolås [Thu, 28 Oct 2021 23:13:55 +0000 (01:13 +0200)]
babl: adjust sanity criteria for babl_model_is_symmetric

4 years agooklab: add to meson, register model conversions
Øyvind Kolås [Thu, 28 Oct 2021 21:50:14 +0000 (23:50 +0200)]
oklab: add to meson, register model conversions

4 years agoexport-symbols: add babl_chromatic_adaptation_matrix
Øyvind Kolås [Thu, 28 Oct 2021 21:49:54 +0000 (23:49 +0200)]
export-symbols: add babl_chromatic_adaptation_matrix

4 years agoquick fix
Mingye Wang [Sat, 20 Feb 2021 12:07:13 +0000 (20:07 +0800)]
quick fix

4 years agooklab: chad back to D65
Mingye Wang [Sat, 20 Feb 2021 11:38:45 +0000 (19:38 +0800)]
oklab: chad back to D65

4 years agoexpose chromatic adaptation matrix
Mingye Wang [Sat, 20 Feb 2021 11:33:14 +0000 (19:33 +0800)]
expose chromatic adaptation matrix

4 years agooklab, initial ver
Mingye Wang [Sat, 20 Feb 2021 11:33:03 +0000 (19:33 +0800)]
oklab, initial ver

4 years agogitlab-ci: remove nonexistent meson option enable-sse3
Øyvind Kolås [Thu, 28 Oct 2021 20:54:39 +0000 (22:54 +0200)]
gitlab-ci: remove nonexistent meson option enable-sse3

4 years agopost-release version bump
Øyvind Kolås [Thu, 1 Jul 2021 01:26:28 +0000 (03:26 +0200)]
post-release version bump

4 years agorelease 0.1.88
Øyvind Kolås [Thu, 1 Jul 2021 01:24:39 +0000 (03:24 +0200)]
release 0.1.88

4 years agobabl: re-creation of palette conversions must always set data.
Jehan [Wed, 3 Mar 2021 10:03:38 +0000 (11:03 +0100)]
babl: re-creation of palette conversions must always set data.

If we allow conversions to be recreated for palettes, it will create a
new identical conversion with collision number incremented in the name
and no user data. Yet the user data is extremely important for palette
conversions, because it contains the palette itself which is required by
the palette conversion functions. Hence we end up crashing.

Moreover, although I think that right now, only palette conversions use
the data field, it might be used for other type of data in the future.
In any case, we should always save this data along as it has been stored
there for a reason.

Finally in babl-palette code, make sure the user data is added to the
models before creating the formats and conversions as we also ended up
in crash-happy code when we didn't.

See: https://gitlab.gnome.org/GNOME/gimp/-/issues/6501

4 years agobabl: do not append space to the format name when explicitly set.
Jehan [Wed, 3 Mar 2021 09:54:38 +0000 (10:54 +0100)]
babl: do not append space to the format name when explicitly set.

When a format is named explicitly by the caller, we should just keep the
same name, not tweak it. Generating a name is only valid when no
explicit name is given. Moreover this is the behavior as described in
the docs of babl_format_new():

> If no name is provided a (long) descriptive name is used.

(which usually implies that with a name provided, this one will be used
instead of a generated name)

This is especially important for palette formats for which name is
mostly not descriptive anyway (either caller-set or generated by babl
with incremental number) and this fixes a bug when calling
babl_new_palette_with_space() with the same name and space would fail to
find the already created formats (yet would find the models and return
NULL for both formats) because it would search without the space
description appended. Yet the docs of babl_new_palette*() clearly says
as well:

> If you pass in the same name the previous formats will be provided
> again.

Moreover we actually already tweak a bit the palette format name by
appending the space pointer. No need to tweak it twice appending the
same information (space) in a different way.

See also: https://gitlab.gnome.org/GNOME/gimp/-/issues/6501

4 years agobuild: remove push_web target
Øyvind Kolås [Mon, 3 May 2021 21:26:59 +0000 (23:26 +0200)]
build: remove push_web target

ci/meson has started failing due to missing scp binary.

4 years agobuild: subproject improvements:
John [Fri, 26 Feb 2021 07:19:44 +0000 (07:19 +0000)]
build: subproject improvements:
 - don't expose source in dependency to avoid name clashes
 - add babl path variables to dependency object
 - add babl path variables to uninstalled pc

4 years agopost release version bump
Øyvind Kolås [Fri, 26 Feb 2021 12:07:42 +0000 (13:07 +0100)]
post release version bump

4 years agorelease 0.1.86
Øyvind Kolås [Fri, 26 Feb 2021 12:06:51 +0000 (13:06 +0100)]
release 0.1.86

4 years agoNEWS: update
Øyvind Kolås [Fri, 26 Feb 2021 12:06:20 +0000 (13:06 +0100)]
NEWS: update

4 years agoAnother project can add babl as a subproject
santouits [Sun, 6 Sep 2020 12:16:52 +0000 (15:16 +0300)]
Another project can add babl as a subproject

4 years agoci: remove request for specific arch glibc version
Øyvind Kolås [Thu, 25 Feb 2021 20:51:55 +0000 (21:51 +0100)]
ci: remove request for specific arch glibc version

We're getting the version by forcing a specific base image, and ignoring
glibc updates.

4 years agoci: use archlinux:base-20210214.0.15477 as base for building
Øyvind Kolås [Thu, 25 Feb 2021 20:27:26 +0000 (21:27 +0100)]
ci: use archlinux:base-20210214.0.15477 as base for building

This gives us an arch base from before the glibc version that enforces
a newer glibc package that has a hard dependency on a newer linux
kernel.

4 years agobabl: babl-fish-reference remove superfluous set of dst_img->type[0]
Øyvind Kolås [Thu, 25 Feb 2021 19:15:06 +0000 (20:15 +0100)]
babl: babl-fish-reference remove superfluous set of dst_img->type[0]

As reported by Rafał Mikrut, fixing issue #57.

4 years agoci: Unbreak archlinux-based CI
Bartłomiej Piotrowski [Fri, 19 Feb 2021 09:40:48 +0000 (10:40 +0100)]
ci: Unbreak archlinux-based CI

Recently Arch has changed its glibc package to require kernel
4.4[1] as a poor man's attempt to disable faccessat2 syscall that
is known to cause problems with old libseccomp and Docker. Downgrade
glibc to the pkgrel before the change and ensure it's not upgraded.

Additionally switch to the official Arch Linux image in the library
namespace. The base image has been deprecated.

[1] https://github.com/archlinux/svntogit-packages/commit/893b1c268abc8822332655865e3d4546025a9b4b

4 years agobuild: revert glibc workaround for arch CI
Øyvind Kolås [Thu, 18 Feb 2021 19:45:13 +0000 (20:45 +0100)]
build: revert glibc workaround for arch CI

4 years agobuild: add -y parameter to glibc pacman workaround
Øyvind Kolås [Thu, 18 Feb 2021 19:38:14 +0000 (20:38 +0100)]
build: add -y parameter to glibc pacman workaround

4 years agobuild: attempt forcing of older glibc to unbreak CI
Øyvind Kolås [Thu, 18 Feb 2021 19:36:12 +0000 (20:36 +0100)]
build: attempt forcing of older glibc to unbreak CI

4 years agoicc: make babl_space_from_icc threadsafe
Øyvind Kolås [Wed, 3 Feb 2021 00:08:27 +0000 (01:08 +0100)]
icc: make babl_space_from_icc threadsafe

When multiple threads concurrently try to use ICC profiles / spaces
races during construction could cause broken internal representation of
profiles.

4 years agoicc: add offset bounds checks to read_sign
Øyvind Kolås [Wed, 3 Feb 2021 00:00:16 +0000 (01:00 +0100)]
icc: add offset bounds checks to read_sign

4 years agobabl: support creating babl spaces from input-class ICC profiles
Øyvind Kolås [Sat, 23 Jan 2021 16:00:21 +0000 (17:00 +0100)]
babl: support creating babl spaces from input-class ICC profiles

5 years agopost release version bump
Øyvind Kolås [Thu, 17 Dec 2020 10:33:33 +0000 (11:33 +0100)]
post release version bump

5 years agorelease 0.1.84
Øyvind Kolås [Thu, 17 Dec 2020 10:32:34 +0000 (11:32 +0100)]
release 0.1.84

5 years agobabl: fix bug in caching of CMYK profiles
Øyvind Kolås [Mon, 30 Nov 2020 04:11:18 +0000 (05:11 +0100)]
babl: fix bug in caching of CMYK profiles

The check for duplicates was gumming up the CMYK profile initialization,
causing babl internal CMYK to be used instead and the original icc
profile to be lost.

5 years agopost release version bump
Øyvind Kolås [Sun, 4 Oct 2020 16:46:49 +0000 (18:46 +0200)]
post release version bump

5 years agorelease 0.1.82
Øyvind Kolås [Sun, 4 Oct 2020 16:37:19 +0000 (18:37 +0200)]
release 0.1.82

5 years agobabl: code handling ICC v4, CIE TRC formulas
Øyvind Kolås [Fri, 7 Aug 2020 21:12:15 +0000 (23:12 +0200)]
babl: code handling ICC v4, CIE TRC formulas

5 years agobabl: expand sRGB formula trc storage with 2 more parameters
Øyvind Kolås [Fri, 7 Aug 2020 20:03:51 +0000 (22:03 +0200)]
babl: expand sRGB formula trc storage with 2 more parameters

5 years agobabl: handle 7 parameter ICC v4 TRCs
Øyvind Kolås [Fri, 7 Aug 2020 19:59:36 +0000 (21:59 +0200)]
babl: handle 7 parameter ICC v4 TRCs

5 years agopost release version bump
Øyvind Kolås [Sun, 2 Aug 2020 20:25:44 +0000 (22:25 +0200)]
post release version bump

5 years agorelease 0.1.80
Øyvind Kolås [Sun, 2 Aug 2020 20:15:15 +0000 (22:15 +0200)]
release 0.1.80

5 years agoexport-symbold: add babl_space_get_gamma
Øyvind Kolås [Thu, 9 Jul 2020 15:36:07 +0000 (17:36 +0200)]
export-symbold: add babl_space_get_gamma

5 years agoadd new API babl_space_get_gamma
Øyvind Kolås [Wed, 8 Jul 2020 20:19:11 +0000 (22:19 +0200)]
add new API babl_space_get_gamma

A need that has arisen in PNG export is knowing if the gamma is a simple
gamma and the gAMA tag can be used instead of a full ICC profile.

5 years agoRevert "Revert "build: clean up version script handling""
Michael Catanzaro [Mon, 29 Jun 2020 18:35:29 +0000 (18:35 +0000)]
Revert "Revert "build: clean up version script handling""

This reverts commit fae1260c751f963863ed8f3feb25d81914b93ada

5 years agoRevert "build: clean up version script handling"
Michael Catanzaro [Mon, 29 Jun 2020 13:11:33 +0000 (13:11 +0000)]
Revert "build: clean up version script handling"

This reverts commit 5cf4fdf01da2a905553d687116b24f0242e9b6b5

5 years agobabl: avoid potential NULL deref of malloc result in ICC code
Øyvind Kolås [Sat, 13 Jun 2020 21:20:42 +0000 (23:20 +0200)]
babl: avoid potential NULL deref of malloc result in ICC code

5 years agoBuild: change can run flag name for clarity
John Marshall [Thu, 25 Jun 2020 07:02:03 +0000 (08:02 +0100)]
Build: change can run flag name for clarity
- change cc_can_run to can_run_host_binaries (per upcoming meson change)

5 years agobuild: add dependency checks for gir/vala
John Marshall [Thu, 25 Jun 2020 06:07:48 +0000 (07:07 +0100)]
build: add dependency checks for gir/vala

5 years agobuild: gir - set nsversion from api_version var
John Marshall [Wed, 24 Jun 2020 19:14:34 +0000 (20:14 +0100)]
build: gir - set nsversion from api_version var

5 years agobuild: clean up version script handling
John Marshall [Wed, 24 Jun 2020 17:00:38 +0000 (18:00 +0100)]
build: clean up version script handling
- ensure that symbol list dependency is correctly handled
- add shebang to python script to let meson do the interpreter selection

5 years agobuild: only check for link arg --no-undefined once
John Marshall [Wed, 24 Jun 2020 15:45:10 +0000 (16:45 +0100)]
build: only check for link arg --no-undefined once

5 years agobuild: code cleanup
John Marshall [Sun, 7 Jun 2020 14:54:43 +0000 (15:54 +0100)]
build: code cleanup

5 years agobuild: fix build failure
John Marshall [Sun, 7 Jun 2020 14:53:29 +0000 (15:53 +0100)]
build: fix build failure
- check for usnsupported args with clang cross-compile to windows

5 years agobuild: remove unnecessary environment variables
John Marshall [Wed, 24 Jun 2020 09:57:26 +0000 (10:57 +0100)]
build: remove unnecessary environment variables

5 years agogit: remove obsolete .gitignore files
John Marshall [Wed, 20 May 2020 09:50:07 +0000 (10:50 +0100)]
git: remove obsolete .gitignore files

5 years agobuild: improve gir build
John Marshall [Wed, 20 May 2020 14:10:10 +0000 (15:10 +0100)]
build: improve gir build
- change build option to auto/true/false
- auto=false if cross build true otherwise

5 years agobuild: improve portability of git-version.h gen
John Marshall [Tue, 2 Jun 2020 16:01:21 +0000 (17:01 +0100)]
build: improve portability of git-version.h gen
- use git to check if building from a git repo
- remove dependency on test program

5 years agobuild: add build path variables
John Marshall [Wed, 27 May 2020 11:20:10 +0000 (12:20 +0100)]
build: add build path variables
  - add build path variables for library and extensions

5 years agobuild: add configuration message
John Marshall [Wed, 20 May 2020 14:23:48 +0000 (15:23 +0100)]
build: add configuration message
- list configured options and features in a similar manner to GEGL

5 years agobuild: improve build checks
John Marshall [Wed, 20 May 2020 11:44:37 +0000 (12:44 +0100)]
build: improve build checks
- reverse order of cpu extension checks and compiler argument checks
-  so  we don't check disabled options

5 years agobuild: remove obsolete file
John Marshall [Wed, 20 May 2020 11:35:35 +0000 (12:35 +0100)]
build: remove obsolete file
 - xml_insert.sh

5 years agobuild: improve doc build
John Marshall [Wed, 20 May 2020 11:34:44 +0000 (12:34 +0100)]
build: improve doc build
- change build option to auto/true/false
- auto=false if cross build true otherwise
- replace xml_insert.sh with python script to allow doc gen on msys

5 years agobuild: reformat meson_options.txt to improve readability
John Marshall [Wed, 20 May 2020 11:21:45 +0000 (12:21 +0100)]
build: reformat meson_options.txt to improve readability

5 years agodocs: clean up docs
John Marshall [Wed, 20 May 2020 09:36:00 +0000 (10:36 +0100)]
docs: clean up docs
- add news to table of contents
- change authors header level to 2 for consistency

5 years agobabl: post release version bump
Øyvind Kolås [Sun, 7 Jun 2020 17:40:34 +0000 (19:40 +0200)]
babl: post release version bump

5 years agorelease 0.1.78
Øyvind Kolås [Sun, 7 Jun 2020 17:37:00 +0000 (19:37 +0200)]
release 0.1.78

5 years agobabl: s/__GNU_SOURCE/_GNU_SOURCE/ fixing issue #59
Øyvind Kolås [Sun, 7 Jun 2020 16:47:57 +0000 (18:47 +0200)]
babl: s/__GNU_SOURCE/_GNU_SOURCE/ fixing issue #59

5 years agopalette: annotate BablPalette::radii as atomic
Ell [Sun, 7 Jun 2020 16:59:14 +0000 (19:59 +0300)]
palette: annotate BablPalette::radii as atomic

5 years agotests: use putenv when setting env vars, for win32 compatibility
Øyvind Kolås [Thu, 28 May 2020 12:07:20 +0000 (14:07 +0200)]
tests: use putenv when setting env vars, for win32 compatibility

5 years agopost release version bump
Øyvind Kolås [Wed, 27 May 2020 03:19:08 +0000 (05:19 +0200)]
post release version bump

5 years agorelease babl-0.1.76
Øyvind Kolås [Wed, 27 May 2020 02:46:49 +0000 (04:46 +0200)]
release babl-0.1.76

5 years agoNEWS: update
Øyvind Kolås [Wed, 27 May 2020 01:58:39 +0000 (03:58 +0200)]
NEWS: update

5 years agotests: add test that creates the base fishes expected by GIMP
Øyvind Kolås [Thu, 14 May 2020 15:55:05 +0000 (17:55 +0200)]
tests: add test that creates the base fishes expected by GIMP

5 years agobabl: extend BABL_DEBUG_MISSING output
Øyvind Kolås [Sun, 24 May 2020 18:01:54 +0000 (20:01 +0200)]
babl: extend BABL_DEBUG_MISSING output

Report lengths of all searched for fishes.

5 years agobabl: improve debug output for BABL_DEBUG_MISSING
Øyvind Kolås [Sun, 24 May 2020 02:53:23 +0000 (04:53 +0200)]
babl: improve debug output for BABL_DEBUG_MISSING

Report both missing fishes and fishes that occur at the maximum search
depth.

5 years agobabl: increase precision of error included in babl-fishes cache
Øyvind Kolås [Sun, 24 May 2020 02:04:15 +0000 (04:04 +0200)]
babl: increase precision of error included in babl-fishes cache