1
0
Fork 0

Add mr2694

Signed-off-by: Mingi Sung <FiestaLake@protonmail.com>
This commit is contained in:
Mingi Sung 2022-11-24 23:57:43 +09:00
parent e648f81631
commit d334c13dbb
No known key found for this signature in database
GPG key ID: 67B568F99ECE42DC
4 changed files with 71 additions and 12 deletions

View file

@ -1,7 +1,7 @@
pkgbase = mutter-performance
pkgdesc = A window manager for GNOME | Attempts to improve performances with non-upstreamed merge-requests and frequent stable branch resync
pkgver = 43.1+r1+gaccf532a2
pkgrel = 1
pkgrel = 2
url = https://gitlab.gnome.org/GNOME/mutter
arch = x86_64
license = GPL
@ -39,10 +39,12 @@ pkgbase = mutter-performance
source = mr1441.patch
source = mr1880.patch
source = mr2671.patch
source = mr2694.patch
sha256sums = SKIP
sha256sums = d7a014965cbb90892ccbe65d0de49ddce50191dbd7521467d7f11c2f4825045c
sha256sums = a075fad955d589ea5e59178221a80fe162f7b10cd0c77fcb94219fb380810952
sha256sums = d7f8e1a52ddcc02af677b7a7167b720028a4363f1b4df8a9a47fdf5b770ca721
sha256sums = 45ba598e88a4b18ab2d0522abe058efaf0ceb05895bae6f31887bcd4492c45ce
sha256sums = 620aabe6b59a6b4ccde95c0aecf98c290ad218c0b8a340bb0bc075c6cc0846e1
pkgname = mutter-performance
groups = gnome

View file

@ -11,17 +11,16 @@
### PACKAGE OPTIONS
## MERGE REQUESTS SELECTION
# Merge Requests List: ('579' '1441' '1880' '2671')
_merge_requests_to_use=('1441' '1880' '2671')
# Merge Requests List: ('579' '1441' '1880' '2671' '2694')
_merge_requests_to_use=('1441' '1880' '2671' '2694')
## Disable building a DOCS package
# Remember to unset this variable when producing .SRCINFO
: "${_disable_docs:=""}"
### IMPORTANT: Do no edit below this line unless you know what you're doing
### IMPORTANT: Do no edit below this line unless you know what you're doing!
pkgbase=mutter-performance
if [ -n "$_disable_docs" ]; then
@ -30,7 +29,7 @@ else
pkgname=(mutter-performance mutter-performance-docs)
fi
pkgver=43.1+r1+gaccf532a2
pkgrel=1
pkgrel=2
pkgdesc="A window manager for GNOME | Attempts to improve performances with non-upstreamed merge-requests and frequent stable branch resync"
url="https://gitlab.gnome.org/GNOME/mutter"
arch=(x86_64)
@ -46,11 +45,13 @@ _commit=accf532a29ea9a1d70880dfaa1834050aa3ae7be # tags/43.1^1
source=("$pkgname::git+https://gitlab.gnome.org/GNOME/mutter.git#commit=$_commit"
'mr1441.patch'
'mr1880.patch'
'mr2671.patch')
'mr2671.patch'
'mr2694.patch')
sha256sums=('SKIP'
'd7a014965cbb90892ccbe65d0de49ddce50191dbd7521467d7f11c2f4825045c'
'a075fad955d589ea5e59178221a80fe162f7b10cd0c77fcb94219fb380810952'
'd7f8e1a52ddcc02af677b7a7167b720028a4363f1b4df8a9a47fdf5b770ca721')
'45ba598e88a4b18ab2d0522abe058efaf0ceb05895bae6f31887bcd4492c45ce'
'620aabe6b59a6b4ccde95c0aecf98c290ad218c0b8a340bb0bc075c6cc0846e1')
pkgver() {
cd $pkgname
@ -98,7 +99,6 @@ prepare() {
#git fetch verdre
#git fetch 3v1no
### Merge Requests
# Merge Request Prototype
@ -124,7 +124,6 @@ prepare() {
#
# Generally, a MR status oscillate between 2 and 3 and then becomes 4.
# Title: backends: Do not reload keymap on new keyboard notifications
# Author: Carlos Garnacho <carlosg@gnome.org>
# URL: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/579
@ -158,8 +157,19 @@ prepare() {
# Type: 1
# Status: 2
# Comment: Avoid some allocations, save some CPU cycles and make the code easier to read.
# NOTE: This changes mutter's behaviors, which can bring regressions when using extensions.
# Disable this MR if you encounter errors with those extensions.
pick_mr '2671' 'mr2671.patch' 'patch'
# Title: clutter/actor: Show on all stage-views when actors have no allocation
# Author: Jonas Dreßler <verdre@v0yd.nl>
# URL: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2694
# Type: 3
# Status: 3
# Comment: For paint volumes, queue full-stage redraws. For actors without valid allocations,
# set priv->stage_views to all available stage views.
pick_mr '2694' 'mr2694.patch' 'patch'
}
build() {

View file

@ -2,7 +2,7 @@ Author: Robert Mader <robert.mader@posteo.de>
Source: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2671
Editor: Mingi Sung <FiestaLake@protonmail.com>
Commit: d9f1681b149c12c94e3e457c6decd34babed951f
Last Updated: 11/16/22 (Mutter 43.0-1)
Last Updated: 11/16/22 (Mutter 43.1-1)
---
Avoid some allocations, save some CPU cycles and make the code easier

47
mr2694.patch Normal file
View file

@ -0,0 +1,47 @@
Author: Jonas Dreßler <verdre@v0yd.nl>
Source: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2694
Editor: Mingi Sung <FiestaLake@protonmail.com>
Commit: c627b9c3c7fc7ce59a2696dd3012a08b18e6b1cb
Last Updated: 11/24/22 (Mutter 43.1+r1+gaccf532a2-2)
---
When a badly behaving ClutterActor implementation manages to invalidate
the allocation after the layout phase and before painting, we have no
idea where the actor should be painted without running the whole layout
machinery again.
For paint volumes in this case we pretend the actor covers the whole
stage and queue full-stage redraws. When updating stage-views, we're
also handling this case, but not in the most graceful way. Just like
with paint volumes, we should assume an actor without a valid allocation
is simply everywhere, so set priv->stage_views to all available stage
views in that case.
---
diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c
index 1dde8d94863b3ef3f309e2bc6ab8064aec2d4f7f..10a5e3203b393ec6bc6bed41b5f9ae58a2c16ac1 100644
--- a/clutter/clutter/clutter-actor.c
+++ b/clutter/clutter/clutter-actor.c
@@ -15463,18 +15463,19 @@ update_stage_views (ClutterActor *self)
ClutterStage *stage;
graphene_rect_t bounding_rect;
+ stage = CLUTTER_STAGE (_clutter_actor_get_stage_internal (self));
+ g_return_if_fail (stage);
+
old_stage_views = g_steal_pointer (&priv->stage_views);
if (priv->needs_allocation)
{
g_warning ("Can't update stage views actor %s is on because it needs an "
"allocation.", _clutter_actor_get_debug_name (self));
+ priv->stage_views = g_list_copy (clutter_stage_peek_stage_views (stage));
goto out;
}
- stage = CLUTTER_STAGE (_clutter_actor_get_stage_internal (self));
- g_return_if_fail (stage);
-
clutter_actor_get_transformed_extents (self, &bounding_rect);
if (bounding_rect.size.width == 0.0 ||