Simon Ser
b2d09cdee9
render/vulkan: add wlr_vk_render_pass.render_buffer_out
...
Simplifies the logic and prepares for a new render setup.
2025-09-20 10:50:22 +00:00
Simon Ser
35eba5f2fe
render/vulkan: add wlr_vk_render_pass.render_setup
...
Simplifies the logic and prepares for a new render setup.
2025-09-20 10:50:22 +00:00
Simon Ser
a91f96b391
render/vulkan: introduce wlr_vk_render_buffer_out
...
Holds common state for final output buffer targets.
2025-09-20 10:50:22 +00:00
Simon Ser
54374b6fe6
render/vulkan: rename plain to two_pass
...
We will introduce a new subpass without any post-processing step.
Rename "plain" so that there's no confusion.
2025-09-20 10:50:22 +00:00
tokyo4j
102a6bd415
input-method: use NULL when emitting signals
2025-09-08 10:56:57 -04:00
tokyo4j
06aacb2a6f
input-method: rename input_method event to new_input_method
2025-09-08 10:56:57 -04:00
Simon Zeni
0166fd9eb7
drm-lease-v1: remove connector active_lease & lease connectors
...
Upon leasing, the wlr_drm_lease_connector_v1 will be automatically clean up by the wlr_output
destroy handler. There is no need for the wlr_drm_lease_manager to keep track of leased connectors.
2025-08-28 16:33:35 +00:00
Simon Zeni
423afc3fc9
types: deprecate wlr-screencopy-unstable-v1
2025-08-28 16:23:56 +00:00
rewine
b799ffc6ae
docs: deprecate legacy wlr_data_control_v1 interface
...
Add deprecation notice for wlr_data_control_v1, indicating that
it's superseded by ext-data-control-v1.
Related: https://gitlab.freedesktop.org/wlroots/wlr-protocols/-/merge_requests/136
2025-08-27 14:53:28 -04:00
Kirill Primak
ad1b2f2819
Avoid including generated headers publicly where possible
...
This is possible now that w-p ships enum headers. The remaining includes
are from wlr-protocols.
2025-08-13 22:46:37 +02:00
Kirill Primak
812675ba34
fixes: add implementation
2025-08-13 20:41:21 +00:00
Simon Ser
7392b3313a
backend, output: send commit events after applying all in wlr_backend_commit()
...
We were iterating over involved outputs, applying the new state and
sending the commit event for each one. This resulted in commit
events being fired while we weren't done applying the new state for
all outputs.
Fix this by first applying all of the states, then firing all of
the events.
Closes: https://github.com/swaywm/sway/issues/8829
2025-08-12 19:04:05 +02:00
rewine
c8b7600adc
wlr_ext_data_control_v1: Make all listeners private
...
For more context, see: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4873
2025-07-30 12:37:19 +00:00
Simon Ser
47a90d6f1a
color_management_v1: add helpers to convert TF/primaries enums
...
This makes it easier for protocol implementers to tie everything
together with wlroots backends and renderers.
2025-07-24 15:02:39 +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
David Turner
eff620770c
color-representation-v1: new protocol
...
Add a minimal implementation of the color-representation-v1 protocol
(not including anything to actually use the new properties in
rendering/scanout)
2025-07-17 16:40:45 +01:00
David Turner
f5dc6416f0
util/mem: Move memdup to new util/mem.c file
...
This seems handy and I want to use this in wlr_color_representation.
2025-07-17 16:39:58 +01:00
Simon Ser
f4327f52cf
xdg-toplevel-tag-v1: new protocol
...
References: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/238
2025-07-07 09:10:37 +00:00
Consolatis
6aa654b728
wlr_text_input_v3: remove event arguments from header
...
Fixes 2d5492c737
2025-07-06 14:10:25 +02:00
Simon Ser
aecb867098
output: add full HDR metadata to wlr_output_image_description
...
This allows sinks to improve their tone mapping.
2025-06-26 11:02:26 +00:00
Simon Ser
bf40f396bf
scene: grab image description from output state
...
Alternative to https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/5089
2025-06-26 09:56:12 +00:00
Simon Ser
2498036e67
output: add output_pending_image_description()
2025-06-26 09:56:12 +00:00
Simon Ser
e76f8ac2b3
output: add wlr_output.image_description
...
Stores the current image description.
2025-06-26 09:56:12 +00:00
tokyo4j
6d8bb66f98
xwm: add support for _NET_WM_ICON
2025-06-26 08:50:02 +00:00
Simon Ser
071773cb27
scene: add primaries support to wlr_scene_buffer
2025-06-18 19:37:55 +00:00
Simon Ser
ae85c31176
render/vulkan: add luminance multiplier for texture shader
2025-06-18 19:37:55 +00:00
Simon Ser
fa1feb447f
render, render/vulkan: add primaries to wlr_render_texture_options
2025-06-18 19:37:55 +00:00
Simon Ser
a8144088df
render/vulkan: add support for PQ for textures
2025-06-18 19:37:55 +00:00
Simon Ser
3a51a5c623
render/vulkan: add texture color transformation matrix
2025-06-18 19:37:55 +00:00
Simon Ser
56d95c2ecb
render/vulkan: introduce wlr_vk_frag_texture_pcr_data
...
Contains UBOs for texture.frag.
2025-06-18 19:37:55 +00:00
Simon Ser
4efec11721
scene: add transfer function support for wlr_scene_buffer
2025-06-18 19:37:55 +00:00
Simon Ser
8d1c6e42ac
render/vulkan: add support for texture transfer functions
2025-06-18 19:37:55 +00:00
Simon Ser
b1a9dab03e
render/vulkan: fix typo in wlr_vk_texture.views comment
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
7b6eec530c
render/vulkan: add luminance multipler for output shader
2025-06-18 00:11:33 +02:00
Simon Ser
b482e9089b
backend/drm: add support for image description transfer function
2025-06-18 00:11:33 +02:00
Simon Ser
dc258b2237
output: add transfer function to image description
2025-06-18 00:11:33 +02:00
Simon Ser
4470683591
render/color, render/vulkan: add support for PQ transfer function
2025-06-18 00:11:31 +02:00
Simon Ser
8430a1922d
render/vulkan: add PQ inverse EOTF to output shader
2025-06-18 00:09:25 +02:00
Simon Ser
f024d1b8c8
backend/drm: add support for color primaries
2025-06-18 00:07:58 +02:00
Simon Ser
e64de4d55f
output: add color primaries to output state
2025-06-18 00:07:58 +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
2ea0e386c4
render/vulkan: add color transformation matrix
2025-06-17 18:47:50 +02:00
Simon Ser
a30c102163
output: drop gamma LUT from state
...
This has been superseded by color transforms.
2025-06-16 09:06:10 +00:00
Simon Ser
97f6946c8d
output: add color transform to state
...
Color transforms are better suited than raw gamma tables, because:
- They don't need to get copied around: they are ref'counted.
- They can represent more color operations (will be useful for the
upcoming KMS color pipeline API, and for the Wayland color
management protocol).
2025-06-16 09:06:10 +00: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
3665b53e29
render/color: replace COLOR_TRANSFORM_LUT_3D with COLOR_TRANSFORM_LCMS2
...
Converting the LCMS2 transform to a 3D LUT early causes issues:
- It's a lossy process, the consumer will not be able to pick a
3D LUT size on their own.
- It requires unnecessary conversions and allocations: an intermediate
3D LUT is allocated, but the renderer already allocates one.
- It makes it harder to support arbitrary color transforms in the
renderer, because each type needs to be handled differently.
Instead, expose a function to evaluate a color transform, and use
that to build the 3D LUT in the renderer.
2025-06-16 09:06:10 +00:00
Simon Ser
d421538b4a
render/color: add wlr_color_transform_init()
2025-06-16 09:06:10 +00:00
Simon Ser
6204fc3278
scene: use output with highest refresh rate for frame pacing
...
If a surface is mirrored on two outputs, we don't want to pick the
first output if the second has a higher refresh rate.
Also fixes duplicate frame/feedback events when a surface is added
to multiple scenes.
2025-06-16 07:54:00 +00:00