aboutsummaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
Diffstat (limited to 'backend')
-rw-r--r--backend/headless/output.c1
-rw-r--r--backend/wayland/output.c10
-rw-r--r--backend/x11/output.c7
3 files changed, 15 insertions, 3 deletions
diff --git a/backend/headless/output.c b/backend/headless/output.c
index 143900d4..ad0050d8 100644
--- a/backend/headless/output.c
+++ b/backend/headless/output.c
@@ -67,6 +67,7 @@ static bool output_make_current(struct wlr_output *wlr_output, int *buffer_age)
static bool output_swap_buffers(struct wlr_output *wlr_output,
pixman_region32_t *damage) {
+ wlr_output_send_present(wlr_output, NULL, 0, 0);
return true; // No-op
}
diff --git a/backend/wayland/output.c b/backend/wayland/output.c
index 4eb99a3b..4fbfe9d2 100644
--- a/backend/wayland/output.c
+++ b/backend/wayland/output.c
@@ -66,8 +66,14 @@ static bool output_swap_buffers(struct wlr_output *wlr_output,
output->frame_callback = wl_surface_frame(output->surface);
wl_callback_add_listener(output->frame_callback, &frame_listener, output);
- return wlr_egl_swap_buffers(&output->backend->egl, output->egl_surface,
- damage);
+ if (!wlr_egl_swap_buffers(&output->backend->egl,
+ output->egl_surface, damage)) {
+ return false;
+ }
+
+ // TODO: if available, use the presentation-time protocol
+ wlr_output_send_present(wlr_output, NULL, 0, 0);
+ return true;
}
static void output_transform(struct wlr_output *wlr_output,
diff --git a/backend/x11/output.c b/backend/x11/output.c
index e0210b1a..8cd8ee33 100644
--- a/backend/x11/output.c
+++ b/backend/x11/output.c
@@ -102,7 +102,12 @@ static bool output_swap_buffers(struct wlr_output *wlr_output,
struct wlr_x11_output *output = (struct wlr_x11_output *)wlr_output;
struct wlr_x11_backend *x11 = output->x11;
- return wlr_egl_swap_buffers(&x11->egl, output->surf, damage);
+ if (!wlr_egl_swap_buffers(&x11->egl, output->surf, damage)) {
+ return false;
+ }
+
+ wlr_output_send_present(wlr_output, NULL, 0, 0);
+ return true;
}
static const struct wlr_output_impl output_impl = {