1:46.0-1
* Also set name of the git repo we clone to `$_pkgname` Signed-off-by: Mingi Sung <dawdleming@gmail.com>
This commit is contained in:
parent
cca7a2bbf3
commit
f63d300bef
5 changed files with 526 additions and 944 deletions
49
.SRCINFO
49
.SRCINFO
|
@ -1,6 +1,6 @@
|
|||
pkgbase = mutter-performance
|
||||
pkgdesc = A window manager for GNOME | Attempts to improve performances with non-upstreamed merge-requests and frequent stable branch resync
|
||||
pkgver = 45.5
|
||||
pkgver = 46.0
|
||||
pkgrel = 1
|
||||
epoch = 1
|
||||
url = https://gitlab.gnome.org/GNOME/mutter
|
||||
|
@ -17,39 +17,74 @@ pkgbase = mutter-performance
|
|||
makedepends = wayland-protocols
|
||||
makedepends = xorg-server
|
||||
makedepends = xorg-server-xvfb
|
||||
depends = at-spi2-core
|
||||
depends = cairo
|
||||
depends = colord
|
||||
depends = dconf
|
||||
depends = fontconfig
|
||||
depends = fribidi
|
||||
depends = gcc-libs
|
||||
depends = gdk-pixbuf2
|
||||
depends = glib2
|
||||
depends = glibc
|
||||
depends = gnome-desktop-4
|
||||
depends = gnome-settings-daemon
|
||||
depends = graphene
|
||||
depends = gsettings-desktop-schemas
|
||||
depends = gtk4
|
||||
depends = harfbuzz
|
||||
depends = iio-sensor-proxy
|
||||
depends = lcms2
|
||||
depends = libcanberra
|
||||
depends = libcolord
|
||||
depends = libdisplay-info
|
||||
depends = libdrm
|
||||
depends = libei
|
||||
depends = libglvnd
|
||||
depends = libgudev
|
||||
depends = libice
|
||||
depends = libinput
|
||||
depends = libpipewire
|
||||
depends = libsm
|
||||
depends = libsysprof-capture
|
||||
depends = libwacom
|
||||
depends = libx11
|
||||
depends = libxau
|
||||
depends = libxcb
|
||||
depends = libxcomposite
|
||||
depends = libxcursor
|
||||
depends = libxdamage
|
||||
depends = libxext
|
||||
depends = libxfixes
|
||||
depends = libxi
|
||||
depends = libxinerama
|
||||
depends = libxkbcommon
|
||||
depends = libxkbcommon-x11
|
||||
depends = libxkbfile
|
||||
depends = libxrandr
|
||||
depends = libxtst
|
||||
depends = mesa
|
||||
depends = pango
|
||||
depends = pipewire
|
||||
depends = pixman
|
||||
depends = python
|
||||
depends = startup-notification
|
||||
depends = systemd-libs
|
||||
depends = wayland
|
||||
depends = xorg-xwayland
|
||||
source = mutter-performance::git+https://gitlab.gnome.org/GNOME/mutter.git#commit=4e8ccf5f9c177595aac11895ed50a4e35d5087e4
|
||||
source = mutter-performance::git+https://gitlab.gnome.org/GNOME/mutter.git#commit=c4753689e3413cd9332d885dd0297b3b7d9ba9ca
|
||||
source = mr1441.patch
|
||||
source = mr3304.patch
|
||||
source = mr3373.patch
|
||||
sha256sums = SKIP
|
||||
sha256sums = 8d082a002e3506f67cf40c9ea03119e9e24f6c02238e633265a51992501e9799
|
||||
sha256sums = 1339a8235b54a218c109a1d5e0992b3dca0f7610beb98fab0c27f0d68e026e16
|
||||
sha256sums = 3e1f07b696ad37b1c639a524c092cd9259444bc6156542901ccaec936bea240f
|
||||
b2sums = 04a14854c8ec2668a340b241102b7b2ebbc0387a9771a5bd2c2366419ee08e7ebb308f2288f4a64b9d08053e1897eb514a46802584d1590f8bcebde4a613afaa
|
||||
b2sums = f183956d0d632dcedbc8577ab73e66cee8806ab901723fc93861787ef19f491b32dd7986ca3df86f73a7e77270ce74c948ab7467cd91f9211858514ca310bb06
|
||||
b2sums = f53c0a7cf5fe400e83379be5e3694dba0668e0917b5bf29c485cef802660e38176ab856118a030ddc87bd49b75d0dd6f9e0d8f32d2b2ef27ebb1737f8914bf21
|
||||
b2sums = 71f10db4ebe04a787940c7048131eac67cffd3ec8e415cfc961b8041b881f272650581e9df273e2a8da23a50ec9151c790dc2d5ecc0309ab2847a22f8c922c9c
|
||||
|
||||
pkgname = mutter-performance
|
||||
groups = gnome
|
||||
provides = mutter
|
||||
provides = libmutter-13.so
|
||||
provides = libmutter-14.so
|
||||
conflicts = mutter
|
||||
|
||||
pkgname = mutter-performance-docs
|
||||
|
|
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1 +1 @@
|
|||
mutter-performance
|
||||
mutter
|
||||
|
|
69
PKGBUILD
69
PKGBUILD
|
@ -24,6 +24,7 @@ _merge_requests_to_use=('1441' '3304' '3373')
|
|||
|
||||
### IMPORTANT: Do no edit below this line unless you know what you're doing!
|
||||
|
||||
_pkgname=mutter
|
||||
pkgbase=mutter-performance
|
||||
if [ -n "$_disable_docs" ]; then
|
||||
pkgname=mutter-performance
|
||||
|
@ -31,33 +32,69 @@ else
|
|||
pkgname=(mutter-performance mutter-performance-docs)
|
||||
fi
|
||||
epoch=1
|
||||
pkgver=45.5
|
||||
pkgver=46.0
|
||||
pkgrel=1
|
||||
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 aarch64)
|
||||
license=(GPL)
|
||||
depends=(
|
||||
at-spi2-core
|
||||
cairo
|
||||
colord
|
||||
dconf
|
||||
fontconfig
|
||||
fribidi
|
||||
gcc-libs
|
||||
gdk-pixbuf2
|
||||
glib2
|
||||
glibc
|
||||
gnome-desktop-4
|
||||
gnome-settings-daemon
|
||||
graphene
|
||||
gsettings-desktop-schemas
|
||||
gtk4
|
||||
harfbuzz
|
||||
iio-sensor-proxy
|
||||
lcms2
|
||||
libcanberra
|
||||
libcolord
|
||||
libdisplay-info
|
||||
libdrm
|
||||
libei
|
||||
libglvnd
|
||||
libgudev
|
||||
libice
|
||||
libinput
|
||||
libpipewire
|
||||
libsm
|
||||
libsysprof-capture
|
||||
libwacom
|
||||
libx11
|
||||
libxau
|
||||
libxcb
|
||||
libxcomposite
|
||||
libxcursor
|
||||
libxdamage
|
||||
libxext
|
||||
libxfixes
|
||||
libxi
|
||||
libxinerama
|
||||
libxkbcommon
|
||||
libxkbcommon-x11
|
||||
libxkbfile
|
||||
libxrandr
|
||||
libxtst
|
||||
mesa
|
||||
pango
|
||||
pipewire
|
||||
pixman
|
||||
python
|
||||
startup-notification
|
||||
systemd-libs
|
||||
wayland
|
||||
xorg-xwayland
|
||||
|
||||
)
|
||||
makedepends=(
|
||||
egl-wayland
|
||||
|
@ -74,18 +111,18 @@ makedepends=(
|
|||
if [ -n "$_enable_check" ]; then
|
||||
checkdepends=(gnome-session xorg-server-xvfb pipewire-session-manager python-dbusmock zenity)
|
||||
fi
|
||||
_commit=4e8ccf5f9c177595aac11895ed50a4e35d5087e4 # tags/45.5^0
|
||||
source=("$pkgname::git+https://gitlab.gnome.org/GNOME/mutter.git#commit=$_commit"
|
||||
_commit=c4753689e3413cd9332d885dd0297b3b7d9ba9ca # tags/46.0^0
|
||||
source=("git+https://gitlab.gnome.org/GNOME/mutter.git#commit=$_commit"
|
||||
'mr1441.patch'
|
||||
'mr3304.patch'
|
||||
'mr3373.patch')
|
||||
sha256sums=('SKIP'
|
||||
'8d082a002e3506f67cf40c9ea03119e9e24f6c02238e633265a51992501e9799'
|
||||
'1339a8235b54a218c109a1d5e0992b3dca0f7610beb98fab0c27f0d68e026e16'
|
||||
'3e1f07b696ad37b1c639a524c092cd9259444bc6156542901ccaec936bea240f')
|
||||
b2sums=('04a14854c8ec2668a340b241102b7b2ebbc0387a9771a5bd2c2366419ee08e7ebb308f2288f4a64b9d08053e1897eb514a46802584d1590f8bcebde4a613afaa'
|
||||
'f183956d0d632dcedbc8577ab73e66cee8806ab901723fc93861787ef19f491b32dd7986ca3df86f73a7e77270ce74c948ab7467cd91f9211858514ca310bb06'
|
||||
'f53c0a7cf5fe400e83379be5e3694dba0668e0917b5bf29c485cef802660e38176ab856118a030ddc87bd49b75d0dd6f9e0d8f32d2b2ef27ebb1737f8914bf21'
|
||||
'71f10db4ebe04a787940c7048131eac67cffd3ec8e415cfc961b8041b881f272650581e9df273e2a8da23a50ec9151c790dc2d5ecc0309ab2847a22f8c922c9c')
|
||||
|
||||
pkgver() {
|
||||
cd $pkgname
|
||||
cd $_pkgname
|
||||
git describe --tags | sed 's/[^-]*-g/r&/;s/-/+/g'
|
||||
}
|
||||
|
||||
|
@ -117,7 +154,7 @@ pick_mr() {
|
|||
}
|
||||
|
||||
prepare() {
|
||||
cd $pkgname
|
||||
cd $_pkgname
|
||||
|
||||
git reset --hard
|
||||
git cherry-pick --abort || true
|
||||
|
@ -196,7 +233,7 @@ build() {
|
|||
-D egl_device=true
|
||||
-D wayland_eglstream=true
|
||||
-D installed_tests=false
|
||||
-D libdisplay_info=true
|
||||
-D libdisplay_info=enabled
|
||||
-D docs=$(if ! [ -n "$_disable_docs" ]; then echo "true"; else echo "false"; fi)
|
||||
-D tests=$(if [ -n "$_enable_check" ]; then echo "true"; else echo "false"; fi)
|
||||
)
|
||||
|
@ -204,7 +241,7 @@ build() {
|
|||
CFLAGS="${CFLAGS/-O2/-O3} -fno-semantic-interposition"
|
||||
LDFLAGS+=" -Wl,-Bsymbolic-functions"
|
||||
|
||||
arch-meson $pkgname build "${meson_options[@]}"
|
||||
arch-meson $_pkgname build "${meson_options[@]}"
|
||||
meson compile -C build
|
||||
}
|
||||
|
||||
|
@ -219,9 +256,15 @@ if [ -n "$_enable_check" ]; then
|
|||
local _pipewire_session_manager=$(pacman -Qq pipewire-session-manager)
|
||||
|
||||
echo "Tests may be broken with certain setups. Use with caution!"
|
||||
# Tests fail:
|
||||
# mutter:cogl+cogl/conform / cogl-test-offscreen-texture-formats-gles2
|
||||
# mutter:core+mutter/stacking / fullscreen-maximize
|
||||
## https://gitlab.gnome.org/GNOME/mutter/-/issues/3343
|
||||
xvfb-run -s '-nolisten local +iglx -noreset' \
|
||||
${pkgbase}/src/tests/meta-dbus-runner.py --launch=pipewire --launch=${_pipewire_session_manager} \
|
||||
meson test -C build --print-errorlogs -t 5 --setup plain
|
||||
meson test -C build --no-suite 'mutter/kvm' --no-rebuild \
|
||||
--print-errorlogs --timeout-multiplier 10 --setup plain ||:
|
||||
|
||||
}
|
||||
fi
|
||||
|
||||
|
@ -236,7 +279,7 @@ _pick() {
|
|||
}
|
||||
|
||||
package_mutter-performance() {
|
||||
provides=(mutter libmutter-13.so)
|
||||
provides=(mutter libmutter-14.so)
|
||||
conflicts=(mutter)
|
||||
groups=(gnome)
|
||||
|
||||
|
|
1302
mr1441.patch
1302
mr1441.patch
File diff suppressed because it is too large
Load diff
48
mr3304.patch
48
mr3304.patch
|
@ -1,7 +1,7 @@
|
|||
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
|
||||
Source: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3304
|
||||
Commit: c8b8ec099037d485dd6a0c931e95c5bf43136dd4
|
||||
Last Updated: 01/15/24 (Mutter 45.3)
|
||||
Commit: 48ca241a070a6d6a757a7f4745fef6ef15a28234
|
||||
Last Updated: 01/19/24 (Mutter 46.0)
|
||||
---
|
||||
|
||||
This fixes three issues that were preventing GPU copies on the Nvidia proprietary driver:
|
||||
|
@ -61,7 +61,7 @@ index 4ed54a5399727c2c8d53727089a6c34fc9a5d13f..55976bfdb156657085fc7df077e3ac6d
|
|||
EGLDisplay display,
|
||||
GError **error);
|
||||
diff --git a/src/backends/native/meta-onscreen-native.c b/src/backends/native/meta-onscreen-native.c
|
||||
index e315a9b5f0370d544c9a90e7dc3d3eebadf09a0a..736157c818af7d7324110d4de0eec605378784e5 100644
|
||||
index e315a9b5f0370d544c9a90e7dc3d3eebadf09a0a..7dd79e615661708047f0ba063b804cfa66e50a0e 100644
|
||||
--- a/src/backends/native/meta-onscreen-native.c
|
||||
+++ b/src/backends/native/meta-onscreen-native.c
|
||||
@@ -620,6 +620,9 @@ copy_shared_framebuffer_gpu (CoglOnscreen *onscreen,
|
||||
|
@ -84,43 +84,17 @@ index e315a9b5f0370d544c9a90e7dc3d3eebadf09a0a..736157c818af7d7324110d4de0eec605
|
|||
return NULL;
|
||||
|
||||
primary_gpu = meta_renderer_native_get_primary_gpu (renderer_native);
|
||||
@@ -2107,6 +2109,7 @@ init_secondary_gpu_state_gpu_copy_mode (MetaRendererNative *renderer_nat
|
||||
MetaOnscreenNativeSecondaryGpuState *secondary_gpu_state;
|
||||
MetaGpuKms *gpu_kms;
|
||||
uint32_t format;
|
||||
+ const uint32_t flags = GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING;
|
||||
|
||||
render_device = renderer_gpu_data->render_device;
|
||||
egl_display = meta_render_device_get_egl_display (render_device);
|
||||
@@ -2118,10 +2121,29 @@ init_secondary_gpu_state_gpu_copy_mode (MetaRendererNative *renderer_nat
|
||||
|
||||
render_device_gbm = META_RENDER_DEVICE_GBM (render_device);
|
||||
gbm_device = meta_render_device_gbm_get_gbm_device (render_device_gbm);
|
||||
- gbm_surface = gbm_surface_create (gbm_device,
|
||||
- width, height,
|
||||
- format,
|
||||
- GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING);
|
||||
+
|
||||
+ gbm_surface = gbm_surface_create_with_modifiers2 (gbm_device,
|
||||
+ width, height,
|
||||
+ format,
|
||||
+ NULL, 0,
|
||||
+ flags);
|
||||
+
|
||||
+ if (!gbm_surface)
|
||||
+ {
|
||||
+ gbm_surface = gbm_surface_create_with_modifiers (gbm_device,
|
||||
+ width, height,
|
||||
+ format,
|
||||
+ NULL, 0);
|
||||
+ }
|
||||
@@ -2122,6 +2124,15 @@ init_secondary_gpu_state_gpu_copy_mode (MetaRendererNative *renderer_nat
|
||||
width, height,
|
||||
format,
|
||||
GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING);
|
||||
+
|
||||
+ if (!gbm_surface)
|
||||
+ {
|
||||
+ gbm_surface = gbm_surface_create (gbm_device,
|
||||
+ width, height,
|
||||
+ format,
|
||||
+ flags);
|
||||
+ 0);
|
||||
+ }
|
||||
+
|
||||
if (!gbm_surface)
|
||||
|
@ -371,7 +345,7 @@ index 66b987a5c0c4b0cf65ca57df3391b27a6feffab7..1a4ee2c8106ec677fc9226f430d894a0
|
|||
/* For GPU blit mode */
|
||||
EGLContext egl_context;
|
||||
diff --git a/src/backends/native/meta-renderer-native.c b/src/backends/native/meta-renderer-native.c
|
||||
index 78bde68ff9aa3f85e01a759a51654caaafa79974..e33e885451f59502fff3b59f0e8ff69f038fb377 100644
|
||||
index dc08824c181f59d2921d31344bc4584d9cf93fc3..1ac95569ca5a1065e0a264e484216c558e05e6c8 100644
|
||||
--- a/src/backends/native/meta-renderer-native.c
|
||||
+++ b/src/backends/native/meta-renderer-native.c
|
||||
@@ -62,6 +62,7 @@
|
||||
|
@ -392,7 +366,7 @@ index 78bde68ff9aa3f85e01a759a51654caaafa79974..e33e885451f59502fff3b59f0e8ff69f
|
|||
meta_egl_destroy_context (egl,
|
||||
egl_display,
|
||||
renderer_gpu_data->secondary.egl_context,
|
||||
@@ -1759,6 +1763,7 @@ init_secondary_gpu_data_gpu (MetaRendererNativeGpuData *renderer_gpu_data,
|
||||
@@ -1757,6 +1761,7 @@ init_secondary_gpu_data_gpu (MetaRendererNativeGpuData *renderer_gpu_data,
|
||||
CoglContext *cogl_context;
|
||||
CoglDisplay *cogl_display;
|
||||
const char **missing_gl_extensions;
|
||||
|
@ -400,7 +374,7 @@ index 78bde68ff9aa3f85e01a759a51654caaafa79974..e33e885451f59502fff3b59f0e8ff69f
|
|||
|
||||
egl_display = meta_render_device_get_egl_display (render_device);
|
||||
if (egl_display == EGL_NO_DISPLAY)
|
||||
@@ -1825,6 +1830,11 @@ init_secondary_gpu_data_gpu (MetaRendererNativeGpuData *renderer_gpu_data,
|
||||
@@ -1823,6 +1828,11 @@ init_secondary_gpu_data_gpu (MetaRendererNativeGpuData *renderer_gpu_data,
|
||||
meta_egl_has_extensions (egl, egl_display, NULL,
|
||||
"EGL_EXT_image_dma_buf_import_modifiers",
|
||||
NULL);
|
||||
|
|
Loading…
Reference in a new issue