[regression] Compiz: Visible tearing is worse in 11.10 than 11.04, even when "Sync To VBlank" is enabled, but only when Unity is active.
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Compiz Core |
Fix Released
|
High
|
Daniel van Vugt | ||
Ubutter |
Fix Released
|
Undecided
|
Unassigned | ||
Unity |
Fix Released
|
High
|
Daniel van Vugt | ||
compiz (Ubuntu) |
Fix Released
|
High
|
Daniel van Vugt | ||
unity (Ubuntu) |
Fix Released
|
High
|
Daniel van Vugt |
Bug Description
You might expect that with "Sync To VBlank" enabled in compiz that video tearing doesn't happen. But it does, just less often.
This appears to be a regression in Ubuntu 11.10, because in 11.04 "Sync to VBlank" was working reliably and eliminated tearing.
Strangely, disabling just the Unity plugin in CCSM solves the problem and all tearing goes away. This seems to be related to bug 861061 where the Unity plugin also degrades application frame rates. Both issues are instantly solved by disabling just the Unity plugin.
WORKAROUND:
In CCSM, Workarounds, enable "Force full screen redraw (buffer swap) on repaint". With some graphics drivers like the NVIDIA proprietary one, this workaround may introduce stuttering and halve the framerate you see. That is expected with some drivers and is fixed by the same compiz fix that is proposed for this bug.
USERS OF THE NOUVEAU DRIVER:
If you are using the "nouveau" driver for NVIDIA chips, you will need to enable Sync To VBlank support in the driver options because nouveau has it disabled by default. You can do this by editing /etc/X11/xorg.conf and adding:
# For nouveau only:
Section "Device"
Identifier "My Graphics"
Option "GLXVBlank" "on"
EndSection
Then log out and in again for it to take effect.
USERS OF THE CATALYST (FGLRX) DRIVER:
The fglrx driver also disables Sync to VBlank support by default. To fix this:
1. Open Catalyst Control Center.
2. Go to 3D > More Settings.
3. Set "Wait for vertical refresh" to "On, unless application specifies".
-------
ProblemType: Bug
DistroRelease: Ubuntu 11.10
Package: compiz 1:0.9.6+
ProcVersionSign
Uname: Linux 3.0.0-12-generic x86_64
.tmp.unity.
ApportVersion: 1.23-0ubuntu3
Architecture: amd64
CompizPlugins: [core,bailer,
CompositorRunning: compiz
Date: Mon Oct 24 16:01:07 2011
DistUpgraded: Fresh install
DistroCodename: oneiric
DistroVariant: ubuntu
GraphicsCard:
Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller [8086:0102] (rev 09) (prog-if 00 [VGA controller])
Subsystem: Dell Device [1028:047e]
InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Release amd64 (20111012)
MachineType: Dell Inc. OptiPlex 990
PackageArchitec
ProcEnviron:
LANGUAGE=en_AU:en
PATH=(custom, no user)
LANG=en_AU.UTF-8
SHELL=/bin/bash
ProcKernelCmdLine: BOOT_IMAGE=
SourcePackage: compiz
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 05/28/2011
dmi.bios.vendor: Dell Inc.
dmi.bios.version: A05
dmi.board.name: 0D6H9T
dmi.board.vendor: Dell Inc.
dmi.board.version: A00
dmi.chassis.type: 15
dmi.chassis.vendor: Dell Inc.
dmi.modalias: dmi:bvnDellInc.
dmi.product.name: OptiPlex 990
dmi.product.
dmi.sys.vendor: Dell Inc.
version.compiz: compiz 1:0.9.6+
version.ia32-libs: ia32-libs N/A
version.libdrm2: libdrm2 2.4.26-1ubuntu1
version.
version.
version.
version.
version.
version.
version.
version.
Related branches
- Sam Spilsbury: Approve
-
Diff: 145 lines (+11/-59)2 files modifiedplugins/composite/src/screen.cpp (+7/-8)
plugins/opengl/src/screen.cpp (+4/-51)
- Sam Spilsbury: Approve
- Compiz Maintainers: Pending requested
- Tim Penhey: Pending requested
-
Diff: 408 lines (+89/-150)3 files modifiedplugins/composite/src/privates.h (+2/-7)
plugins/composite/src/screen.cpp (+63/-131)
plugins/opengl/src/screen.cpp (+24/-12)
- Sam Spilsbury (community): Approve
- Unity Team: Pending requested
-
Diff: 60 lines (+13/-4)4 files modifiedplugins/unityshell/src/BackgroundEffectHelper.cpp (+9/-0)
plugins/unityshell/src/BackgroundEffectHelper.h (+1/-1)
plugins/unityshell/src/PanelView.cpp (+1/-2)
plugins/unityshell/src/unityshell.cpp (+2/-1)
- Jason Smith (community): Approve
- Robert Carr (community): Approve
-
Diff: 1711 lines (+1184/-294)12 files modifiedplugins/unityshell/src/BackgroundEffectHelper.cpp (+13/-0)
plugins/unityshell/src/BackgroundEffectHelper.h (+1/-1)
plugins/unityshell/src/PanelView.cpp (+1/-2)
plugins/unityshell/src/ScreenEffectFramebufferObject.cpp (+234/-0)
plugins/unityshell/src/ScreenEffectFramebufferObject.h (+84/-0)
plugins/unityshell/src/comptransientfor.cpp (+2/-0)
plugins/unityshell/src/unityshell.cpp (+73/-256)
plugins/unityshell/src/unityshell.h (+7/-35)
tests/CMakeLists.txt (+14/-0)
tests/GLFuncLoader.cpp (+51/-0)
tests/GLFuncLoader.h (+33/-0)
tests/TestScreenEffectFramebufferObject.cpp (+671/-0)
- Jason Smith (community): Approve
- Mirco Müller: Pending requested
- Neil J. Patel: Pending requested
-
Diff: 1729 lines (+1188/-297)11 files modifiedplugins/unityshell/src/BackgroundEffectHelper.cpp (+13/-0)
plugins/unityshell/src/BackgroundEffectHelper.h (+1/-1)
plugins/unityshell/src/PanelView.cpp (+1/-2)
plugins/unityshell/src/ScreenEffectFramebufferObject.cpp (+234/-0)
plugins/unityshell/src/ScreenEffectFramebufferObject.h (+87/-0)
plugins/unityshell/src/unityshell.cpp (+75/-257)
plugins/unityshell/src/unityshell.h (+7/-35)
standalone-clients/CMakeLists.txt (+16/-2)
standalone-clients/GLFuncLoader.cpp (+51/-0)
standalone-clients/GLFuncLoader.h (+33/-0)
standalone-clients/TestScreenEffectFramebufferObject.cpp (+670/-0)
description: | updated |
description: | updated |
Changed in unity (Ubuntu): | |
assignee: | nobody → Daniel van Vugt (vanvugt) |
Changed in compiz (Ubuntu): | |
importance: | Undecided → Medium |
Changed in unity (Ubuntu): | |
importance: | Undecided → Medium |
Changed in compiz-core: | |
assignee: | nobody → Daniel van Vugt (vanvugt) |
importance: | Undecided → Medium |
status: | New → In Progress |
Changed in unity (Ubuntu): | |
status: | Confirmed → In Progress |
Changed in unity: | |
status: | New → In Progress |
assignee: | nobody → Daniel van Vugt (vanvugt) |
summary: |
- Visible tearing occurs even when "Sync To VBlank" is enabled, but only - when Unity is active. + [regression] Visible tearing occurs even when "Sync To VBlank" is + enabled, but only when Unity is active. |
description: | updated |
description: | updated |
description: | updated |
summary: |
- [regression] Visible tearing occurs even when "Sync To VBlank" is - enabled, but only when Unity is active. + [regression] Visible tearing is worse in 11.10 than 11.04, even when + "Sync To VBlank" is enabled, but only when Unity is active. |
description: | updated |
Changed in unity: | |
importance: | Undecided → High |
Changed in unity (Ubuntu): | |
importance: | Medium → High |
Changed in compiz (Ubuntu): | |
importance: | Medium → High |
Changed in compiz-core: | |
importance: | Medium → High |
Changed in compiz-core: | |
milestone: | none → 0.9.6 |
Changed in compiz (Ubuntu): | |
status: | Confirmed → In Progress |
assignee: | nobody → Daniel van Vugt (vanvugt) |
tags: | added: performance |
Changed in unity: | |
milestone: | none → 5.0.0 |
status: | Fix Released → Fix Committed |
Changed in unity: | |
status: | Fix Committed → Fix Released |
Changed in compiz-core: | |
status: | In Progress → Fix Committed |
Changed in compiz-core: | |
status: | Fix Committed → Fix Released |
Changed in ubutter: | |
status: | New → Fix Released |
Subscribed smspillaz. I hope we can make progress on this issue eventually.