pastel raschke
3bf9000a52
input-method-v2: validate commit serial
2023-12-18 11:15:51 +01:00
pastel raschke
6ee5bd9eee
input-method-v2: free current strings on commit
2023-12-18 11:14:41 +01:00
Simon Ser
81f5607ad9
input-method-v2: drop unnecessary variable and cast
2023-12-18 11:14:08 +01:00
Simon Ser
d6998d36ed
xcursor: fix duplicate cursor check check in load_callback()
...
wlr_xcursor_theme_get_cursor() now does some fallback logic. We
don't want that for checking whether a cursor has already been
loaded.
Fixes: dbedcdb418 ("xcursor: add fallbacks for legacy names")
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3783
2023-12-12 19:45:17 +00:00
Simon Ser
d7ac8c0cc1
cursor: drop unnecessary commented code
...
This is unused.
2023-12-12 19:39:33 +00:00
Simon Ser
7ef62cc995
cursor: fix initial cursor position for new outputs
...
The fresh new wlr_output_cursor is positioned at (0, 0).
Call wlr_output_cursor_move() after creating the wlr_output_cursor
to fix this.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3777
2023-12-12 19:39:33 +00:00
Simon Ser
d8c0707e27
backend/drm: return secondary backend DRM FD
...
It can be useful for compositors to get the real DRM FD instead of
the one from the parent compositor. For instance, some compositors
might want to perform some DRM IOCTLs there to check the driver
name, fetch some DRM resources, etc. This will also be a requirement
for direct scanout on secondary GPUs.
2023-12-12 14:42:52 +00:00
Simon Ser
3475b1880f
linux-dmabuf-v1: ignore scanout output for secondary DRM backends
...
We don't support direct scanout on such backends yet.
2023-12-12 14:42:52 +00:00
Simon Ser
fc7a0b93dd
backend/drm: add wlr_drm_backend_get_parent()
...
Allows compositors to figure out whether a DRM backend is
secondary on a multi-GPU setup.
2023-12-12 14:42:52 +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
7ad3f4ad2d
ci: drop stale dependencies
...
ffmpeg, epoll-shim, libpng were dependencies for client examples.
These have been split into a separate repository so we no longer
need to install them.
2023-12-10 14:29:23 +01:00
Simon Ser
fe6f380f26
build: automatically compute soversion
...
Instead of requiring a manual soversion bump each time we do a
release, automatically compute it from the version number.
In the early days we used to not bump soversion, so there is an
hardcoded offset.
This will need to be updated once we ship 1.0, so assert that we're
still on 0.x.
2023-12-08 12:00:33 +01:00
Kirill Primak
425f5c07fb
tinywl: check initialized instead of initial_commit
...
oops
2023-12-07 17:59:07 +03:00
Kirill Primak
1cc7ab3e29
tinywl: don't send configures to uninitialized xdg_surfaces
2023-12-07 12:43:39 +03: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
Simon Ser
6a2ff0dffe
compositor: drop surface precommit event
...
This is unused.
2023-12-04 19:32:44 +01:00
Simon Ser
78836298ef
cursor: send surface scale events
...
wlr_cursor is responsible for sending enter/leave events, but
doesn't send fractional-scale-v1 and wl_surface.preferred_buffer_scale
events. This is not an easy thing to do from a compositor, so let's
just do it in wlr_cursor itself.
2023-12-04 15:39:04 +00:00
Simon Ser
4ed8df9ab2
render: disable linux-dmabuf without DRM FD
...
linux-dmabuf used to not need a DRM FD, however since v4 a DRM FD
is required for the main_device event.
2023-12-04 15:28:18 +00:00
Manuel Stoeckl
d6859da3b4
render/vulkan: use _SRGB image view when possible
...
This is the last of a set of commits which ensures that both textures
and render buffers can be accessed through _UNORM and _SRGB image
views. While _UNORM image views are not yet used for 8-bpc image
formats, they will be needed in the future to support color transforms
for both textures and render buffers.
2023-12-04 15:13:31 +00:00
Manuel Stoeckl
566c413d8f
render/vulkan: constify vulkan_format_props_find_modifier
2023-12-04 15:13:31 +00:00
Manuel Stoeckl
88a4b9eefd
render/vulkan: create VkImage with option for _SRGB view, if possible
2023-12-04 15:13:31 +00:00
Manuel Stoeckl
fd4548bb93
render/vulkan: detect which _UNORM formats support _SRGB views
2023-12-04 15:13:31 +00:00
Manuel Stoeckl
acc70ee3a5
render/vulkan: extract shm texture format query into function
2023-12-04 15:13:31 +00:00
Manuel Stoeckl
eab89d6c76
render/vulkan: track and use _UNORM variants of _SRGB formats
...
Later commits will start using _SRGB image views again,
where appropriate.
2023-12-04 15:13:31 +00:00
Alexander Orzechowski
6287b61025
wlr_damage_ring: Fix inverted conditional
2023-12-04 07:16:46 -05:00
Alexander Orzechowski
62169bf5ac
wlr_scene: fix transformed outputs backend damage clearing
...
When we cleared the pending backend damage when the output committed,
we would not take into account the output transform. It's easiest to fix
this by just changing pending_commit_damage to always have transformed
coordinates.
2023-12-04 07:06:35 -05:00
Alexander Orzechowski
364d7cba42
wlr_scene: Apply output damage once
...
We would apply it twice if we failed direct scanout. Once when we attempt
direct scanout and again when we composite.
2023-12-04 06:58:35 -05:00
Simon Ser
2c0fdb7e65
hack: measure timings
2023-12-04 11:37:10 +01:00
Simon Ser
fee8969955
render/vulkan: add upload thread
...
TODO:
- Update blocking stage submission as well
- Allow multiple data ptr accesses
- Stop abusing FDs for multi-thread queue
2023-12-04 11:37:09 +01:00
Simon Ser
79cbbfb366
render/vulkan: keep wlr_vk_shared_buffer mapped
2023-12-04 11:36:48 +01:00
Simon Ser
50b471e035
render/vulkan: extract pixel copy into separate function
2023-12-04 11:36:48 +01:00
Simon Ser
a59dd1d567
render/vulkan: add upload timeline semaphore
...
Doesn't do much at the moment, since it's always signalled when
we submit the stage buffer.
2023-12-04 11:36:47 +01:00
Simon Ser
361804c727
buffer: allow concurrent data ptr accesses
2023-12-04 11:36:21 +01:00
Simon Ser
7abb227617
render: take event loop as input when creating renderer
...
Some renderers will need access to the event loop for async GPU
uploads.
2023-12-04 11:36:20 +01:00
Simon Ser
3b3640dda4
backend: add wlr_backend.event_loop
...
Many objects depending on wlr_backend need access to the event
loop. Storing it here will simplify wlr_output when combined
with [1], and will allow wlr_renderer_autocreate() to have access
to the event loop.
[1]: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4310
2023-12-04 11:35:35 +01:00
Alexander Orzechowski
fe8916fef0
wlr_scene: Don't damage whole damage ring when exiting direct scanout
...
Direct scanout damage will just accumulate on the damage ring while in
direct scanout and properly damage when we exit anyway. On the flip side
since we now manage backend damage submission ourselves, this won't break
that either.
2023-12-03 05:29:05 +00:00
Alexander Orzechowski
0619c99dc7
wlr_scene: Use wlr_damage_ring_rotate_buffer()
...
Compositors who use _build_state are no longer required to call
damage_ring_rotate themselves. This is a minor breaking change.
2023-12-03 05:29:05 +00:00
Alexander Orzechowski
06d301bf1a
wlr_scene: Track output damage separately
...
The damage ring is only supposed to keep track of damage within
the swapchain
2023-12-03 05:29:05 +00: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
b3575fedbc
screencopy_v1: Use new read pixels API
2023-11-30 20:01:12 -05:00
Alexander Orzechowski
8ac5139007
backend/x11: Use wlr_texture_read_pixels
2023-11-30 20:01:12 -05:00
Alexander Orzechowski
c5a3c5ca4c
render: Implement texture_preferred_read_format
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
09f16b2a9c
render/vulkan: Implement texture_read_pixels
2023-11-30 19:56:54 -05:00
Alexander Orzechowski
e7055b4840
render/gles2: Implement texture_read_pixels
...
Also get rid of gles2_texture.owns_texture. We only use the tex/fbo
2023-11-30 19:56:41 -05:00
Alexander Orzechowski
01bd098166
render/pixman: Implement texture_read_pixels
2023-11-30 19:56:17 -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