weston/libweston
Pekka Paalanen 599adea6df renderer-gl: create shader blender state and use it
This creates the fragment shader state needed for in-shader blending.
In-shader blending is always enabled if supported:
- GL supports the necessary features, and
- the blend-to-output color curve is exactly invertible.

The exact inverse is required, because the compositor will do repeated
decode-encode cycles per destination pixel, one for each non-opaque
source. Roundtrip errors through decode-encode might accumulate
otherwise. For now, identity, enumerated, and parametric curves are
deemed invertible while LUT is rejected without inspection.

Therefore to make use of this feature, outputs need to be configured with
a non-LUT type EOTF/TRC.

In-shader blending is always enabled, because it should be universally
more efficient than the use of a shadow buffer.

This feature was originally drafted for Weston by Sebastian Wick.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
2026-04-08 21:55:45 +00:00
..
backend-drm drm: Don't test reused states 2026-04-08 08:27:02 -05:00
backend-headless backend-headless: fix undeclared FALSE identifier 2025-12-09 09:41:52 +01:00
backend-pipewire output-capture: Support writeback connector formats 2025-09-25 12:39:23 +02:00
backend-rdp backend-rdp: Add --vmconnect mode for RDP (Hyper-V) 2026-04-07 18:07:45 +03:00
backend-vnc backend-vnc: Add missing aml/neatvnc cleanup in error path 2026-01-12 16:53:12 +00:00
backend-wayland vulkan-renderer: rename output options to surface/surfaceless 2025-09-12 18:04:57 +01:00
backend-x11 vulkan-renderer: rename output options to surface/surfaceless 2025-09-12 18:04:57 +01:00
color-lcms color-lcms: implement parametric-to-icc transforms 2026-02-19 14:38:10 +02:00
desktop desktop-shell: set the new surface label field 2026-03-04 07:28:49 +00:00
perfetto libweston: Add support for perfetto profiling 2025-01-24 12:22:13 +00:00
renderer-gl renderer-gl: create shader blender state and use it 2026-04-08 21:55:45 +00:00
renderer-vulkan libweston/renderer-vulkan: Fix minor warning messages 2026-03-06 16:50:49 +02:00
shell-utils shell-utils: delete weston_shell_utils_surface_get_label() 2026-03-04 09:40:32 +02:00
animation.c animation: Change how we seed the initial time 2025-11-24 12:29:15 -06:00
auth.c libweston: Add user authentication support via PAM 2022-11-23 16:58:48 +01:00
backend.h compositor: return paint node from weston_output_damage_flush_for_plane 2026-02-19 14:35:53 -06:00
bindings.c Revert "shared/helpers.h: Migrate helpers.h to libweston" 2025-01-17 10:18:26 +02:00
clipboard.c Revert "shared/helpers.h: Migrate helpers.h to libweston" 2025-01-17 10:18:26 +02:00
color-management.c libweston: add weston_color_gamut_from_protocol() 2026-03-03 07:41:27 +00:00
color-management.h color: update color-management protocol to wp-v1 2025-02-26 10:09:43 -03:00
color-noop.c libweston: make use of some of the new weston assert 2025-09-15 19:16:17 -03:00
color-operations.c renderer-gl: create shader blender state and use it 2026-04-08 21:55:45 +00:00
color-operations.h renderer-gl: create shader blender state and use it 2026-04-08 21:55:45 +00:00
color-profile-param-builder.c color: add weston_color_profile_param_builder_set_target_primaries_named() 2025-10-09 16:17:57 +00:00
color-properties.c color: shorten the named of primaries 2025-06-17 10:40:03 +03:00
color-properties.h color: fix count_parameters type 2025-06-17 10:40:03 +03:00
color-representation.c libweston: Implement color-representation protocol 2025-12-19 17:08:29 +01:00
color-representation.h libweston: Implement color-representation protocol 2025-12-19 17:08:29 +01:00
color.c libweston: add weston_color_gamut_from_protocol() 2026-03-03 07:41:27 +00:00
color.h compositor: add grayscale output color effect 2026-03-04 13:11:56 -03:00
commit-timing.c compositor: Support the commit-timing protocol 2025-12-16 10:58:01 -06:00
commit-timing.h compositor: Support the commit-timing protocol 2025-12-16 10:58:01 -06:00
compositor.c compositor: Pass the length to opem_stream for one shot scene-graph 2026-04-04 08:11:04 +03:00
content-protection.c cp: Correctly format debug scope for content protection 2025-06-04 17:38:16 +03:00
data-device.c libweston: use new label for drag icons 2026-03-04 07:28:49 +00:00
drm-formats.c drm-formats: add weston_drm_format_array_count_pairs() 2021-11-25 10:47:45 -03:00
fifo.c compositor: Add the fifo-v1 protocol 2025-12-04 14:03:13 -06:00
fifo.h compositor: Add the fifo-v1 protocol 2025-12-04 14:03:13 -06:00
git-version.h.meson Add Meson build system 2018-12-09 14:50:54 +02:00
id-number-allocator.c shared: rename a few weston assert 2025-09-15 19:13:04 -03:00
id-number-allocator.h libweston: add unique id generator 2024-02-13 14:08:38 -03:00
input.c input: Remove a bunch of explicit transform updates 2026-04-02 15:29:55 +03:00
launcher-impl.h launcher: Remove launcher-logind 2023-09-29 09:55:32 -05:00
launcher-libseat.c launcher-libseat: Don't hard-stop on libseat-debug 2025-06-04 17:38:16 +03:00
launcher-util.c launcher: Remove launcher-logind 2023-09-29 09:55:32 -05:00
launcher-util.h launchers: Remove --tty option 2022-03-03 17:00:15 -06:00
libinput-device.c libweston: fix unexpect log when touch device has no output 2026-01-20 09:54:31 +08:00
libinput-device.h libinput: hook up tablet events 2023-03-31 12:10:26 +00:00
libinput-seat.c libinput: support ignoring all libinput-based input devices by configuration 2025-10-21 12:54:42 +03:00
libinput-seat.h Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
libweston-internal.h libweston: remove weston_renderer::read_pixels 2026-03-17 17:31:48 +02:00
linux-dmabuf.c libweston: rename get_supported_formats to get_supported_dmabuf_formats 2025-09-02 13:34:00 +00:00
linux-dmabuf.h linux-dmabuf: Add support for protocol version 5 2024-01-19 18:59:22 +01: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 libweston: Add weston_log_paced() 2022-11-08 08:32:26 -06:00
meson.build Remove WCAP 2026-03-17 15:07:24 +02:00
noop-renderer.c libweston: remove weston_renderer::read_pixels 2026-03-17 17:31:48 +02:00
output-capture.c output-capture: Fix assertions in pull_capture_task() 2025-09-25 17:51:22 +02:00
output-capture.h output-capture: Support writeback connector formats 2025-09-25 12:39:23 +02:00
pixel-formats.c pixel-formats: Add support for compressed YUV 2026-03-30 20:33:55 +01:00
pixel-formats.h pixel-formats: Move FOURCC defines to weston-drm-fourcc.h 2025-06-23 15:03:06 +02:00
pixman-renderer.c libweston: remove weston_renderer::read_pixels 2026-03-17 17:31:48 +02:00
pixman-renderer.h pixman-renderer: Remove renderbuffer_get_image() function 2025-01-21 14:34:31 +01:00
plugin-registry.c Rename plugin-registry.h to libweston/plugin-registry.h 2019-04-18 12:31:46 +03:00
renderer-borders.c libweston: move gl-borders up to weston_renderer 2025-05-18 18:00:08 +02:00
renderer-borders.h libweston: move gl-borders up to weston_renderer 2025-05-18 18:00:08 +02:00
spring-tool.c Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
surface-state.c surface-state: Flag buffer params as dirty if replacing deleted buffer 2026-04-08 08:27:02 -05:00
timeline-perfetto.c perfetto: do not call weston_surface::get_label() 2026-03-04 07:28:49 +00:00
timeline.c libweston: do not call weston_surface::get_label() 2026-03-04 09:40:29 +02:00
timeline.h timeline: Add the TL_POINTs into perfetto data 2025-01-24 12:22:13 +00:00
touch-calibration.c Revert "shared/helpers.h: Migrate helpers.h to libweston" 2025-01-17 10:18:26 +02:00
vertex-clipping.c Revert "shared/helpers.h: Migrate helpers.h to libweston" 2025-01-17 10:18:26 +02:00
vertex-clipping.h gl-renderer: Do not expose clipper_clip() in header 2024-05-30 09:09:45 +00: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 Revert "shared/helpers.h: Migrate helpers.h to libweston" 2025-01-17 10:18:26 +02:00
weston-log-flight-rec.c Revert "shared/helpers.h: Migrate helpers.h to libweston" 2025-01-17 10:18:26 +02: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 weston-log: Add a advertised list of debug scopes 2025-06-04 17:43:33 +03:00
weston-log.c libweston: route log scope printf through FILE 2026-03-10 16:40:40 +02:00
weston-trace.h libweston: Add support for perfetto profiling 2025-01-24 12:22:13 +00:00