From aea1aee79e0fff2ff78e1f4fc4b7650c51c8f14f Mon Sep 17 00:00:00 2001 From: Sebastian Wick Date: Mon, 23 Dec 2024 12:46:21 +0100 Subject: [PATCH] compositor-view/native: Check output color state for direct scanout The stage view color state is not the output color state but usually a linear version of it. For direct scanout, we need the view color state to match the output color state instead. Fixes: 20c7653d49 ("compositor-view/native: Don't scan out surface with color state mismatch") Part-of: --- src/compositor/meta-compositor-view-native.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/compositor/meta-compositor-view-native.c b/src/compositor/meta-compositor-view-native.c index f56ca4fbb..9b644d977 100644 --- a/src/compositor/meta-compositor-view-native.c +++ b/src/compositor/meta-compositor-view-native.c @@ -159,7 +159,7 @@ find_scanout_candidate (MetaCompositorView *compositor_view, ClutterActorBox actor_box; MetaSurfaceActor *surface_actor; MetaSurfaceActorWayland *surface_actor_wayland; - ClutterColorState *view_color_state; + ClutterColorState *output_color_state; ClutterColorState *surface_color_state; MetaWaylandSurface *surface; @@ -290,11 +290,11 @@ find_scanout_candidate (MetaCompositorView *compositor_view, return FALSE; } - view_color_state = - clutter_stage_view_get_color_state (CLUTTER_STAGE_VIEW (view)); + output_color_state = + clutter_stage_view_get_output_color_state (CLUTTER_STAGE_VIEW (view)); surface_color_state = clutter_actor_get_color_state (CLUTTER_ACTOR (surface_actor)); - if (!clutter_color_state_equals (view_color_state, surface_color_state)) + if (!clutter_color_state_equals (output_color_state, surface_color_state)) { meta_topic (META_DEBUG_RENDER, "No direct scanout candidate: "