From c2aa7fd965cb7ee8bed24f4122b720aca8f0fc1e Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Thu, 28 Sep 2023 17:21:22 +0100 Subject: backend/drm: Add async page flip support to legacy Atomic doesn't support such flags yet. --- include/backend/drm/drm.h | 2 ++ include/wlr/types/wlr_output.h | 6 ++++++ 2 files changed, 8 insertions(+) (limited to 'include') diff --git a/include/backend/drm/drm.h b/include/backend/drm/drm.h index 4b92c5eb..69416925 100644 --- a/include/backend/drm/drm.h +++ b/include/backend/drm/drm.h @@ -114,6 +114,8 @@ struct wlr_drm_backend { uint64_t cursor_width, cursor_height; struct wlr_drm_format_set mgpu_formats; + + bool supports_tearing_page_flips; }; struct wlr_drm_mode { diff --git a/include/wlr/types/wlr_output.h b/include/wlr/types/wlr_output.h index 30331fba..de7ea332 100644 --- a/include/wlr/types/wlr_output.h +++ b/include/wlr/types/wlr_output.h @@ -89,6 +89,12 @@ struct wlr_output_state { enum wl_output_subpixel subpixel; struct wlr_buffer *buffer; + /* Request a tearing page-flip. When enabled, this may cause the output to + * display a part of the previous buffer and a part of the current buffer at + * the same time. The backend may reject the commit if a tearing page-flip + * cannot be performed, in which case the caller should fall back to a + * regular page-flip at the next wlr_output.frame event. */ + bool tearing_page_flip; enum wlr_output_state_mode_type mode_type; struct wlr_output_mode *mode; -- cgit v1.2.3