zhoulei
0992422493
xwayland/xwm: listen shell destroy signal
...
Otherwise we got invaild write in wl_list_remove.
Fixes: e209fe2d0 ("Fix memory leak in xwayland.c")
Signed-off-by: zhoulei <zhoulei@kylinos.cn>
(cherry picked from commit 2c64f36e88 )
2024-08-23 09:29:38 -04:00
Isaac Freund
89e1ea130d
backend/drm: don't set vsync present flag if page flip was async
...
(cherry picked from commit 08495d2596 )
2024-08-15 11:13:05 -04:00
Kirill Primak
7df7b0e092
linux-drm-syncobj: add missing decls in the header
...
(cherry picked from commit ee21deb458 )
2024-08-15 11:06:02 -04:00
Isaac Freund
2005cc0fd6
docs: update comments for wlr_output API changes
...
The old wlr_output_{commit,test}() functions are still mentioned in
multiple places.
(cherry picked from commit 7550e483ae )
2024-07-15 09:58:22 -04:00
Isaac Freund
7d0f337a35
wlr_output: remove dead function
...
(cherry picked from commit 2a8a23c467 )
2024-07-15 09:58:22 -04:00
Simon Ser
a35b4f059d
backend/drm: add support for SIZE_HINTS property
...
This property allows the driver to advertise support for multiple
cursor sizes. On Intel, using a smaller buffer size reduces power
consumption.
References: https://lore.kernel.org/dri-devel/20240227193523.5601-2-ville.syrjala@linux.intel.com/
2024-07-10 22:42:44 +00:00
Simon Ser
0a79bc28c7
build: require libinput v1.19
...
This version has been published back in 2021.
2024-07-04 22:51:07 +02:00
Kirill Primak
67b88e46b0
Fix __VA_OPT__ macro invocations
2024-06-30 09:01:15 +03:00
Simon Ser
3880ee15d7
Use standard __VA_OPT__ instead of GNU's ##__VA_ARGS__
...
C23 has standardized a way to write variadic macros that accept
zero arguments:
https://open-std.org/JTC1/SC22/WG14/www/docs/n3033.htm
Use that instead of the GNU extension when available.
2024-06-27 18:13:05 +00:00
Simon Ser
fe429b2463
Switch to stable tablet-v2 protocol
...
References: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/284
2024-06-27 18:04:00 +00:00
Kirill Primak
f320df65e6
backend/wayland: introduce wlr_wl_output_set_app_id()
2024-06-26 19:43:20 +00:00
Kirill Primak
5201836868
backend/drm: store drm prop lists as structs
...
This makes modifying the property lists slightly easier.
2024-06-25 13:49:54 +00:00
Kenny Levinsen
47c578945c
render/vulkan: Recycle memory maps for stage spans
...
Remapping buffers on every use causes a lot of unwanted pagefaults.
Reuse the mapping to significantly speed up the memcpy.
2024-06-24 15:55:10 +00:00
Kenny Levinsen
bedc890935
backend/drm: Use cached vrr support flag
...
We do not expect the connector support to change throughout the lifetime
of the link on this connector, so use the value we initially probed.
2024-06-21 14:18:34 +00:00
Kenny Levinsen
f10327f915
wlr_output: Add adaptive_sync_supported
...
This will let compositors know if changing adaptive_sync state has any
chance of working. When false, then the current state is the only
supported state, including if adaptive_sync is currently enabled as is
the case for Wayland and X11 backends.
When true, changing state might succeed, but no guarantee is made. It
just indicates that the backend does not already know it to be
impossible.
2024-06-21 14:18:34 +00:00
Simon Ser
213bd88b4c
linux-drm-syncobj-v1: new protocol implementation
...
References: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/90
2024-06-12 18:40:25 +02: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
Kirill Primak
1e58e4006d
xdg-popup: validate positioner on reposition request
2024-06-11 12:02:35 +03:00
Kirill Primak
629a5171f2
backend/wayland: don't ack outdated configures
...
This commit fixes the following interaction:
1) The host compositor sends a configure sequence for an output.
2) Before handling it, the guest compositor disables and immediately
re-enables the output.
3) The guest compositor tries to ack the configure event from step 1
which isn't relevant anymore after unmapping and re-initialization.
Instead, ignore all configure events after unmapping until we're sure
the host compositor has processed the unmapping.
Also see
https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/108 .
2024-06-11 09:44:42 +03:00
Kirill Primak
d80c46250d
backend/wayland: improve/fix xdg_toplevel (re-)initialization
...
- Reset all variables representing an initialized xdg_toplevel's state
on unmap.
- Send an initial commit only when an output is about to be enabled.
- If an output isn't configured yet, don't commit a buffer.
2024-06-11 09:44:42 +03:00
Kirill Primak
baf1e4f674
backend/wayland: don't ack a configure event too early
...
Postpone sending xdg_surface.ack_configure until the guest compositor
commits a buffer, if at all.
Also see
https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/128 .
2024-06-11 09:44:42 +03:00
Kirill Primak
94e7165e85
backend/wayland: don't request a state too early
...
An xdg_toplevel configure sequence ends with xdg_surface.configure.
Wait for it before relaying the request to the guest compositor.
2024-06-11 09:44:42 +03:00
Kirill Primak
a62dfebf10
backend/wayland: store output xdg_toplevel title
...
This will be required to re-initialize the toplevel properly later.
2024-06-11 09:44:42 +03:00
Simon Ser
6d07193bda
render/color: add fallback stub when LCMS2 is disabled
...
It's cumbersome for compositors to guard every
wlr_color_transform_ref() or wlr_color_transform_unref() call
behind a #if WLR_HAS_COLOR_MANAGEMENT. Moreover, none of the LCMS2
types are used in our public API.
Instead, always install the color.h header, and add a stub for
wlr_color_transform_init_linear_to_icc().
2024-06-04 17:45:51 +00:00
Kirill Primak
862a0b4826
fullscreen-shell: deprecate
...
There are no real-world clients that use this protocol.
2024-05-28 15:08:26 +00:00
Violet Purcell
4b4f76cc13
Version pkgconfig, headers, and library for parallel installation
...
Since wlroots almost always significantly breaks API each minor release,
allowing parallel installation of wlroots helps packagers deal with
programs that require conflicting versions of wlroots.
Closes : #3786
2024-05-27 22:15:00 +00:00
Simon Ser
8cd58bc53c
render/allocator: document struct wlr_allocator
2024-05-25 13:28:19 +00:00
Isaac Freund
6219d7b819
wlr_surface: update get_root_surface() docs
...
Since destroying a wlr_surface now makes all subsurfaces inert, this
function can no longer fail and return NULL. Document this.
2024-05-15 15:54:38 +02:00
Alexander Orzechowski
53be443f39
wlr_scene: Add WLR_SCENE_HIGHLIGHT_TRANSPARENT_REGION env
2024-05-05 02:22:50 +03:00
Simon Ser
563f100627
alpha-modifier-v1: new protocol implementation
...
References: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/287
2024-04-30 17:49:34 +02:00
Consolatis
8abd43803b
xwayland: remove saved_{width,height}
...
This has been introduced way back in
be297d9d14 but is never used anywhere.
If compositors want to save the old dimensions before reacting to a
fullscreen or maximize event they can just grab the sizes within their
event handlers instead.
2024-04-30 15:24:40 +00:00
Manuel Stoeckl
82b4bc3f5f
renderer: add field to indicate color transform support
2024-04-26 17:17:36 +00:00
Manuel Stoeckl
391410deb5
wlr_scene: add color transform argument for rendering
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
Manuel Stoeckl
e443434876
render/vulkan: create plain framebuffers on demand
...
This change makes it possible to support both the direct srgb-format
pipeline and indirect (color-managed, or non-srgb-format) pipeline
for the same render buffer.
2024-04-26 17:17:36 +00:00
Manuel Stoeckl
adbfd3c321
render/vulkan: add lut3d output shader option
...
While a corresponding pipeline is created, it is not yet used.
2024-04-26 17:17:36 +00:00
Manuel Stoeckl
c64144a39b
render/vulkan: add dummy 3d lookup table to output shader
...
Later commits will add shader options that use a real 3d
lookup table.
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
Ilia Bozhinov
c63275d75e
xwayland: add a size-safe wrapper for xcb_send_event
...
xcb_send_event expects the caller to always provide 32 byte data, even if the actual event struct is
smaller than that.
Reference: https://gitlab.freedesktop.org/xorg/lib/libxcb/-/issues/18
2024-04-20 15:12:45 +02:00
Ilia Bozhinov
75ecba444a
seat: add serials to touch up events
2024-04-18 14:34:51 +00:00
Kirill Primak
2f82c92307
Avoid using wayland-{client,server}.h
...
Their use is discouraged. Instead, include -core or -protocol headers.
2024-04-17 13:37:12 +00:00
Simon Ser
73d2fd4d4f
xwayland: add a few docs
2024-04-10 18:12:56 +02:00
Isaac Freund
34219b0334
touch: make cancel functions take a wlr_seat_client
...
The surface argument is only used to obtain a wlr_seat_client and
semantically makes no sense. The wl_touch.cancel event applies to all
touch points and all surfaces of a client.
I decided to make the functions accept a wlr_seat_client rather than a
wl_client as it is directly available in the wlr_touch_point struct and
simplifies the implementation.
2024-03-28 09:33:54 +00:00
Kirill Primak
2f3ea4590a
viewporter: fix outdated docs
...
wlr_render_subtexture_with_matrix() has been removed.
2024-03-25 17:48:07 +00:00
Ian Forbes
e3bd318547
drm/backend: add support for cursor hotspots
...
Enables DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT and sets the cursor hotspots on the
cursor plane so virtualized drivers can accelerate mouse movement.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3776
2024-03-22 13:54:18 -05:00