Unredirect fullscreen windows should be the default for optimal performance

Bug #1063690 reported by Timo Jyrinki
42
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

lp:~timo-jyrinki/ubuntu/raring/compiz/ubuntu.enableunredirectbydefault
On hold for merging into lp:ubuntu/raring/compiz
Daniel van Vugt (community): Disapprove
Ubuntu branches: Pending requested
Diff: 25 lines (+10/-0)
2 files modified
debian/changelog (+7/-0)
debian/compiz-gnome.gsettings-override (+3/-0)
api
lp:~vanvugt/compiz/fix-1063690
Sam Spilsbury: Approve
PS Jenkins bot (community): Approve (continuous-integration)
Diff: 12 lines (+1/-1)
1 file modified
plugins/composite/composite.xml.in (+1/-1)
api
lp:~vanvugt/compiz/fix-1063690-0.9.8
Sam Spilsbury: Approve
Diff: 12 lines (+1/-1)
1 file modified
plugins/composite/composite.xml.in (+1/-1)
api
lp:~vanvugt/compiz-core/fix-1063690
Sam Spilsbury: Approve
Diff: 12 lines (+1/-1)
1 file modified
plugins/composite/composite.xml.in (+1/-1)
api
Timo Jyrinki (timo-jyrinki)
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
Daniel van Vugt (vanvugt)
Changed in compiz:
status: New → Triaged
Changed in compiz (Ubuntu):
status: Confirmed → Triaged
Changed in compiz:
milestone: none → 0.9.9.0
Timo Jyrinki (timo-jyrinki)
description: updated
Changed in compiz (Ubuntu):
assignee: nobody → Timo Jyrinki (timo-jyrinki)
Daniel van Vugt (vanvugt)
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)
Daniel van Vugt (vanvugt)
Changed in compiz-core:
importance: Undecided → High
Changed in compiz:
status: Triaged → In Progress
PS Jenkins bot (ps-jenkins)
Changed in compiz:
status: In Progress → Fix Committed
Timo Jyrinki (timo-jyrinki)
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
Daniel van Vugt (vanvugt)
Changed in compiz (Ubuntu):
status: Triaged → Fix Committed
assignee: nobody → Daniel van Vugt (vanvugt)
Timo Jyrinki (timo-jyrinki)
Changed in compiz-core:
status: Won't Fix → Triaged
Daniel van Vugt (vanvugt)
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
Timo Jyrinki (timo-jyrinki)
description: updated
Daniel van Vugt (vanvugt)
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.

Timo Jyrinki (timo-jyrinki)
Changed in compiz (Ubuntu Quantal):
status: New → In Progress
assignee: nobody → Timo Jyrinki (timo-jyrinki)
Unity Merger (unity-merger)
Changed in compiz-core:
status: In Progress → Fix Committed
Daniel van Vugt (vanvugt)
Changed in compiz-core:
status: Fix Committed → Fix Released
Timo Jyrinki (timo-jyrinki)
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

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

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> 2012年12月04日 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> 2012年12月14日 10:41:24 +0200

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

AltStyle によって変換されたページ (->オリジナル) /