Package Details: mutter-781835-workaround 3.26.2+43+g77dd1bf63-1

Git Clone URL: (read-only)
Package Base: mutter-781835-workaround
Description: A window manager for GNOME. This package reverts a commit which may causes performance problems for nvidia driver users.
Upstream URL:
Licenses: GPL
Groups: gnome
Conflicts: mutter
Provides: mutter
Submitter: Saren
Maintainer: Saren
Last Packager: Saren
Votes: 11
Popularity: 2.073832
First Submitted: 2017-10-06 15:19
Last Updated: 2018-01-31 13:52

Latest Comments

bushwakko commented on 2018-03-17 11:32

I got gnome 3.28.0 from "testing" now, but no update to this package. I tried modifying the PKGBUILD to make it build from 3.28 commit, but the revert didn't apply cleanly:

error: could not revert 383ba566b... Call cogl_xlib_renderer_set_threaded_swap_wait_enabled()

With diff:

++<<<<<<< HEAD + / XInitThreads() is needed to use the "threaded swap wait" functionality + * in Cogl - see meta_renderer_x11_create_cogl_renderer(). We call it here + * to hopefully call it before any other use of XLib. + / + XInitThreads(); ++======= + clutter_x11_request_reset_on_video_memory_purge (); ++>>>>>>> parent of 383ba566b... Call cogl_xlib_renderer_set_threaded_swap_wait_enabled()

It seems there has been new changes to the patch we want reverted, however my performance using the official mutter is crap again so it doesn't seem to fix it. There might be a resolution to the conflict that ends up with a correct state, but I haven't looked hard enough at the code to say yet.

And even if it was possible, I'm not sure how to resolve this in PKGBUILD yet, or how to make it use my locally created patch either.

Instead, I'll just post my progress here. ;)

Ideally this would be solved properly, either in mutter, gnome-shell or the nvidia driver, whichever is the culprit.

Leeo97one commented on 2018-01-22 15:52

I can not compile:

Traceback (most recent call last): File "/usr/bin/g-ir-scanner", line 66, in <module> sys.exit(scanner_main(sys.argv)) File "/usr/lib/gobject-introspection/giscanner/", line 547, in scanner_main shlibs = create_binary(transformer, options, args) File "/usr/lib/gobject-introspection/giscanner/", line 424, in create_binary shlibs = resolve_shlibs(options, binary, options.libraries) File "/usr/lib/gobject-introspection/giscanner/", line 146, in resolve_shlibs _resolve_non_libtool(options, binary, non_libtool)) File "/usr/lib/gobject-introspection/giscanner/", line 119, in _resolve_non_libtool line = line.decode('ascii') UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 36: ordinal not in range(128)</module>

Full logs:

EDIT: I found the solution here:

And thank you so much for this package by the way ^_^

schroedi commented on 2017-12-08 09:01

This patch fixes the pipewire 0.1.7 problem without downgrading:

jeckhack commented on 2017-12-06 00:30

BTW if you have window max\unmax animation stutter after applying the workaround in question, add CLUTTER_DRIVER=gl3 to /etc/environment

For reference, see:

jeckhack commented on 2017-12-02 10:16

From what I see, arch bumped pipewire package to 0.1.7 a few days ago and it has different file structure, i.e. /usr/include/spa/pod-parser.h is now /usr/include/spa/pod/parser.h, and other files needed to build mutter are missing too. It's just becoming a nightmare : (

OK This is funny. To build mutter you have to downgrade pipewire to 0.1.6
But this isn't the end. You also have to manually create missing pod-parser.h, which is missing due to a bug in 0.1.6 as well.
( )

Copy this to /usr/include/spa/pod-parser.h after pipewire downgrade.

Now mutter builds.

douglas-s commented on 2017-11-27 00:50

atal error: spa/pod-parser.h:"File or directory not found"
#include <spa/pod-parser.h>
compilation terminated.
make[4]: *** [Makefile:2411: backends/meta-screen-cast.lo] Error 1
make[4]: Leaving directory '/tmp/yaourt-tmp-gits/aur-mutter-781835-workaround/src/mutter/src'
make[3]: *** [Makefile:2588: all-recursive] Error 1
make[3]: Leaving directory '/tmp/yaourt-tmp-gits/aur-mutter-781835-workaround/src/mutter/src'
make[2]: *** [Makefile:1508: all] Error 2
make[2]: Leaving directory '/tmp/yaourt-tmp-gits/aur-mutter-781835-workaround/src/mutter/src'
make[1]: *** [Makefile:484: all-recursive] Error 1
make[1]: Leaving directory '/tmp/yaourt-tmp-gits/aur-mutter-781835-workaround/src/mutter'
make: *** [Makefile:414: all] Error 2

Can't find the package that contais the pod-parser.h file

fabrixx commented on 2017-11-01 08:07

When installing with yaourt i've this error:
ModuleNotFoundError: No module named 'codegen'
make[2]: *** [Makefile:2970: meta-dbus-idle-monitor.c] Error 1
make[2]: uscita dalla directory "/tmp/pamac-build-fabrizio/mutter-781835-workaround/src/mutter/src"
make[1]: *** [Makefile:484: all-recursive] Error 1
make[1]: uscita dalla directory "/tmp/pamac-build-fabrizio/mutter-781835-workaround/src/mutter"
make: *** [Makefile:414: all] Error 2
==> ERRORE: Si è verificato un errore in build().

EDIT: worked with export PYTHONPATH="/usr/share/glib-2.0" like commented previously but several GNOME packages were uninstalled and my system not start.

Fixed reinstalling Gnome missing files and old mutter

Saren commented on 2017-10-24 18:23

@jeckhack Prismatik (monitor backlight control program which captures screen constantly) still makes gnome-shell lag without reverting the mutter commit.

jeckhack commented on 2017-10-24 01:31

In fact, I had time to investigate my problem a bit further, and I think that problem isn't in opengl, but in Nvidia PowerMizer and mutter affecting programs' performance when nvidia card drops frequencies on idle. So, when you run benchmark, nvidia raises its frequencies to max and you don't notice any difference. But if you run some not-so-demanding game or app (i.e. terraria) You will notice that when nvidia drops frequencies, game starts to lag. The same happens with chromium. This behavior is fixed by reverting the commit from 781835 bugreport.
You can minimize this behavio without reverting commit by enabling triplebuffer in nvidia.

I created a bugreport on gnome:

butler360 commented on 2017-10-22 17:25

In case anyone else runs into this bug, I had to add 'export PYTHONPATH="/usr/share/glib-2.0"' to the PKGBUILD to get this to build.

That said, I did Unigine Valley benchmark before and after installing this and it make basically zero difference. I got a score of 1312 before and 1314 after. Is there a better way to benchmark this? I'm on a GTX 970.

All comments