mirror of
https://gitlab.postmarketos.org/postmarketOS/pmaports.git
synced 2025-07-13 08:39:47 +03:00
99 lines
3.7 KiB
Diff
99 lines
3.7 KiB
Diff
Patch-Source: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4338
|
|
---
|
|
From d6005b539ca42905dfaf1c3854540a559332b78e Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <mdaenzer@redhat.com>
|
|
Date: Mon, 17 Mar 2025 11:00:11 +0100
|
|
Subject: [PATCH 1/2] kms/impl-device: Always catch pending KMS update in
|
|
_schedule_process
|
|
|
|
Not only if the deadline timer is enabled. With the next commit, it'll
|
|
be semi-expected to happen even if the deadline timer is disabled.
|
|
|
|
Still leave the warning though, as a reminder that we'd rather prevent
|
|
this outside of the KMS thread.
|
|
|
|
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4338>
|
|
---
|
|
src/backends/native/meta-kms-impl-device.c | 19 +++++++++----------
|
|
1 file changed, 9 insertions(+), 10 deletions(-)
|
|
|
|
diff --git a/src/backends/native/meta-kms-impl-device.c b/src/backends/native/meta-kms-impl-device.c
|
|
index 0135f22033..25cb1cbd5e 100644
|
|
--- a/src/backends/native/meta-kms-impl-device.c
|
|
+++ b/src/backends/native/meta-kms-impl-device.c
|
|
@@ -2081,17 +2081,8 @@ meta_kms_impl_device_schedule_process (MetaKmsImplDevice *impl_device,
|
|
|
|
if (ensure_deadline_timer_armed (impl_device, crtc_frame))
|
|
return;
|
|
-
|
|
- if (crtc_frame->pending_update)
|
|
- {
|
|
- meta_kms_impl_device_do_process_update (impl_device, crtc_frame,
|
|
- crtc_frame->crtc,
|
|
- crtc_frame->pending_update,
|
|
- META_KMS_UPDATE_FLAG_NONE);
|
|
- }
|
|
}
|
|
-
|
|
- if (crtc_frame->pending_update)
|
|
+ else if (crtc_frame->pending_update)
|
|
{
|
|
MetaKmsImplDevicePrivate *priv =
|
|
meta_kms_impl_device_get_instance_private (impl_device);
|
|
@@ -2100,6 +2091,14 @@ meta_kms_impl_device_schedule_process (MetaKmsImplDevice *impl_device,
|
|
crtc_frame->pending_update, priv->deadline_timer_state);
|
|
}
|
|
|
|
+ if (crtc_frame->pending_update)
|
|
+ {
|
|
+ meta_kms_impl_device_do_process_update (impl_device, crtc_frame,
|
|
+ crtc_frame->crtc,
|
|
+ crtc_frame->pending_update,
|
|
+ META_KMS_UPDATE_FLAG_NONE);
|
|
+ }
|
|
+
|
|
meta_kms_device_set_needs_flush (meta_kms_crtc_get_device (crtc), crtc);
|
|
}
|
|
|
|
--
|
|
GitLab
|
|
|
|
|
|
From a355f68d347830ab1dc8fba0bf409dd0aaf2804d Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <mdaenzer@redhat.com>
|
|
Date: Mon, 17 Mar 2025 10:50:13 +0100
|
|
Subject: [PATCH 2/2] Revert "onscreen/native: Account for all posted frames"
|
|
|
|
This reverts commit 9fc5fdc953f96cd91ad54fce6c50964e7ce57815.
|
|
|
|
It caused freezes for some users.
|
|
|
|
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3974
|
|
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4338>
|
|
---
|
|
src/backends/native/meta-onscreen-native.c | 2 --
|
|
1 file changed, 2 deletions(-)
|
|
|
|
diff --git a/src/backends/native/meta-onscreen-native.c b/src/backends/native/meta-onscreen-native.c
|
|
index bb7a2c4bd5..a8d7d7aa26 100644
|
|
--- a/src/backends/native/meta-onscreen-native.c
|
|
+++ b/src/backends/native/meta-onscreen-native.c
|
|
@@ -1672,7 +1672,6 @@ maybe_post_next_frame (CoglOnscreen *onscreen)
|
|
{
|
|
kms_update = meta_frame_native_steal_kms_update (frame_native);
|
|
post_nonprimary_plane_update (onscreen_native, frame, kms_update);
|
|
- onscreen_native->posted_frame = clutter_frame_ref (frame);
|
|
return;
|
|
}
|
|
|
|
@@ -2127,7 +2126,6 @@ meta_onscreen_native_finish_frame (CoglOnscreen *onscreen,
|
|
}
|
|
|
|
post_nonprimary_plane_update (onscreen_native, frame, kms_update);
|
|
- onscreen_native->posted_frame = clutter_frame_ref (frame);
|
|
|
|
clutter_frame_set_result (frame, CLUTTER_FRAME_RESULT_PENDING_PRESENTED);
|
|
}
|
|
--
|
|
GitLab
|
|
|