aboutsummaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
Diffstat (limited to 'backend')
-rw-r--r--backend/drm/drm.c1
-rw-r--r--backend/headless/output.c1
-rw-r--r--backend/wayland/output.c3
-rw-r--r--backend/x11/output.c2
4 files changed, 7 insertions, 0 deletions
diff --git a/backend/drm/drm.c b/backend/drm/drm.c
index abfd1c2f..191ad064 100644
--- a/backend/drm/drm.c
+++ b/backend/drm/drm.c
@@ -1465,6 +1465,7 @@ static void handle_page_flip(int fd, unsigned seq,
/* The DRM backend guarantees that the presentation event will be for
* the last submitted frame. */
.commit_seq = conn->output.commit_seq,
+ .presented = true,
.when = &present_time,
.seq = seq,
.refresh = mhz_to_nsec(conn->output.refresh),
diff --git a/backend/headless/output.c b/backend/headless/output.c
index 8351c935..43762b23 100644
--- a/backend/headless/output.c
+++ b/backend/headless/output.c
@@ -66,6 +66,7 @@ static bool output_commit(struct wlr_output *wlr_output) {
if (wlr_output->pending.committed & WLR_OUTPUT_STATE_BUFFER) {
struct wlr_output_event_present present_event = {
.commit_seq = wlr_output->commit_seq + 1,
+ .presented = true,
};
wlr_output_send_present(wlr_output, &present_event);
}
diff --git a/backend/wayland/output.c b/backend/wayland/output.c
index 285c70fc..4d9ef56e 100644
--- a/backend/wayland/output.c
+++ b/backend/wayland/output.c
@@ -75,6 +75,7 @@ static void presentation_feedback_handle_presented(void *data,
};
struct wlr_output_event_present event = {
.commit_seq = feedback->commit_seq,
+ .presented = true,
.when = &t,
.seq = ((uint64_t)seq_hi << 32) | seq_lo,
.refresh = refresh_ns,
@@ -91,6 +92,7 @@ static void presentation_feedback_handle_discarded(void *data,
struct wlr_output_event_present event = {
.commit_seq = feedback->commit_seq,
+ .presented = false,
};
wlr_output_send_present(&feedback->output->wlr_output, &event);
@@ -350,6 +352,7 @@ static bool output_commit(struct wlr_output *wlr_output) {
} else {
struct wlr_output_event_present present_event = {
.commit_seq = wlr_output->commit_seq + 1,
+ .presented = true,
};
wlr_output_send_present(wlr_output, &present_event);
}
diff --git a/backend/x11/output.c b/backend/x11/output.c
index 2f996c10..3ad7b4a4 100644
--- a/backend/x11/output.c
+++ b/backend/x11/output.c
@@ -690,9 +690,11 @@ void handle_x11_present_event(struct wlr_x11_backend *x11,
flags |= WLR_OUTPUT_PRESENT_ZERO_COPY;
}
+ bool presented = complete_notify->mode != XCB_PRESENT_COMPLETE_MODE_SKIP;
struct wlr_output_event_present present_event = {
.output = &output->wlr_output,
.commit_seq = complete_notify->serial,
+ .presented = presented,
.when = &t,
.seq = complete_notify->msc,
.flags = flags,