llyyr
6e1c8748ff
render: introduce bt.1886 transfer function
2025-10-04 18:13:37 +05:30
Félix Poisot
d8fb7adcf0
scene, render: use Gamma 2.2 TF as default
2025-10-03 19:48:12 +00:00
Félix Poisot
c2d9ae2142
render: introduce Gamma 2.2 color transform
2025-10-03 19:39:17 +00:00
David Turner
a4eb2cff46
color-representation-v1: Add wlr enums + converters
...
Add wlr-internal enums for the properties specified in
color-representation-v1 (encoding, range, chroma siting, alpha mode) so
that other parts of wlroots can use these without depending on the
protocol specifics and without needing to include the protocol headers.
Also add conversion functions to convert the protocol enum values into
the wlroots enum values.
2025-07-17 16:41:14 +01:00
Simon Ser
fa1feb447f
render, render/vulkan: add primaries to wlr_render_texture_options
2025-06-18 19:37:55 +00:00
Simon Ser
dd3d9be41e
render/pass: add wlr_render_texture_options.transfer_function
...
Also add a bit in wlr_renderer.features to indicate support.
2025-06-18 19:37:55 +00:00
Simon Ser
0ee0452af0
render/color, render/vulkan: add EXT_LINEAR to enum wlr_color_transfer_function
2025-06-18 19:37:55 +00:00
Simon Ser
4470683591
render/color, render/vulkan: add support for PQ transfer function
2025-06-18 00:11:31 +02:00
Simon Ser
f3524de980
render, render/vulkan: add primaries to wlr_buffer_pass_options
2025-06-18 00:07:35 +02:00
Simon Ser
74217a4d93
render/color: introduce COLOR_TRANSFORM_LUT_3X1D
...
This will be useful to apply LUTs applied via wlr_gamma_control_v1,
and to add wlr_color_transform support to wlr_output.
2025-06-16 09:06:10 +00:00
Simon Ser
10b8880fc7
render/color: add wlr_color_transfer_function_get_default_luminance()
2025-03-30 16:21:26 +02:00
Simon Ser
50537e2e6f
render/color: introduce enum wlr_color_transfer_function
2025-03-30 16:21:26 +02:00
Simon Ser
7d076d0bc9
render/color: introduce wlr_color_named_primaries
2025-03-30 16:21:26 +02:00
Simon Ser
156201fe71
render/color: add wlr_color_primaries_to_xyz()
2025-03-30 16:21:26 +02:00
Alexander Orzechowski
c1eb053f5e
render/drm_syncobj: Remove the ready signal from timeline_waiter
...
It's unused.
2025-01-26 18:02:14 -05:00
Alexander Orzechowski
82223e451a
render/drm_syncobj: Add a callback when ready
...
The old approach of using a signal is fundamentally broken for a common
usecase: When the waiter is ready, it's common to immediately finish and
free any resources associated with it.
Because of the semantics of wl_signal_emit_mutable() this is UB.
wl_signal_emit_mutable() always excepts that the waiter hasn't been freed
until the signal has finished being emitted.
Instead of over engineering the solution, let's just add a callback required
by wlr_drm_syncobj_timeline_waiter_init(). In this callback, the implementation
is free to finish() or free() any resource it likes.
2025-01-26 18:02:05 -05:00
Simon Ser
ca29f43a54
render/drm_syncobj: add addon set
2024-11-11 15:22:22 +00:00
Kenny Levinsen
70d3635985
drm_format_set: Add wlr_drm_format_set_remove
...
wlr_drm_format_set_remove lets you remove a modifier from the specified
format, useful for filtering implicit modifiers.
2024-11-08 13:45:05 +01:00
Kirill Primak
1520be3c5c
Make all listeners private
2024-10-28 18:07:02 +00:00
Kirill Primak
6006023a37
Use WLR_PRIVATE for private fields
2024-10-25 07:51:51 +03:00
Simon Ser
fa2abbeefb
render/color: return tranform in wlr_color_transform_ref()
...
This is more consistent with the rest of the wlroots APIs and is
more concise.
2024-08-24 11:07:58 +02:00
Alexander Orzechowski
bfcaa4bc44
swapchain, damage_ring: Drop buffer age
2024-08-21 09:45:54 -04:00
Simon Ser
edb867bc05
render/drm_syncobj: add wlr_drm_syncobj_timeline_export()
2024-08-06 17:37:06 +00:00
Simon Ser
5552de65f8
render/drm_syncobj: add wlr_drm_syncobj_timeline_transfer()
2024-08-06 17:37:06 +00:00
Simon Ser
a1635fdb76
render: add explicit sync API
2024-08-06 17:37:06 +00:00
Simon Ser
d9bfb47648
render/drm_syncobj: add helpers to wait for timeline points
...
References: https://patchwork.freedesktop.org/patch/506761/
2024-06-12 18:39:45 +02:00
Simon Ser
ea75aa3065
render/drm_syncobj: add wlr_drm_syncobj_timeline_import()
2024-06-12 18:38:42 +02:00
Simon Ser
7fc00ef777
render/drm_syncobj: introduce wlr_drm_syncobj_timeline
...
wlr_drm_syncobj_timeline is a synchronization primitive based on
drm_syncobj timelines. They are heavily inspired from Vulkan
timeline semaphores [1].
[1]: https://www.khronos.org/blog/vulkan-timeline-semaphores
2024-06-12 17:45:06 +02:00
Simon Ser
8cd58bc53c
render/allocator: document struct wlr_allocator
2024-05-25 13:28:19 +00:00
Manuel Stoeckl
82b4bc3f5f
renderer: add field to indicate color transform support
2024-04-26 17:17:36 +00:00
Manuel Stoeckl
ffdbfdbbbd
render/vulkan: add support for output color transforms
2024-04-26 17:17:36 +00:00
Simon Ser
895e3d18b9
render/color: introduce wlr_color_transform
...
Co-authored-by: Manuel Stoeckl <code@mstoeckl.com>
2024-04-26 17:17:36 +00:00
Simon Ser
ebef710746
renderer: replace get_render_buffer_caps() with struct field
2024-04-22 11:38:30 +02:00
Simon Ser
0686666cf5
render: drop wlr_renderer_get_dmabuf_texture_formats()
...
wlr_renderer_get_texture_formats() with WLR_BUFFER_CAP_DMABUF is
the replacement.
2024-04-21 11:27:29 +00:00
Simon Ser
85c1eda721
render: unify getter for texture formats
...
Instead of having separate getters for shm formats and DMA-BUF
formats, use the same pattern as wlr_output_impl.get_primary_formats
with a single function which takes buffer caps as input.
2024-04-21 11:27:29 +00:00
Roman Gilg
3531007b75
render/pixman: add wlr_pixman_renderer_get_buffer_image()
...
This is similar to wlr_pixman_texture_get_image and can be useful for
compositors to access the rendering data.
2023-12-11 19:47:55 +01:00
Simon Ser
1f64f3925c
render/gles2: add wlr_gles2_renderer_get_buffer_fbo()
...
Replacement for wlr_gles2_renderer_get_current_fbo(). Wayfire uses
it for instance.
2023-12-05 18:57:43 +01:00
Alexander Orzechowski
6e03d3015e
swapchain: Add wlr_swapchain_has_buffer
2023-12-03 05:29:05 +00:00
Alexander Orzechowski
d3a339a03e
renderer: Drop buffer binding
2023-11-30 20:11:50 -05:00
Alexander Orzechowski
3ed1268f64
render: Nuke old read pixels API
...
Sadly, the new API is not backwards compatible with the old API. Since
we have already switched all users in wlroots to the new API compositors
are already practically mandated to implement the new API. Let's get rid
of the old one since there is no point.
2023-11-30 20:01:12 -05:00
Alexander Orzechowski
57b18d26d0
wlr_texture: Introduce wlr_texture_preferred_read_format
2023-11-30 19:56:54 -05:00
Alexander Orzechowski
e85e8bc324
wlr_texture: Introduce wlr_texture_read_pixels_options helpers
2023-11-30 19:55:51 -05:00
Alexander Orzechowski
4c6caa7c48
wlr_texture: Introduce wlr_texture_read_pixels
2023-11-30 19:55:12 -05:00
Simon Ser
e8b187cc92
render/gles2: save/restore context when creating/submitting a render pass
...
This is useful for e.g. lazily blitting a texture for readback
purposes while rendering.
2023-11-30 17:47:11 +01:00
Simon Ser
1208ba6c28
render/gles2: document EGL context gotchas
2023-11-30 17:46:50 +01:00
Alexander Orzechowski
d7ecdad4e0
render: Drop rendering_with_buffer
...
This is always true now that we can only render with a buffer.
2023-11-29 16:00:24 -05:00
Alexander Orzechowski
3faf9883dc
renderer: Drop wlr_renderer_begin
2023-11-29 15:13:24 -05:00
Simon Ser
41494244df
render: drop legacy rendering API
2023-11-22 11:43:05 +01:00
Simon Ser
e58c7bb792
render/drm_format_set: use published kernel doc URL
...
The kernel patch has been merged, so this is available in the
official docs now.
2023-10-05 21:29:25 +00:00
Alexander Orzechowski
5299d973d5
render/pass: Introduce wlr_render_rect_options_get_box
2023-09-21 02:25:34 -04:00