52 lines
2.1 KiB
Diff
52 lines
2.1 KiB
Diff
diff --git a/src/compositor/meta-compositor-view-native.c b/src/compositor/meta-compositor-view-native.c
|
|
--- a/src/compositor/meta-compositor-view-native.c
|
|
+++ b/src/compositor/meta-compositor-view-native.c
|
|
@@ -289,9 +289,11 @@ find_scanout_candidate (MetaCompositorView *compositor_view,
|
|
return FALSE;
|
|
|
|
if (!meta_stage_view_is_cursor_overlay_inhibited (view) &&
|
|
+ !meta_onscreen_native_is_tearing_enabled (
|
|
+ META_ONSCREEN_NATIVE (framebuffer)) &&
|
|
surface_actor_has_overlapping_cursor_overlays (compositor,
|
|
compositor_view,
|
|
surface_actor))
|
|
{
|
|
meta_topic (META_DEBUG_RENDER,
|
|
"No direct scanout candidate: overlapping software cursors");
|
|
diff --git a/src/meson.build b/src/meson.build
|
|
--- a/src/meson.build
|
|
+++ b/src/meson.build
|
|
@@ -1077,5 +1077,6 @@ wayland_protocols = [
|
|
['single-pixel-buffer', 'staging', 1, ],
|
|
['tablet', 'stable', 2, ],
|
|
+ ['tearing-control', 'staging', 1, ],
|
|
['text-input-unstable-v3', 'private', ],
|
|
['viewporter', 'stable', ],
|
|
['xdg-activation', 'staging', 1, ],
|
|
diff --git a/src/wayland/meta-wayland-dma-buf.c b/src/wayland/meta-wayland-dma-buf.c
|
|
--- a/src/wayland/meta-wayland-dma-buf.c
|
|
+++ b/src/wayland/meta-wayland-dma-buf.c
|
|
@@ -630,11 +630,22 @@ has_modifier (GArray *modifiers,
|
|
}
|
|
|
|
#ifdef HAVE_NATIVE_BACKEND
|
|
+static gboolean
|
|
+async_supports_modifier (MetaKmsPlane *plane,
|
|
+ uint32_t drm_format,
|
|
+ uint64_t drm_modifier)
|
|
+{
|
|
+ GArray *async_modifiers =
|
|
+ meta_kms_plane_get_async_modifiers_for_format (plane, drm_format);
|
|
+ return async_modifiers && has_modifier (async_modifiers, drm_modifier);
|
|
+}
|
|
+
|
|
static gboolean
|
|
crtc_supports_modifier (MetaCrtcKms *crtc_kms,
|
|
uint32_t drm_format,
|
|
- uint64_t drm_modifier)
|
|
+ uint64_t drm_modifier,
|
|
+ gboolean is_async)
|
|
{
|
|
MetaKmsPlane *plane = meta_crtc_kms_get_assigned_primary_plane (crtc_kms);
|
|
GArray *crtc_modifiers;
|