Simon Ser
95d25d833f
keyboard: add utilities for pointer keys
...
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3803
2024-10-07 18:41:07 +00:00
Simon Ser
7ce868bcf6
render/vulkan: make VK_KHR_external_semaphore_fd optional
...
We already block instead of using sync_file when the driver
doesn't support import/export.
2024-10-03 19:24:30 +02:00
Kirill Primak
ab118042ea
ext-foreign-toplevel-list: add _from_resource()
2024-10-01 18:59:18 +03:00
Simon Ser
3da6fac1f2
render/vulkan: check size when creating shm texture
2024-09-29 15:22:56 +00:00
Simon Ser
d55c175777
render/vulkan: log size when importing too-large DMA-BUF
2024-09-29 15:22:56 +00:00
Kirill Primak
a8d1e5273a
linux-dmabuf-v1: use static_assert
2024-09-24 19:56:36 +00:00
Kirill Primak
56d69320c7
pointer: release pressed buttons on destroy
2024-09-24 19:53:54 +00:00
Kirill Primak
c752270be7
tinywl: drop focused surface check for interactive ops
...
This serves as a bad example: compositors should validate serials from
events instead. Also, the current implementation segfaults if
focused_surface is NULL.
2024-09-20 10:48:32 +00:00
YaoBing Xiao
7debaced03
x11/backend: Optimize query_version error handling
...
Signed-off-by: YaoBing Xiao <xiaoyaobing@uniontech.com>
2024-09-12 17:52:26 +08:00
llyyr
bf0cac12a3
input-method-v2: set no keymap format if no keymap is set
...
Also don't copy the keymap each time it gets sent to a client
2024-09-11 15:09:56 +05:30
YaoBing Xiao
04525e6f82
wlr_screencopy_v1: send fine-grained damage events
...
Signed-off-by: YaoBing Xiao <xiaoyaobing@uniontech.com>
2024-09-10 20:54:04 +08:00
Kenny Levinsen
96ad414ec9
backend/drm: Remove call to CRTC realloc on scan
...
After a connector scan, new connectors might have appeared and old ones
gone away. At this point, old CRTC allocations are already gone, while
new allocations are not yet needed. Skip the call.
2024-09-09 13:22:56 +00:00
YaoBing Xiao
9f7ab85718
tearing_control_v1: Free the wlr_tearing_control_v1 on error
...
Signed-off-by: YaoBing Xiao <xiaoyaobing@uniontech.com>
2024-09-09 16:16:56 +08:00
Simon Ser
1a7981f7c9
compositor: document surface events
2024-09-05 19:49:20 +02:00
Simon Ser
234d31f138
backend/drm: improve doc comment for match_connectors_with_crtcs_()
...
- Add general description
- Mention the computer theory problem that this is solving
- More wording cleanup
2024-09-02 17:12:32 +00:00
Kenny Levinsen
beb9a9ad0a
linux-drm-syncobj-v1: Skip release if there is no timeline
...
If a surface with an existing buffer has a syncobj surface state created
without committing a new buffer with associated timelines, callers will
see the surface as having a syncobj state and may try to use it, but
calling the signal_release_with_buffer helper at this time will assert
on the lacking release timeline.
As this is a valid situation, remove the assert and replace it with an
early return so that callers do not need to explicitly check for the
presence of valid timelines.
Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3895
2024-08-28 18:44:46 +02:00
YaoBing Xiao
0db4df4c8e
gles2/pass: remove duplicate variable declarations
2024-08-27 20:25:18 +08:00
Simon Ser
0d6284eb62
backend/drm: add explicit sync support to libliftoff interface
2024-08-26 18:21:50 +02:00
Simon Ser
d7223eae02
backend/drm: add explicit sync support to multi-GPU blits
2024-08-26 18:09:27 +02:00
Alexander Orzechowski
3187479c07
render/color: Invert ownership model of color_transform types.
...
Color transform can have multiple types and these different types
want to store different metadata. We previously stored this metadata
directly on wlr_color_transform even for transforms that don't use it.
Instead, let's take the prior art from wlr_scene where each scene node
is built on a base node. Notice how wlr_color_transform_lut3d now has
a `struct wlr_color_transform base`. This is advantageous in multiple
ways:
1. We don't allocate memory for metadata that will never be used.
2. This is more type safe: Compositors can pass around a
struct wlr_color_transform_lut3d if they know they only want to use a
3d_lut.
3. This is more scalable. As we add more transform types, we don't have
to keep growing a monolithic struct.
2024-08-24 14:33:22 -04: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
YaoBing Xiao
a5aae69b2a
backend/drm: remove unnecessary semicolons
2024-08-24 08:36:46 +00:00
Alexander Orzechowski
52afedadea
wlr_scene: Assert wlr_scene_rect has nonnegative dimensions
2024-08-23 16:53:32 -04:00
Simon Ser
52dce29e06
render/vulkan: use non-coherent memory for read_pixels()
...
The spec for VkMemoryPropertyFlagBits says:
> device coherent accesses may be slower than equivalent accesses
> without device coherence [...] it is generally inadvisable to
> use device coherent or device uncached memory except when really
> needed
We don't really need coherent memory so let's not require it and
invalidate the memory range after mapping instead.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3868
2024-08-22 18:19:22 +02:00
Simon Ser
5432108846
backend/drm: drop SKIP in match_connectors_with_crtcs()
...
It's unused.
2024-08-21 22:25:19 +02:00
Simon Ser
5f3b99bbed
backend/drm: rename i param in match_connectors_with_crtcs_()
...
Use a more descriptive name to make it clear what kind of index
this is.
2024-08-21 22:25:19 +02:00
Simon Ser
1e03719361
backend/drm: drop match_connectors_with_crtcs() return value
...
It's unused.
2024-08-21 22:25:19 +02:00
Simon Ser
0bf642d246
backend/drm: use more descriptive names for match_obj()
...
This function is only used for connectors and CRTCs, so instead of
the abstract "obj"/"resource" wording, just use the concrete names.
2024-08-21 22:25:19 +02:00
Simon Ser
d2a5dbe104
backend/drm: use CRTCs in-order
...
When lighting up a new connector, we'd use the last CRTC instead of the
first one. This causes issues because drivers have the expectation that
userspace will match CRTCs to connectors in-order [1].
The order has regressed a long time ago in 5b13b8a12c
("backend/drm:
consider continue not using resources"). That commit was a fix to
avoid moving a connector between CRTCs [2]. Revert that commit and
use a different approach: even if we've found a solution, always try
not using a CRTC in the hope that we'll find another solution with
less CRTC replacements.
[1]: https://lore.kernel.org/dri-devel/20240612141903.17219-2-ville.syrjala@linux.intel.com/
[2]: https://github.com/swaywm/wlroots/issues/1230
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3098
2024-08-21 15:17:04 +00:00
YaoBing Xiao
43554c1966
types/wlr_output: removing the useless pointer
2024-08-21 14:04:24 +00:00
Kirill Primak
cf93d31736
scene: resize damage ring on geometry update
2024-08-21 13:53:34 +00:00
Alexander Orzechowski
bfcaa4bc44
swapchain, damage_ring: Drop buffer age
2024-08-21 09:45:54 -04:00
Alexander Orzechowski
eebaca8dbf
output/render: Drop buffer age from wlr_output_begin_render_pass
...
For compositors wanting to damage track, `wlr_damage_ring_rotate_buffer()`
should be used and the damage should be set on the passed state.
2024-08-21 09:45:54 -04:00
Kirill Primak
62cc96b3a4
scene: update output geom on commit after dropping pending damage
...
Otherwise the whole output damage gets ignored.
2024-08-20 19:27:13 +03:00
Simon Ser
098cb9b7a3
xdg-shell: add wlr_xdg_toplevel_configure()
...
A struct wlr_xdg_toplevel_configure is passed in with the whole
state. This makes it a lot clearer that the size and WM state are
always sent to the client.
2024-08-20 09:15:39 +00:00
Simon Ser
8582b45c9e
xdg-shell: document struct wlr_xdg_toplevel_configure
2024-08-20 09:15:39 +00:00
Dudemanguy
3d2f09bace
backend/drm: fix a use-after-free
...
The page_flip can be destroyed, but it is unconditionally accessed later
on when setting present_flags. Fix this by simply setting the
present_flags before the page_flip gets destroyed.
2024-08-19 13:46:41 -04:00
Kirill Primak
b4f077a596
drm-syncobj-v1: remove buffer release listener on signaller destroy
2024-08-19 15:49:01 +00:00
YaoBing Xiao
3048fb3fc6
render/egl: Release devices before return
2024-08-19 23:18:11 +08:00
Kenny Levinsen
5df2b34d2b
allocator/gbm: Reset errno before gbm_bo_create
...
Not all paths in GBM set errno properly on error. Reset it to zero
before calling GBM to avoid accidentally printing a garbage error.
2024-08-19 14:59:44 +02:00
Kenny Levinsen
ccd4703207
allocator/gbm: Log errno if gbm_bo_create fails
2024-08-19 14:41:09 +02:00
Kirill Primak
a0450d219f
layer-shell: introduce wlr_layer_surface_v1_get_exclusive_edge()
2024-08-18 01:02:08 +00:00
Kirill Primak
270e6f4ebb
layer-shell: add v5 support
2024-08-18 01:02:08 +00:00
Kirill Primak
e88988e364
keyboard: simplify releasing keys on finish
2024-08-15 18:33:00 +00:00
Kirill Primak
310a5eb61c
backend/wayland: simplify wl_keyboard.{enter,leave} processing
2024-08-15 18:33:00 +00:00
Isaac Freund
08495d2596
backend/drm: don't set vsync present flag if page flip was async
2024-08-15 15:11:10 +00:00
Kirill Primak
3103ea3af9
backend/wayland: process initial events from globals correctly
...
Previous logic could lead wlr_wl_backend.drm_render_name being written
to twice, causing a memory leak. This commit fixes the race condition.
2024-08-15 12:52:05 +03:00
Kirill Primak
ee21deb458
linux-drm-syncobj: add missing decls in the header
2024-08-15 09:02:04 +00:00
Leonardo Hernández Hernández
baaec88e2f
linux-drm-syncobj-v1: actually use the requested version
2024-08-14 23:03:14 -06:00
Kirill Primak
4da4269d8f
seat/pointer: reset pressed buttons on "grab-compatible" focus change
...
Fixes: 08e779bd85
2024-08-14 22:43:44 +03:00