add support for linux-drm-syncobj-v1 (wlroots!4715)

References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4262
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4715
This commit is contained in:
Leonardo Hernández Hernández 2024-06-11 11:32:50 -06:00
parent a634e3f527
commit 35951a8d7e
No known key found for this signature in database
GPG Key ID: E538897EE11B9624
2 changed files with 12 additions and 1 deletions

View File

@ -8,6 +8,13 @@
## Unreleased ## Unreleased
### Added ### Added
* Support for the linux-drm-syncobj-v1 protocol ([wlroots!4715][wlroots!4715], [#685][685])
[wlroots!4715]: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4715
[685]: https://codeberg.org/dwl/dwl/pulls/685
### Changed ### Changed
### Deprecated ### Deprecated
### Removed ### Removed

6
dwl.c
View File

@ -33,6 +33,7 @@
#include <wlr/types/wlr_keyboard_group.h> #include <wlr/types/wlr_keyboard_group.h>
#include <wlr/types/wlr_layer_shell_v1.h> #include <wlr/types/wlr_layer_shell_v1.h>
#include <wlr/types/wlr_linux_dmabuf_v1.h> #include <wlr/types/wlr_linux_dmabuf_v1.h>
#include <wlr/types/wlr_linux_drm_syncobj_v1.h>
#include <wlr/types/wlr_output.h> #include <wlr/types/wlr_output.h>
#include <wlr/types/wlr_output_layout.h> #include <wlr/types/wlr_output_layout.h>
#include <wlr/types/wlr_output_management_v1.h> #include <wlr/types/wlr_output_management_v1.h>
@ -2430,7 +2431,7 @@ setsel(struct wl_listener *listener, void *data)
void void
setup(void) setup(void)
{ {
int i, sig[] = {SIGCHLD, SIGINT, SIGTERM, SIGPIPE}; int drm_fd, i, sig[] = {SIGCHLD, SIGINT, SIGTERM, SIGPIPE};
struct sigaction sa = {.sa_flags = SA_RESTART, .sa_handler = handlesig}; struct sigaction sa = {.sa_flags = SA_RESTART, .sa_handler = handlesig};
sigemptyset(&sa.sa_mask); sigemptyset(&sa.sa_mask);
@ -2480,6 +2481,9 @@ setup(void)
wlr_linux_dmabuf_v1_create_with_renderer(dpy, 5, drw)); wlr_linux_dmabuf_v1_create_with_renderer(dpy, 5, drw));
} }
if ((drm_fd = wlr_renderer_get_drm_fd(drw)) >= 0 && drw->features.timeline)
wlr_linux_drm_syncobj_manager_v1_create(dpy, 1, drm_fd);
/* Autocreates an allocator for us. /* Autocreates an allocator for us.
* The allocator is the bridge between the renderer and the backend. It * The allocator is the bridge between the renderer and the backend. It
* handles the buffer creation, allowing wlroots to render onto the * handles the buffer creation, allowing wlroots to render onto the