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:
commit
0139952de6
@ -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
|
|
2
_service
2
_service
@ -3,7 +3,7 @@
|
|||||||
<service name="obs_scm" mode="manual">
|
<service name="obs_scm" mode="manual">
|
||||||
<param name="scm">git</param>
|
<param name="scm">git</param>
|
||||||
<param name="url">https://gitlab.gnome.org/GNOME/mutter.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="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
|
||||||
<param name="versionrewrite-pattern">(.*)\+0</param>
|
<param name="versionrewrite-pattern">(.*)\+0</param>
|
||||||
<param name="versionrewrite-replacement">\1</param>
|
<param name="versionrewrite-replacement">\1</param>
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:1e3b763da74e5643c455ccc0e7b47a40bca4b6a4b5d6740785feeb4d1bae4752
|
|
||||||
size 30319629
|
|
3
mutter-46.1.obscpio
Normal file
3
mutter-46.1.obscpio
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:b4d4c627f6e0ca3023e95a395aaaf90265e120299ed372d1485a380ca8b5d18d
|
||||||
|
size 30450701
|
@ -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
|
|
||||||
|
|
@ -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>
|
Sun Apr 28 01:22:43 UTC 2024 - Xiaoguang Wang <xiaoguang.wang@suse.com>
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
name: mutter
|
name: mutter
|
||||||
version: 46.0
|
version: 46.1
|
||||||
mtime: 1710596587
|
mtime: 1713548914
|
||||||
commit: c4753689e3413cd9332d885dd0297b3b7d9ba9ca
|
commit: b57c80602d3780bb9b13fddcf2caca394910e6b4
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
%define api_minor 0
|
%define api_minor 0
|
||||||
%define libmutter libmutter-%{api_major}-%{api_minor}
|
%define libmutter libmutter-%{api_major}-%{api_minor}
|
||||||
Name: mutter
|
Name: mutter
|
||||||
Version: 46.0
|
Version: 46.1
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Window and compositing manager based on Clutter
|
Summary: Window and compositing manager based on Clutter
|
||||||
License: GPL-2.0-or-later
|
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
|
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
|
# 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
|
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
|
## 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.
|
# 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 2 -p1
|
||||||
%patch -P 3 -p1
|
%patch -P 3 -p1
|
||||||
%patch -P 4 -p1
|
%patch -P 4 -p1
|
||||||
%patch -P 5 -p1
|
|
||||||
%patch -P 6 -p1
|
|
||||||
%endif
|
%endif
|
||||||
# SLE-only patches and translations.
|
# SLE-only patches and translations.
|
||||||
%if 0%{?sle_version}
|
%if 0%{?sle_version}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user