YaoBing Xiao
c14aa1d0b8
render/vulkan: destroy vulkan instance when drm phdev mismatch
2025-07-15 08:59:37 +08:00
Consolatis
c39b3ce7a3
transient_seat: initialize seat destroy listener
...
This fixes a `wl_list_remove()` from an uninitialized listener
when using `wlr_transient_seat_v1_deny()` in a `create_seat`
handler.
2025-07-10 19:52:45 +02: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
Félix Poisot
31b78a4f3a
scene: fix output transfer functions
...
fixes: bf40f396b
2025-07-03 12:29:27 +00:00
David Turner
58c3680d96
scene: Block damage on single-pixel buffer textures
...
We cache whether buffers are single-pixel buffers (and if so what color
they are) to allow rendering optimizations. But this breaks if the
client changes out the single-pixel buffer for one with a different
color, because this updates the texture in-place instead of actually
changing the buffer.
We can fix this by blocking in-place texture updates for single pixel
buffers.
Original bug: https://codeberg.org/ifreund/waylock/issues/121
See also: !5092
2025-07-01 11:38:56 +01:00
Simon Ser
48bd1831fe
render/egl: fix software rendering check
...
Commit b4ce0d8b39 ("render/egl: accept negative DRM FD to select
software rendering") added an EXT_device_drm check to figure out
whether the user selected a device with a DRM FD or without one.
However, for KMS-only devices, Mesa will never advertise the
selected KMS node:
3f1d40d230/src/egl/main/egldevice.c (L109)
Instead, pass down a parameter to indicate whether a DRM FD was
passed in.
Fixes: b4ce0d8b39 ("render/egl: accept negative DRM FD to select software rendering")
2025-06-29 10:57:56 +02:00
Simon Ser
8c7041c4e8
backend/drm: relay full HDR metadata
2025-06-26 11:02:26 +00: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
Isaac Freund
f5e7caf599
util/box: set dest to empty if boxes don't intersect
...
Currently if both box_a and box_b are non-empty but do not intersect,
this function does not set dest to an empty box. This contradicts the
doc comments and is surprising for users.
2025-06-21 09:54:24 +00:00
Simon Ser
98af337175
output: shorten output enabled checks
...
Use a more concise loop instead of repeated logic.
No behavior change.
2025-06-20 19:02:54 +02:00
Simon Ser
0c272a3842
scene: add support for color-management-v1 primaries
2025-06-18 19:37:55 +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
ec422ac389
render/vulkan: prepare texture shader for new transforms
2025-06-18 19:37:55 +00:00
Simon Ser
7a1161438c
scene: add support for color-management-v1 transfer functions
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
c8d94000a6
color-management-v1: add EXT_LINEAR
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
f5a0992686
render/vulkan: fix multiplication order for output color matrix
...
This had the same bug as the texture side, but I forgot to fix it.
See:
https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4988#note_2867416
Fixes: f3524de980 ("render, render/vulkan: add primaries to wlr_buffer_pass_options")
2025-06-18 21:25:37 +02: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
a5706e2fb9
render/vulkan: use array declaration in encode_proj_matrix()
...
This makes it more obvious what the final layout of the matrix will
be.
2025-06-17 19:41:29 +02:00
Simon Ser
1df2274f6c
render/vulkan: rename mat3_to_mat4() to encode_proj_matrix()
...
This function is specific to projection matrices.
2025-06-17 19:35:16 +02:00
Simon Ser
30c6efedf1
render/vulkan: use output_pipe_srgb for non-NULL sRGB color transform
2025-06-17 18:50:25 +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
bfcb4211f6
wlr_gamma_control_v1: use color transforms
2025-06-16 09:06:10 +00:00
Simon Ser
f10dd1da1c
backend/drm: add support for 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
9b97e2607d
render/color: use variable instead of type in sizeof()
...
Conforms to the wlroots code style.
2025-06-16 09:06:10 +00:00