weston/libweston
Vitaly Prosyak 6678f8150c color-lcms: add support for matrices
This patch adds the essential LittleCMS color pipeline optimizations and
analysis that is necessary for extracting matrices from pipelines
correctly. When we can extract a matrix and 1D curve sets, we can use
those with GL-renderer without needing an inherently heavy and imprecise
3D LUT. This should improve color transformation precision and
performance when a 3D LUT is not necessary.

The core of the optimization and analysis is a custom plugin for
LittleCMS. The optimization step comprises of repeatedly merging
sequential matrices and sequential curve sets into one and eliminating
identity elements which may allow for more merging. The analysis step
takes the optimized LittleCMS pipeline and attempts to fit all of its
elements into the weston_color_transform model. If it fits, we have an
optimized color transformation and do not need a 3D LUT. If it does not
fit, we use a 3D LUT as before.

Co-authored-by: Pekka Paalanen <pekka.paalanen@collabora.com>
Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
2022-09-28 10:28:28 +00:00
..
backend-drm gl-renderer: pass initial output area explicitly 2022-09-23 12:42:05 +00:00
backend-headless gl-renderer: pass initial output area explicitly 2022-09-23 12:42:05 +00:00
backend-rdp backend-rdp: use resize_output with pixman-renderer 2022-09-23 12:42:05 +00:00
backend-wayland backend-wayland: always propagate touch frame event 2022-09-24 13:54:57 +02:00
backend-x11 backend-x11: use resize_output with GL-renderer 2022-09-23 12:42:05 +00:00
color-lcms color-lcms: add support for matrices 2022-09-28 10:28:28 +00:00
desktop libweston/desktop: Migrate libweston-desktop/libweston-desktop.h 2022-09-23 13:57:26 +03:00
renderer-gl gl-renderer: add matrix 2022-09-28 10:28:28 +00:00
animation.c Fix indentation all through the project 2021-07-31 15:28:20 +00:00
backend.h libweston: rename weston_output_region_from_global 2022-09-23 11:41:59 +00:00
bindings.c Don't send compositor's global key bindings to the input method 2022-02-23 15:40:33 +02:00
clipboard.c libweston: correct argument name in the handler of wl_data_source.accept 2022-04-14 12:05:57 +00:00
color-noop.c libweston: add HDR metadata to weston_output 2022-05-27 10:30:35 +00:00
color.c backend-drm: check for HDR_OUTPUT_METADATA 2022-05-02 12:19:24 +00:00
color.h gl-renderer: add matrix 2022-09-28 10:28:28 +00:00
compositor.c libweston: add weston_renderer::resize_output() 2022-09-23 12:42:05 +00:00
content-protection.c content-protection: Don't leak update timer on shutdown 2021-12-08 13:38:18 +00:00
data-device.c libweston: Add weston_surface_map() wrapper 2022-06-16 12:17:15 +03:00
dbus.c dbus: Don't return value from void function 2019-06-11 11:31:04 +01:00
dbus.h Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
drm-formats.c drm-formats: add weston_drm_format_array_count_pairs() 2021-11-25 10:47:45 -03:00
git-version.h.meson Add Meson build system 2018-12-09 14:50:54 +02:00
input.c input: send touch frame event after up event 2022-09-24 13:54:57 +02:00
launcher-impl.h launchers: Remove --tty option 2022-03-03 17:00:15 -06:00
launcher-libseat.c libweston: Enable logging for libseat launcher 2022-03-10 17:13:16 +02:00
launcher-logind.c launcher-logind: Don't check wl->vtnr before returning it. 2022-03-16 13:12:20 +00:00
launcher-util.c launchers: Remove --tty option 2022-03-03 17:00:15 -06:00
launcher-util.h launchers: Remove --tty option 2022-03-03 17:00:15 -06:00
libinput-device.c Fix indentation all through the project 2021-07-31 15:28:20 +00:00
libinput-device.h Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
libinput-seat.c libinput-seat: Cascade errors and bail out in case of failure 2021-11-25 10:47:04 +02:00
libinput-seat.h Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
libweston-internal.h libweston: add weston_renderer::resize_output() 2022-09-23 12:42:05 +00:00
linux-dmabuf.c build: fix possible race/error for some backends 2022-06-20 16:14:01 +03:00
linux-dmabuf.h build: fix possible race/error for some backends 2022-06-20 16:14:01 +03:00
linux-explicit-synchronization.c libweston: Advertise minor version 2 of zwp_linux_explicit_synchronization_v1 2019-08-02 15:00:08 +00:00
linux-explicit-synchronization.h libweston: Support zwp_surface_synchronization_v1.set_acquire_fence 2019-02-06 12:21:56 +00:00
linux-sync-file-uapi.h libweston: Introduce an internal linux sync file API 2019-02-06 12:21:56 +00:00
linux-sync-file.c libweston: export weston_linux_sync_file_read_timestamp() 2019-04-18 12:50:55 +03:00
linux-sync-file.h libweston: export weston_linux_sync_file_read_timestamp() 2019-04-18 12:50:55 +03:00
log.c Fix indentation all through the project 2021-07-31 15:28:20 +00:00
meson.build libweston/desktop: Migrate libweston-desktop/libweston-desktop.h 2022-09-23 13:57:26 +03:00
noop-renderer.c libweston: add weston_renderer::resize_output() 2022-09-23 12:42:05 +00:00
pixel-formats.c libweston: add pixel_format_get_info_by_pixman() 2022-08-03 14:33:48 +03:00
pixel-formats.h libweston: add pixel_format_get_info_by_pixman() 2022-08-03 14:33:48 +03:00
pixman-renderer.c pixman-renderer: track framebuffer size explicitly 2022-09-23 12:42:05 +00:00
pixman-renderer.h pixman-renderer: pass initial size explicitly 2022-09-23 12:42:05 +00:00
plugin-registry.c Rename plugin-registry.h to libweston/plugin-registry.h 2019-04-18 12:31:46 +03:00
screenshooter.c libweston: use weston_region_global_to_output more often 2022-09-23 11:41:59 +00:00
spring-tool.c Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
timeline.c libweston: fix typos 2021-02-24 10:01:17 -05:00
timeline.h libweston: move TYPEVERIFY macro into shared 2021-02-17 12:52:33 +00:00
touch-calibration.c libweston: Add weston_surface_map() wrapper 2022-06-16 12:17:15 +03:00
vertex-clipping.c tests: make vertex-clip use WESTON_EXPORT_FOR_TESTS 2022-03-01 13:32:15 +00:00
vertex-clipping.h Rename src/ to libweston/ 2016-06-23 17:44:54 +03:00
weston-direct-display.c libweston: Add weston-direct-display server side implementation 2019-11-18 19:33:09 +02:00
weston-log-file.c weston-log: destroy subscriptions with destruction of subscribers 2020-02-10 10:53:50 +00:00
weston-log-flight-rec.c weston-log: destroy subscriptions with destruction of subscribers 2020-02-10 10:53:50 +00:00
weston-log-internal.h weston-log-wayland: make stream_destroy() use weston_log_subscriber_release() 2020-02-10 10:53:50 +00:00
weston-log-wayland.c Fix indentation all through the project 2021-07-31 15:28:20 +00:00
weston-log.c weston-log: Fix documentation for weston_log_subscription_create 2022-07-01 17:20:18 +03:00