From 118f294a480564de477bad02599a3fa5c5c46c32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Date: Wed, 2 Oct 2024 17:45:41 +0200 Subject: [PATCH] onscreen/native: Don't set sync_fd for KMS update if secondary GPU used The sync_fd represents only the primary GPU work. Fixes: c2621eca151d ("onscreen/native: Set latest cogl sync_fd on KMS update") v2: * Use g_steal_fd. (Georges Basile Stavracas Neto, Sebastian Wick) Part-of: --- src/backends/native/meta-onscreen-native.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/backends/native/meta-onscreen-native.c b/src/backends/native/meta-onscreen-native.c index 2ac762dc9..89a893bb0 100644 --- a/src/backends/native/meta-onscreen-native.c +++ b/src/backends/native/meta-onscreen-native.c @@ -1314,7 +1314,6 @@ meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen, g_autoptr (MetaDrmBuffer) buffer = NULL; MetaKmsCrtc *kms_crtc; MetaKmsDevice *kms_device; - int sync_fd; COGL_TRACE_SCOPED_ANCHOR (MetaRendererNativePostKmsUpdate); @@ -1499,8 +1498,15 @@ meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen, meta_kms_device_get_path (kms_device)); kms_update = meta_frame_native_steal_kms_update (frame_native); - sync_fd = cogl_context_get_latest_sync_fd (cogl_context); - meta_kms_update_set_sync_fd (kms_update, sync_fd); + + if (!secondary_gpu_used) + { + int sync_fd; + + sync_fd = cogl_context_get_latest_sync_fd (cogl_context); + meta_kms_update_set_sync_fd (kms_update, g_steal_fd (&sync_fd)); + } + meta_kms_device_post_update (kms_device, kms_update, META_KMS_UPDATE_FLAG_NONE); clutter_frame_set_result (frame, CLUTTER_FRAME_RESULT_PENDING_PRESENTED);