Heavy stuttering in Firefox with mutter 45.1/45.2

Bug #2046360 reported by Daniel van Vugt
14
This bug affects 1 person
Affects Status Importance Assigned to Milestone
mutter (Ubuntu)
Fix Released
High
Unassigned
Mantic
Fix Released
Undecided
Unassigned

Bug Description

[ Impact ]

There is heavy stuttering visible in Firefox with mutter 45.1/45.2 when kinetic scrolling a non-animated web page with a touchpad. This is a regression introduced upstream in mutter 45.1 (8f27ebf8).

[ Test Plan ]

0. Find a laptop with a touchpad.
1. Open a simple web page like a Wikipedia page in Firefox.
2. Use two fingers on the touchpad to fling it so it continues scrolling.

Expect: The scrolling proceeds and slows perfectly smoothly.

[ Where problems could occur ]

Anywhere in frame scheduling (visual smoothness), since that is the code affected.

[ Other Info ]

The bug was introduced upstream in 45.1 by https://gitlab.gnome.org/GNOME/mutter/-/commit/8f27ebf87eee6057992a90560d4118ab7bdf138d but since it only hurts the triple buffering patch, that's where it has been fixed:

https://gitlab.gnome.org/Community/Ubuntu/mutter/-/commit/0b896518b2028d9c4d6ea44806d093fd33793689
https://gitlab.gnome.org/Community/Ubuntu/mutter/-/commits/triple-buffering-v4-45

[ Workaround ]

In /etc/environment:

  MUTTER_DEBUG_TRIPLE_BUFFERING=always

or "never" also works. Just not "auto" because the bug is in auto mode (the default).

description: updated
description: updated
description: updated
summary: - Heavy stuttering in mutter 45.1/45.2 (especially Firefox)
+ Heavy stuttering in Firefox with mutter 45.1/45.2
description: updated
tags: added: regression-update
removed: regression-proposed
Revision history for this message
Andreas Hasenack (ahasenack) wrote :

I see this was filed on the 13th. Had this been mentioned in the 45.2 mantic SRU bug[1], I wouldn't have released the package to updates on the 14th :/

1. https://bugs.launchpad.net/ubuntu/+source/mutter/+bug/2043000

Steve Langasek (vorlon)
Changed in mutter (Ubuntu):
importance: Undecided → High
Revision history for this message
Chris Halse Rogers (raof) wrote : Please test proposed package

Hello Daniel, or anyone else affected,

Accepted mutter into mantic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/mutter/45.2-0ubuntu2~really45.0 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-mantic to verification-done-mantic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-mantic. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in mutter (Ubuntu Mantic):
status: New → Fix Committed
tags: added: verification-needed verification-needed-mantic
Revision history for this message
Ubuntu SRU Bot (ubuntu-sru-bot) wrote : Autopkgtest regression report (mutter/45.2-0ubuntu2~really45.0)

All autopkgtests for the newly accepted mutter (45.2-0ubuntu2~really45.0) for mantic have finished running.
The following regressions have been reported in tests triggered by the package:

mutter/45.2-0ubuntu2~really45.0 (arm64)

Please visit the excuses page listed below and investigate the failures, proceeding afterwards as per the StableReleaseUpdates policy regarding autopkgtest regressions [1].

https://people.canonical.com/~ubuntu-archive/proposed-migration/mantic/update_excuses.html#mutter

[1] https://wiki.ubuntu.com/StableReleaseUpdates#Autopkgtest_Regressions

Thank you!

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

The DEP8 tests are green now.

I'm going to verify this revert for mantic, which is currently in mantic-proposed. But note I have NOT been able to reproduce the stuttering in firefox with the mutter package from mantic-updates (45.2-0ubuntu1). I tried:
- wayland
- xorg
- native resolution (2880x1800)) and 1920x1200
- youtube playback, full screen, windows, 4k resolution. I also observed hardware acceleration was being used
- I have even set MUTTER_DEBUG_TRIPLE_BUFFERING to "auto" in /etc/environment, which is what the bug description says should NOT be done.

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

mantic verification

I used mutter from mantic-proposed:
andreas@nsnx2:~$ apt-cache policy mutter
mutter:
  Installed: 45.2-0ubuntu2~really45.0
  Candidate: 45.2-0ubuntu2~really45.0
  Version table:
 *** 45.2-0ubuntu2~really45.0 100
        100 http://br.archive.ubuntu.com/ubuntu mantic-proposed/universe amd64 Packages
        100 /var/lib/dpkg/status
     45.2-0ubuntu1 500 (phased 0%)
        500 http://br.archive.ubuntu.com/ubuntu mantic-updates/universe amd64 Packages
     45.0-3ubuntu3 500
        500 http://br.archive.ubuntu.com/ubuntu mantic/universe amd64 Packages

I installed gnome-session gnome-shell-extensions. I did not install budgie, because the test plan at https://wiki.ubuntu.com/DesktopTeam/TestPlans/Mutter says it's not needed for 23.10.

Each login, I selected a different session from this list: GNOME, GNOME Classic, Ubuntu, Ubuntu on Xorg.

In each session, I did:
- play 4k youtube video in full screen in firefox and chrome. For the next steps, I left firefox playing that video while conducting the other checks
- verified that firefox was using hardware acceleration (chrome isn't, that's known)
- sent a notification via notify-send, observed it was displayed
- did a large file copy with the file manager. First, locally, then over the network using SMB.

I did not observe any stuttering during these verifications, nor any other ill effect.

The hardware this was tested on is a ThinkPad X1 Carbon Gen 10 with an Intel Alderlake_p (Gen12) video system.

tags: added: verification-done-mantic
removed: verification-needed-mantic
description: updated
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Also verified fixed in mantic using version 45.2-0ubuntu2~really45.0 and the test case that's now in the Bug Description above.

description: updated
Revision history for this message
Daniel van Vugt (vanvugt) wrote (last edit ):

Proposed fix for 45.2 (we usually go through Debian first because that's where the patch is maintained):
https://salsa.debian.org/gnome-team/mutter/-/merge_requests/114

description: updated
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package mutter - 45.2-3ubuntu1

---------------
mutter (45.2-3ubuntu1) noble; urgency=medium

  * Merge with Debian. Remaining changes:
    - Add x11-Add-support-for-fractional-scaling-using-Randr.patch
    - Add window-Add-ability-to-override-the-edge-constraints.patch
      + Make possible for extensions (such as Tiling Assistant) to override
        window constraints

mutter (45.2-3) experimental; urgency=medium

  [ Daniel van Vugt ]
  * Update Support-Dynamic-triple-double-buffering.patch
    with a fix to the frame clock for a regression inherited from
    45.1 (8f27ebf8) whereby it would enter triple buffering mode
    prematurely. And because it was premature, the clock would soon
    notice that triple buffering isn't required and drop back to double
    buffering. But the switch from triple to double buffering stalls the
    client frame queue by one frame which for some clients like Firefox
    is seen as a frame skip. (LP: #2046360)

mutter (45.2-2) experimental; urgency=medium

  * Team upload

  [ Chris Hofstaedtler ]
  * Honor udev.pc's udevdir when installing udev rules (Closes: #1057319)

  [ Simon McVittie ]
  * Merge with version 44.7-1 from unstable
  * d/control, d/rules: Stop generating d/control from d/control.in
  * d/patches: Mark several additional tests as flaky.
    Most of these have never been reliable on Debian buildds, especially
    on ARM, so having them fail is not a regression. They usually succeed
    after a few retries, but that's time-consuming and unsuitable to be a
    QA gate.
    The restore-size test was previously not run at all: now it is run, but
    marked as flaky (so its result is ignored).

 -- Jeremy Bícha <email address hidden> Wed, 20 Dec 2023 09:32:48 -0500

Changed in mutter (Ubuntu):
status: New → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package mutter - 45.2-0ubuntu2~really45.0

---------------
mutter (45.2-0ubuntu2~really45.0) mantic; urgency=medium

  * Roll back to address regression LP: #2046360.
    - Full revert to mutter 45.0-3ubuntu3.1, with revert implemented under
      debian/patches to avoid having to keep around confusing version numbers
      for very long.
    - mutter 45.2 introduces new library symbols vs 45.0 but no packages
      have picked up dependencies on these symbols yet via rebuilds, and all
      binary packages built from mutter source have a strict versioned
      dependency on the library package; so a straight revert of the symbols
      file is possible without the need to add any additional Breaks.

 -- Steve Langasek <email address hidden> Sun, 17 Dec 2023 19:44:15 -0800

Changed in mutter (Ubuntu Mantic):
status: Fix Committed → Fix Released
Revision history for this message
Steve Langasek (vorlon) wrote : Update Released

The verification of the Stable Release Update for mutter has completed successfully and the package is now being released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Revision history for this message
Jeremy Bícha (jbicha) wrote :

I am reopening this bug because I am reuploading mutter 45.2 for mantic and we need to verify that this bug does not return with the new update.

Changed in mutter (Ubuntu Mantic):
status: Fix Released → In Progress
Revision history for this message
Steve Langasek (vorlon) wrote : Please test proposed package

Hello Daniel, or anyone else affected,

Accepted mutter into mantic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/mutter/45.2-0ubuntu3 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-mantic to verification-done-mantic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-mantic. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in mutter (Ubuntu Mantic):
status: In Progress → Fix Committed
tags: added: verification-needed-mantic
removed: verification-done-mantic
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Fix verified on mantic using version 45.2-0ubuntu3 and the test case at the top of the page.

tags: added: verification-done-mantic
removed: verification-needed-mantic
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package mutter - 45.2-0ubuntu3

---------------
mutter (45.2-0ubuntu3) mantic; urgency=medium

  [ Jeremy Bícha ]
  * Revert roll back to 45.0-3ubuntu3.1

  [ Daniel van Vugt ]
  * Update Support-Dynamic-triple-double-buffering.patch
    with a fix to the frame clock for a regression inherited from
    45.1 (8f27ebf8) whereby it would enter triple buffering mode
    prematurely. And because it was premature, the clock would soon
    notice that triple buffering isn't required and drop back to double
    buffering. But the switch from triple to double buffering stalls the
    client frame queue by one frame which for some clients like Firefox
    is seen as a frame skip. (LP: #2046360)

mutter (45.2-0ubuntu2~really45.0) mantic; urgency=medium

  * Roll back to address regression LP: #2046360.
    - Full revert to mutter 45.0-3ubuntu3.1, with revert implemented under
      debian/patches to avoid having to keep around confusing version numbers
      for very long.
    - mutter 45.2 introduces new library symbols vs 45.0 but no packages
      have picked up dependencies on these symbols yet via rebuilds, and all
      binary packages built from mutter source have a strict versioned
      dependency on the library package; so a straight revert of the symbols
      file is possible without the need to add any additional Breaks.

mutter (45.2-0ubuntu1) mantic; urgency=medium

  [ Jeremy Bícha ]
  * New upstream release (LP: #2043000)
    - Fix entering capital accent letters with Caps Lock (LP: #2035076)
    - Fix Wacom on X11 issues (LP: #2043027)
  * debian/libmutter-13-0.symbols: Add new symbols
  * Drop patches applied in new release
  * Rebase X11 fractional scaling patch

  [ Daniel van Vugt ]
  * Rebase triple buffering patch

 -- Jeremy Bícha <email address hidden> Tue, 02 Jan 2024 08:28:40 -0500

Changed in mutter (Ubuntu Mantic):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.