SHA256
1
0
forked from pool/mutter

Accepting request 1171389 from GNOME:Factory

- Update to version 46.1:
  + Implement linux-drm-syncobj-v1.
  + Fix input lag on X11 nvidia.
  + Fix scanout on secondary GPUs.
  + Don't apply max-render-time to secondary GPUs.
  + Fix reusing single-pixel buffers.
  + Improve scanout candidate check.
  + Always use logical pixels for.
  + Fix modifiers getting stuck during grabs.
  + Fix night-light on displays without EDID.
  + Fix secondary GPU acceleration with nvidia driver.
  + Fix some XWayland clients being partially click-through.
  + Fix initial suspended state.
  + Fixed crashes.
  + Misc. bug fixes and cleanups.
  + Updated translations.
- Drop mutter-fix-front-buffer-lock.patch and
  0001-Revert-clutter-stage-Avoid-queueing-stage-updates-wh.patch:
  fixed upstream. (forwarded request 1171180 from dimstar)

OBS-URL: https://build.opensuse.org/request/show/1171389
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mutter?expand=0&rev=228
This commit is contained in:
Ana Guerrero 2024-05-03 17:43:28 +00:00 committed by Git OBS Bridge
commit 0139952de6
8 changed files with 31 additions and 198 deletions

View File

@ -1,131 +0,0 @@
From 3f3c8876e0494cf7af92ce9b216da70fd4c0c275 Mon Sep 17 00:00:00 2001
From: Xiaoguang Wang <sun.wxg@gmail.com>
Date: Tue, 23 Apr 2024 12:28:45 +0800
Subject: [PATCH] Revert "clutter/stage: Avoid queueing stage updates when
they're already queued"
This reverts commit 261f516af4e635d4bb263bbbbb2f843f0cbe09de.
---
clutter/clutter/clutter-stage-private.h | 2 +-
clutter/clutter/clutter-stage-view.c | 2 +-
clutter/clutter/clutter-stage.c | 30 +++++++++----------------
3 files changed, 12 insertions(+), 22 deletions(-)
Index: mutter-46.0/clutter/clutter/clutter-stage-private.h
===================================================================
--- mutter-46.0.orig/clutter/clutter/clutter-stage-private.h
+++ mutter-46.0/clutter/clutter/clutter-stage-private.h
@@ -59,7 +59,7 @@ void clutter_stage_emit_b
void clutter_stage_emit_after_paint (ClutterStage *stage,
ClutterStageView *view,
ClutterFrame *frame);
-void clutter_stage_after_update (ClutterStage *stage,
+void clutter_stage_emit_after_update (ClutterStage *stage,
ClutterStageView *view,
ClutterFrame *frame);
Index: mutter-46.0/clutter/clutter/clutter-stage-view.c
===================================================================
--- mutter-46.0.orig/clutter/clutter/clutter-stage-view.c
+++ mutter-46.0/clutter/clutter/clutter-stage-view.c
@@ -917,7 +917,7 @@ handle_frame_clock_frame (ClutterFrameCl
priv->needs_update_devices = FALSE;
_clutter_run_repaint_functions (CLUTTER_REPAINT_FLAGS_POST_PAINT);
- clutter_stage_after_update (stage, view, frame);
+ clutter_stage_emit_after_update (stage, view, frame);
return clutter_frame_get_result (frame);
}
Index: mutter-46.0/clutter/clutter/clutter-stage.c
===================================================================
--- mutter-46.0.orig/clutter/clutter/clutter-stage.c
+++ mutter-46.0/clutter/clutter/clutter-stage.c
@@ -130,8 +130,6 @@ typedef struct _ClutterStagePrivate
int update_freeze_count;
- gboolean update_scheduled;
-
GHashTable *pointer_devices;
GHashTable *touch_sequences;
@@ -512,15 +510,11 @@ clutter_stage_emit_after_paint (ClutterS
}
void
-clutter_stage_after_update (ClutterStage *stage,
- ClutterStageView *view,
- ClutterFrame *frame)
+clutter_stage_emit_after_update (ClutterStage *stage,
+ ClutterStageView *view,
+ ClutterFrame *frame)
{
- ClutterStagePrivate *priv = clutter_stage_get_instance_private (stage);
-
g_signal_emit (stage, stage_signals[AFTER_UPDATE], 0, view, frame);
-
- priv->update_scheduled = FALSE;
}
static gboolean
@@ -635,15 +629,19 @@ _clutter_stage_queue_event (ClutterStage
gboolean copy_event)
{
ClutterStagePrivate *priv;
+ gboolean first_event;
g_return_if_fail (CLUTTER_IS_STAGE (stage));
priv = clutter_stage_get_instance_private (stage);
+ first_event = priv->event_queue->length == 0;
+
g_queue_push_tail (priv->event_queue,
copy_event ? clutter_event_copy (event) : event);
- clutter_stage_schedule_update (stage);
+ if (first_event)
+ clutter_stage_schedule_update (stage);
}
static ClutterEvent *
@@ -800,7 +798,8 @@ clutter_stage_queue_actor_relayout (Clut
{
ClutterStagePrivate *priv = clutter_stage_get_instance_private (stage);
- clutter_stage_schedule_update (stage);
+ if (priv->pending_relayouts == NULL)
+ clutter_stage_schedule_update (stage);
priv->pending_relayouts = g_slist_prepend (priv->pending_relayouts,
g_object_ref (actor));
@@ -2520,19 +2519,12 @@ _clutter_stage_get_window (ClutterStage
void
clutter_stage_schedule_update (ClutterStage *stage)
{
- ClutterStagePrivate *priv = clutter_stage_get_instance_private (stage);
ClutterStageWindow *stage_window;
- gboolean first_event;
GList *l;
if (CLUTTER_ACTOR_IN_DESTRUCTION (stage))
return;
- first_event = priv->event_queue->length == 0;
-
- if (priv->update_scheduled && !first_event)
- return;
-
stage_window = _clutter_stage_get_window (stage);
if (stage_window == NULL)
return;
@@ -2543,8 +2535,6 @@ clutter_stage_schedule_update (ClutterSt
clutter_stage_view_schedule_update (view);
}
-
- priv->update_scheduled = TRUE;
}
void

View File

@ -3,7 +3,7 @@
<service name="obs_scm" mode="manual">
<param name="scm">git</param>
<param name="url">https://gitlab.gnome.org/GNOME/mutter.git</param>
<param name="revision">46.0</param>
<param name="revision">46.1</param>
<param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
<param name="versionrewrite-pattern">(.*)\+0</param>
<param name="versionrewrite-replacement">\1</param>

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1e3b763da74e5643c455ccc0e7b47a40bca4b6a4b5d6740785feeb4d1bae4752
size 30319629

3
mutter-46.1.obscpio Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b4d4c627f6e0ca3023e95a395aaaf90265e120299ed372d1485a380ca8b5d18d
size 30450701

View File

@ -1,53 +0,0 @@
From 6fd0a273b669414aa1fcfd4cf193d8e6c9cd2773 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <mdaenzer@redhat.com>
Date: Wed, 27 Mar 2024 18:16:17 +0100
Subject: [PATCH] drm-buffer-gbm: Do not call ensure_fb_id from lock_front
When preparing a frame for scanout on a secondary GPU, calling
meta_drm_buffer_gbm_ensure_fb_id for the primary GPU device is
unnecessary and potentially harmful.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3389
---
src/backends/native/meta-drm-buffer-gbm.c | 2 +-
src/backends/native/meta-onscreen-native.c | 11 +++++++++++
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/backends/native/meta-drm-buffer-gbm.c b/src/backends/native/meta-drm-buffer-gbm.c
index 161d43957d4..4ca8fb0f462 100644
--- a/src/backends/native/meta-drm-buffer-gbm.c
+++ b/src/backends/native/meta-drm-buffer-gbm.c
@@ -186,7 +186,7 @@ lock_front_buffer (MetaDrmBufferGbm *buffer_gbm,
return FALSE;
}
- return meta_drm_buffer_gbm_ensure_fb_id (META_DRM_BUFFER (buffer_gbm), error);
+ return TRUE;
}
MetaDrmBufferGbm *
diff --git a/src/backends/native/meta-onscreen-native.c b/src/backends/native/meta-onscreen-native.c
index e40b03f3eaf..f2bae4f00d6 100644
--- a/src/backends/native/meta-onscreen-native.c
+++ b/src/backends/native/meta-onscreen-native.c
@@ -1373,6 +1373,17 @@ meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen,
#endif
}
+ if (!meta_drm_buffer_ensure_fb_id (onscreen_native->gbm.next_fb, &error))
+ {
+ g_warning ("Failed to ensure KMS FB ID on %s: %s",
+ meta_device_file_get_path (render_device_file),
+ error->message);
+
+ frame_info->flags |= COGL_FRAME_INFO_FLAG_SYMBOLIC;
+ meta_onscreen_native_notify_frame_complete (onscreen);
+ return;
+ }
+
/*
* If we changed EGL context, cogl will have the wrong idea about what is
* current, making it fail to set it when it needs to. Avoid that by making
--
GitLab

View File

@ -1,3 +1,26 @@
-------------------------------------------------------------------
Wed May 1 13:01:02 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Update to version 46.1:
+ Implement linux-drm-syncobj-v1.
+ Fix input lag on X11 nvidia.
+ Fix scanout on secondary GPUs.
+ Don't apply max-render-time to secondary GPUs.
+ Fix reusing single-pixel buffers.
+ Improve scanout candidate check.
+ Always use logical pixels for.
+ Fix modifiers getting stuck during grabs.
+ Fix night-light on displays without EDID.
+ Fix secondary GPU acceleration with nvidia driver.
+ Fix some XWayland clients being partially click-through.
+ Fix initial suspended state.
+ Fixed crashes.
+ Misc. bug fixes and cleanups.
+ Updated translations.
- Drop mutter-fix-front-buffer-lock.patch and
0001-Revert-clutter-stage-Avoid-queueing-stage-updates-wh.patch:
fixed upstream.
-------------------------------------------------------------------
Sun Apr 28 01:22:43 UTC 2024 - Xiaoguang Wang <xiaoguang.wang@suse.com>

View File

@ -1,4 +1,4 @@
name: mutter
version: 46.0
mtime: 1710596587
commit: c4753689e3413cd9332d885dd0297b3b7d9ba9ca
version: 46.1
mtime: 1713548914
commit: b57c80602d3780bb9b13fddcf2caca394910e6b4

View File

@ -22,7 +22,7 @@
%define api_minor 0
%define libmutter libmutter-%{api_major}-%{api_minor}
Name: mutter
Version: 46.0
Version: 46.1
Release: 0
Summary: Window and compositing manager based on Clutter
License: GPL-2.0-or-later
@ -38,10 +38,6 @@ Patch2: mutter-window-actor-Special-case-shaped-Java-windows.patch
Patch3: mutter-fix-x11-restart.patch
# PATCH-FIX-OPENSUSE 0001-Revert-clutter-actor-Cache-stage-relative-instead-of.patch glgo#GNOME/mutter#3302 bsc#1219546 alynx.zhou@suse.com -- Fix partial update on VT switch
Patch4: 0001-Revert-clutter-actor-Cache-stage-relative-instead-of.patch
# PATCH-FIX-UPSTREAM mutter-fix-front-buffer-lock.patch glgo#gnome/mutter!3674 bsc#1222409 alynx.zhou@suse.com -- Fix front buffer lock error
Patch5: mutter-fix-front-buffer-lock.patch
# PATCH-FIX-UPSTREAM 0001-Revert-clutter-stage-Avoid-queueing-stage-updates-wh.patch glgo#GNOME/mutter#3452 bsc#1222612 xwang@suse.com -- Fix blank screen on Xorg when logging in or logging out
Patch6: 0001-Revert-clutter-stage-Avoid-queueing-stage-updates-wh.patch
## SLE-only patches start at 1000
# PATCH-FEATURE-SLE mutter-SLE-bell.patch FATE#316042 bnc#889218 idonmez@suse.com -- make audible bell work out of the box.
@ -153,8 +149,6 @@ applications that want to make use of the mutter library.
%patch -P 2 -p1
%patch -P 3 -p1
%patch -P 4 -p1
%patch -P 5 -p1
%patch -P 6 -p1
%endif
# SLE-only patches and translations.
%if 0%{?sle_version}