File 8371.patch of Package sway
diff --git a/include/sway/server.h b/include/sway/server.h
index 1cb72e7..ac321e8 100644
--- a/include/sway/server.h
+++ b/include/sway/server.h
@@ -90,6 +90,8 @@ struct sway_server {
struct wlr_gamma_control_manager_v1 *gamma_control_manager_v1;
struct wl_listener gamma_control_set_gamma;
+ struct wlr_fifo_manager_v1 *fifo_manager_v1;
+
struct {
struct sway_session_lock *lock;
struct wlr_session_lock_manager_v1 *manager;
diff --git a/sway/server.c b/sway/server.c
index e8a6ce6..8f7ea31 100644
--- a/sway/server.c
+++ b/sway/server.c
@@ -18,6 +18,7 @@
#include <wlr/types/wlr_data_device.h>
#include <wlr/types/wlr_export_dmabuf_v1.h>
#include <wlr/types/wlr_ext_foreign_toplevel_list_v1.h>
+#include <wlr/types/wlr_fifo_v1.h>
#include <wlr/types/wlr_foreign_toplevel_management_v1.h>
#include <wlr/types/wlr_ext_image_capture_source_v1.h>
#include <wlr/types/wlr_ext_image_copy_capture_v1.h>
@@ -424,6 +425,9 @@ bool server_init(struct sway_server *server) {
wl_list_init(&server->pending_launcher_ctxs);
+ server->fifo_manager_v1 = wlr_fifo_manager_v1_create(server->wl_display, 1);
+ wlr_scene_set_fifo_manager_v1(root->root_scene, server->fifo_manager_v1);
+
// Avoid using "wayland-0" as display socket
char name_candidate[16];
for (unsigned int i = 1; i <= 32; ++i) {