Unredirect fullscreen windows should be the default for optimal performance

Bug #1063690 reported by Timo Jyrinki
46
This bug affects 8 people
Affects Status Importance Assigned to Milestone
Compiz
Fix Released
High
Daniel van Vugt
0.9.8
Fix Released
High
Daniel van Vugt
Compiz Core
Fix Released
High
Daniel van Vugt
compiz (Ubuntu)
Fix Released
High
Daniel van Vugt
Precise
Fix Released
Undecided
Timo Jyrinki
Quantal
Fix Released
Undecided
Timo Jyrinki

Bug Description

[Impact]

Lower than optimal fullscreen applications performance, especially games.

[Test Case]

Benchmark a game with for example phoronix-test-suite / pts/openarena-1.5.0 - the default settings after this bug fix should give equal performance to what previously required manually enabling the compiz unredirect fullscreen windows option.

[Regression Potential]

The feature has been tested for the last few months, and all known regressions have been fixed. The potential regressions lie in for example exiting a fullscreen application.

---

Fullscreen windows should be unredirected by default, since only then users will get optimal performance also when running full screen applications like games. Currently users need to learn about the compiz setting (CompizConfig Settings Manager (package compizconfig-settings-manager) -> Composite -> Unredirect Fullscreen Windows), which is going to work only for a small portion of the user base, and naturally need not to be affected by the bugs currently caused by enabling unredirecting.

The tagged related compiz bugs:
https://bugs.launchpad.net/compiz/+bugs?field.tag=unredirect
https://bugs.launchpad.net/compiz-core/+bugs?field.tag=unredirect

The tagged driver bugs in Ubuntu preventing this bug to be fixed without side effects: https://bugs.launchpad.net/ubuntu?field.tag=unredirect

Related branches

tags: added: unredirect
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in compiz (Ubuntu):
status: New → Confirmed
Changed in compiz:
status: New → Triaged
Changed in compiz (Ubuntu):
status: Confirmed → Triaged
Changed in compiz:
milestone: none → 0.9.9.0
description: updated
Changed in compiz (Ubuntu):
assignee: nobody → Timo Jyrinki (timo-jyrinki)
Changed in compiz:
importance: Undecided → High
Changed in compiz (Ubuntu):
importance: Undecided → High
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

I've just re-tested a fully updated quantal machine with intel and nouveau. Intel is still stable and the issues with nouveau are gone. That leaves only problems with fglrx (bug 1055380), which I /assume/ is probably still present in quantal.

Changed in compiz:
assignee: nobody → Daniel van Vugt (vanvugt)
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Looking good for raring and quantal. More work is required before this can be done in precise though...
https://bugs.launchpad.net/ubuntu?field.tag=unredirect

I'm almost disappointed. I didn't enable it for the quantal release because testing quantal a few weeks for release showed it had the same driver bugs as precise. Now it doesn't.

Changed in compiz-core:
status: New → Triaged
milestone: none → 0.9.7.10
assignee: nobody → Daniel van Vugt (vanvugt)
Changed in compiz-core:
importance: Undecided → High
Changed in compiz:
status: Triaged → In Progress
Changed in compiz:
status: In Progress → Fix Committed
Changed in compiz (Ubuntu):
assignee: Timo Jyrinki (timo-jyrinki) → nobody
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Fix committed into lp:compiz at revision 3463, scheduled for release in Compiz 0.9.9.0

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

As this change poses significant risk to the stability of precise, and I'm not convinced we have even found all the driver bugs it will trigger in precise, I don't think it should be on by default in any precise update.

After the requisite fixes to make unredirect work at all are backported, precise users probably should be asked to toggle the option manually if they want to try it. By CCSM or gsettings command.

Changed in compiz-core:
status: Triaged → Won't Fix
milestone: 0.9.7.10 → none
assignee: Daniel van Vugt (vanvugt) → nobody
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Correction: Precise needs these fixes before anything else:
https://bugs.launchpad.net/compiz-core/+bugs?field.tag=unredirect

description: updated
Changed in compiz (Ubuntu):
status: Triaged → Fix Committed
assignee: nobody → Daniel van Vugt (vanvugt)
Changed in compiz-core:
status: Won't Fix → Triaged
Changed in compiz (Ubuntu):
milestone: none → ubuntu-13.04-alpha-1
Revision history for this message
John Wang (johnwang) wrote :

My notebook has Intel 945GM video powered by the i915 driver under Quantal. I'd be okay with enabling "Unredirect fullscreen windows" by default if there were some other way to force Totem to sync to the display's vblank interval for fullscreen video. I tested enabling "Unredirect fullscreen windows" in CompizConfig Settings Manager's Composite plugin, and this caused frequent horizontal tearing with Totem fullscreen video, although non-fullscreen video is fine (and VLC and Mplayer work fine both fullscreen and non-fullscreen). Also in the Composite plugin, "Detect Refresh Rate" is enabled and "Refresh Rate" is set to "60", so the presence of tearing suggests that those two settings don't affect Totem in fullscreen mode. Should I file a new bug?

Revision history for this message
bwat47 (bwat47) wrote :

Same here with intel ivybridge. If unredirect fullscreen windows is enabled you *will* get video tearing unless the application is smart enough to pageflip on its own, due to a limitation with the intel hardware/drivers.

With modern intel hardware (sandybridge+;With 945gm both legacy vsync or page-flipping should work to eliminate tearing), its not possible to get tear-free output unless you are using a page-flipping compositor (like compiz). If you bypass compiz you rely on the application to properly pageflip. I tested this compiz build on ivybridge and got tearing:

In totem fullscreen
In firefox with flash 11.2 fullscreen
In VLC with openGL output enabled

I didn't get tearing:
In google chrome with pepper flash 11.5, with pepper flash opengl rendering enabled in about:flags. Enabling this by default for intel users will create tearing issues for a lot of people.

Revision history for this message
Laryllan (laryllan) wrote :

I experince the same issues as bwat47 does.
Nvidia GTX 660 Ti on proprietary drivers 310.14.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

The issue with tearing is bug 1051802. Please discuss it there. If you want, please link more projects like totem to bug 1051802.

Revision history for this message
John Wang (johnwang) wrote :

Daniel: Sorry, but what would be the point of linking Totem to a bug that's marked Won't Fix?

I'm now convinced that "Unredirect fullscreen windows" should not be enabled by default because, as reported above, it causes a major regression in the functionality of Totem, Flash, and VLC/OpenGL on Intel and apparently the Nvidia proprietary driver. Totem, as Ubuntu's default player, should work out of the box for as many users as possible. Sacrificing a basic user experience simply to enhance out-of-the-box gaming performance is a very poor decision.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

John,

"Won't Fix" only applies to Compiz. Not Totem. Bugs are multi-dimensional in Launchpad :)

Yes, we are discussing options to automatically disable unredirection for video players like totem.

Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (5.6 KiB)

This bug was fixed in the package compiz - 1:0.9.9~daily12.12.05-0ubuntu1

---------------
compiz (1:0.9.9~daily12.12.05-0ubuntu1) raring; urgency=low

  [ Michael Terry ]
  * debian/control:
    - Update Vcs-Bzr
  * debian/patches/100_expo_layout.patch:
    - Fix to apply
  * Automatic snapshot from revision 3451 (bootstrap)
    - Fix crash from writing to static memory (LP: #1065814)
    - Fix maximized windows changing workspaces (LP: #1071791)
    - Respect Zoom Factor setting (LP: #1066187)
    - Respect Show Window Title setting (LP: #1009999)
    - Restore text background transparency (LP: #1042132)
    - Restore screenshot selection rectangle transparency (LP: #1047788)
    - Restore top and bottom cube transparency (LP: #1048272)
    - Fix scaleaddon window highlighting being solid (LP #1068503)
    - Make resize hint overlay disappear when changing edges (LP: #839602)
    - Preserve grid IDs during drag (LP: #1067812, LP: #1048855)
    - Save current display before doing snap preview (LP: #1068173)
    - Ignore inactive keybindings (LP: #1053280)
    - Handle <primary> in keyboard shortcuts (LP: #936840)
    - Make sure showdesktop plugin is loaded after unityshell (LP: #1067534)
    - Fix grid build failure (LP: #1067577)
    - Fix Jenkins test failures (LP: #1058577)
    - Don't allow duplicate static symbols when linking (LP: #1067964)
    - Make external templates C++0x compatible (LP: #1067598)
    - Make sure to initialize class members (LP: #1033877)
    - Don't duplicate templates in plugins (LP: #1066793, LP: #1066803,
      LP: #1066804, LP: #1066805, LP: #1066799, LP: #1066796,
      LP: #1066795, LP: #1066798, LP: #1067218, LP: #1067219)
    - Don't needlessly set gsettings keys (LP: #1064791)
    - Remove unused code (LP: #1037142, LP: #1067234)
    - Fix syntax highlighting for trunk xml files (LP: #1066823)
    - Fix documentation for building with python2 (LP: #1070211)

  [ Stephen M. Webb ]
  * Windows open below panel and launcher, grid does not work at all,
    window animations missing, and general plugin chaos if built on
    raring (cmake >= 2.8.10) (LP: #1085581)

  [ Iven Hsu ]
  * KDE Appmenu doesn't work with compiz decorators (LP: #1082265)
  * compiz 0.9.8.6 fails to build from source in KDE4-window-decorator
    with latest KDE 4.10 beta (LP: #1082152)
  * kde4-window-decorator crashes when starting up with oxygen theme
    (LP: #1050776)

  [ sampo555 ]
  * Grid: Window management - resize preview does not show when moving a
    window from the semi-maximised state to the maximised state in a
    single action (LP: #1071689)

  [ Timo Jyrinki ]
  * HTML5 video in Firefox continues to tear (LP: #1086337)

  [ MC Return ]
  * Workspacenames Plug-in: Wishlist: Default Appearance values not
    ideal (LP: #1075600)
  * Resizeinfo Plug-in: No possibility to change the color and
    transparency of the rounded background outline (LP: #1070297)
  * Resizeinfo Plug-in: Gradient color 2 and 3 settings are ignored and
    no background gradient is rendered (LP: #1070233)
  * Expo animations "Fade + Zoom" & "Vortex" result in a black screen
    (LP: #875311)
  * Workspacenames Plug-in: Wishlist: No default values...

Read more...

Changed in compiz (Ubuntu):
status: Fix Committed → Fix Released
description: updated
Changed in compiz-core:
assignee: nobody → Daniel van Vugt (vanvugt)
milestone: none → 0.9.7.12
status: Triaged → In Progress
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

For precise (compiz 0.9.7), this is blocked pending the resolution of bug 1089246 and it being backported to 0.9.7.

Changed in compiz (Ubuntu Quantal):
status: New → In Progress
assignee: nobody → Timo Jyrinki (timo-jyrinki)
Changed in compiz-core:
status: In Progress → Fix Committed
Changed in compiz-core:
status: Fix Committed → Fix Released
Changed in compiz (Ubuntu Precise):
status: New → In Progress
assignee: nobody → Timo Jyrinki (timo-jyrinki)
milestone: none → ubuntu-12.04.2
Revision history for this message
Adam Conrad (adconrad) wrote : Please test proposed package

Hello Timo, or anyone else affected,

Accepted compiz into quantal-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/compiz/1:0.9.8.6-0ubuntu1 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 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, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

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

Changed in compiz (Ubuntu Quantal):
status: In Progress → Fix Committed
tags: added: verification-needed
Revision history for this message
Michael Terry (mterry) wrote :

I've tested the update in 12.10 with NVIDIA drivers. Using "phoronix-test-suite run pts/openarena-1.5.0" I go from 25.47 FPS to 47.40 FPS. Yay for 50% improvements! No noticable regressions.

I'm not marking as verification-done yet, since this is hardware-oriented fix and such SRUs need "at least two positive, no negative testimonials."

Revision history for this message
Timo Jyrinki (timo-jyrinki) wrote :

Still working fine on Intel SandyBridge as well, similar to results at http://openbenchmarking.org/result/1211288-SU-TEST1785301

Michael Terry (mterry)
tags: added: verification-done
removed: verification-needed
Revision history for this message
Adam Conrad (adconrad) wrote :

Hello Timo, or anyone else affected,

Accepted compiz into precise-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/compiz/1:0.9.7.12-0ubuntu1 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 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, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

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

Changed in compiz (Ubuntu Precise):
status: In Progress → Fix Committed
tags: removed: verification-done
tags: added: verification-needed
Revision history for this message
Timo Jyrinki (timo-jyrinki) wrote :

Seems to work on precise fine so far - 20% boost on radeon open source graphics, and a bump on fglrx as well. Intel and nouveau are currently blacklisted for redirection on precise (allowed on quantal's graphics stack) so on that it's not having an effect.

tags: added: verification-done
removed: verification-needed
Revision history for this message
Scott Kitterman (kitterman) wrote : Update Released

The verification of this Stable Release Update has completed successfully and the package has now been 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 regresssions.

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

This bug was fixed in the package compiz - 1:0.9.8.6-0ubuntu1

---------------
compiz (1:0.9.8.6-0ubuntu1) quantal-proposed; urgency=low

  * New upstream release.
    - Enable Unredirect Fullscreen Windows by default. It seems to be
      stable enough with all the major graphics drivers now, as at Ubuntu
      12.10 (with updates). (LP: #1063690)
    - Grid: Reset the currently handled window in the GridWindow
      destructor only if the destroyed window was the handled one.
      (LP: #1048855) (LP: #1067812)
    - Grid: Set GridWindow->lastTarget to GridMaximize only if the
      window was fully maximized. (LP: #1071689)
  * Cherry-pick related fixes from upstream:
    - Fixed: unredirected fullscreen windows sliding offscreen were
      staying unredirected (always visible), because compiz thought
      they were fullscreen on a different monitor. Add extra smarts
      to tell the difference between fullscreen and offscreen.
      (LP: #1084401)
    - Add an option to specify which windows are allowed to be unredirected
      when they are fullscreen. Default: Allow unredirection on all window
      types except common video players: Totem, MPlayer, Vlc or Plugin-
      container (Flash or other nested browser windows). (LP: #1051802)
    - Add Firefox to the unredirect exceptions. (LP: #1086337)
 -- Timo Jyrinki <email address hidden> Tue, 04 Dec 2012 12:41:40 +0200

Changed in compiz (Ubuntu Quantal):
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package compiz - 1:0.9.7.12-0ubuntu1

---------------
compiz (1:0.9.7.12-0ubuntu1) precise-proposed; urgency=low

  [ Łukasz 'sil2100' Zemczak ]
  * debian/patches/revert_fix_994841.patch,
    debian/patches/revert_fix_933776_955035.patch
    - Removed, upstreamed
  * debian/watch:
    - Changed to the correct LP tarball path
  * debian/patches/compiz-package-gles2.patch:
    - Updated GLES patches to properly apply to the new compiz version

  [ Timo Jyrinki ]
  * New upstream release.
    - Compiz won't start if "unredirect fullscreen windows" is enabled
      (LP: #980663)
    - "Unredirect Fullscreen Windows" stay on top (unredirected) even
      when they're not on top any more (or the output is transformed)
      (LP: #1041047)
    - Unredirect Fullscreen Windows sometimes fails to unredirect fullscreen
      windows at all (LP: #1041066)
    - "Unredirect Fullscreen Windows" stay on top (unredirected) even when
      an RGBA window is stacked above it (LP: #1046661)
    - scale mode is not visible if a fullscreen window is unredirected
      (LP: #1047168)
    - Unredirecting a fullscreen window on a secondary monitor causes that
      monitor to flicker (LP: #1050749)
    - "Unredirect Fullscreen Windows" makes multi-monitor rendering much
      slower (LP: #1051885)
    - [regression] Maximized window gets unredirected when it's not
      fullscreen (LP: #1053902)
    - Unredirected fullscreen windows freeze and stay on top when wall
      sliding (Ctrl+Alt+Left/Right) (LP: #1084401)
    - "Unredirect Fullscreen Windows" can cause significant tearing on
      fullscreen windows (especially playing video) on some drivers
      (LP: #1051802)
    - HTML5 video in Firefox continues to tear (LP: #1086337)
    - Add support for blacklisting some drivers from using unredirected
      fullscreen windows. By default intel and nouveau on Mesa 8.0
      are blacklisted, configurable via ccsm. Users can upgrade to
      Mesa 9.0 around 12.04.2 time. (LP: #1089246)
    - Unredirect fullscreen windows should be the default for optimal
      performance (LP: #1063690)
  * debian/patches/workaround_broken_drivers.patch:
    - Updated to apply.
  * debian/patches/force_unredirect_enabling.patch:
    - Enable unredirect_fullscreen_windows unconditionally. Because of
      gconf hurdles we can't easily migrate existing users into the
      new default otherwise. Unredirection can be easily disabled with
      the new unredirect_match option, by blanking it completely,
      including removing the '(any)' part.
  * debian/patches/compiz-package-gles2.patch:
    - Update for the new blacklisting feature as well
  * debian/patches/blacklist_no_xml_double_escaping.patch:
    - Cherry-pick fix for the default string (LP: #1091103)

  [ Michael Terry ]
  * debian/patches/blacklist_no_xml_double_escaping.patch:
    - Update to also blacklist Mesa 9.0, which precise users may have from
      the x-updates PPA. 9.0 seems to have similar problems as 8.0 on
      Intel hardware.
 -- Timo Jyrinki <email address hidden> Fri, 14 Dec 2012 10:41:24 +0200

Changed in compiz (Ubuntu Precise):
status: Fix Committed → Fix Released
Changed in compiz:
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.