fglrx driver + compiz's "Sync to Vblank" makes display stutter/slow
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Compiz Core |
Fix Released
|
High
|
Daniel van Vugt | ||
Ubutter |
Fix Released
|
Undecided
|
Unassigned | ||
compiz (Ubuntu) |
Fix Released
|
High
|
Daniel van Vugt |
Bug Description
[Impact]
The user's display only redraws at 20-30Hz (1/3-1/2 of the correct monitor refresh rate). Making a highly unpleasant graphics experience.
[Development Fix]
Simplified the way the compiz opengl plugin does vsync, using fewer functions and simpler code. This works around the slow functions in the fglrx driver which are the root cause.
[Stable Fix]
As above.
[Test Case]
Make sure "Sync To VBlank" is enabled in the OpenGL section of CompizConfig Settings Manager. In Ubuntu 11.04 it is enabled by default.
Drag some windows around. Also open and close windows. The animations will not be smooth as they appear to stutter. The framerate is only around 20-30Hz.
Now turn "Sync To VBlank" off and repeat the above steps again. If you notice the animations are much smoother than with "Sync To VBlank" on then you are suffering from this bug.
[Regression Potential]
Low.
Worst case: Video tearing occurs. However this is unlikely given the fix has been in everyday use by many users of ppa:vanvugt/compiz for many months already.
[Original Report]
This bug is primarily for users of the fglrx driver, but the proposed fix does improve performance with other drivers. Most NVIDIA users should look at bug 92599 instead.
Package: fglrx
Version: 2:8.840-0ubuntu2
01:00.0 VGA compatible controller: ATI Technologies Inc Juniper [Radeon HD 5700 Series]
I have ATI's 5770 with fglrx. Having "Sync to Vblank" on makes Unity and many Compiz features (Enhanced Zoom, Scale etc.) really slow. Turning "Sync to Vblank" off has a huge effect on desktop, responsiveness is much, much better. Turning "tearing" off/on from amdccle doesn't seem to have any effect on responsiveness.
In Maverick "Sync to Vblank" was off by default, in Natty it's on. This will probably have a huge impact on many fglrx users.
Related branches
- Sam Spilsbury: Approve
- compiz packagers: Pending requested
-
Diff: 164 lines (+48/-18)3 files modifiedplugins/opengl/include/opengl/opengl.h (+4/-2)
plugins/opengl/src/privates.h (+1/-0)
plugins/opengl/src/screen.cpp (+43/-16)
- Sam Spilsbury: Pending requested
-
Diff: 131 lines (+32/-18)3 files modifiedplugins/opengl/include/opengl/opengl.h (+2/-4)
plugins/opengl/src/privates.h (+0/-1)
plugins/opengl/src/screen.cpp (+30/-13)
- Didier Roche-Tolomelli: Needs Resubmitting
- Ubuntu Development Team: Pending requested
-
Diff: 172 lines (+152/-0)3 files modifieddebian/changelog (+6/-0)
debian/patches/fix_slow_vsync_lp763005.patch (+145/-0)
debian/patches/series (+1/-0)
- Ubuntu Sponsors: Pending requested
-
Diff: 276 lines (+251/-0)4 files modifieddebian/changelog (+12/-0)
debian/patches/fix-764330.patch (+92/-0)
debian/patches/fix_slow_vsync_lp763005.patch (+145/-0)
debian/patches/series (+2/-0)
Changed in fglrx-installer (Ubuntu): | |
status: | New → Confirmed |
Changed in compiz (Ubuntu): | |
assignee: | nobody → Daniel van Vugt (vanvugt) |
status: | Confirmed → In Progress |
summary: |
- Fglrx with Compiz's "Sync to Vblank" makes Unity/Compiz plugins to crawl + Compiz's "Sync to Vblank" makes display stutter/slow with some drivers + (like fglrx) |
description: | updated |
description: | updated |
Changed in compiz-core: | |
assignee: | nobody → Daniel van Vugt (vanvugt) |
status: | New → In Progress |
affects: | compiz-core → compiz |
Changed in compiz: | |
status: | In Progress → Fix Committed |
description: | updated |
Changed in compiz: | |
status: | Fix Committed → In Progress |
Changed in compiz: | |
status: | In Progress → Fix Committed |
Changed in unity: | |
status: | New → In Progress |
milestone: | none → 4.22.0 |
assignee: | nobody → Daniel van Vugt (vanvugt) |
status: | In Progress → Fix Committed |
Changed in unity: | |
milestone: | 4.22.0 → 4.24.0 |
Changed in unity: | |
milestone: | 4.24.0 → 4.26.0 |
Changed in compiz (Ubuntu): | |
importance: | Undecided → High |
Changed in unity: | |
importance: | Undecided → High |
Changed in compiz (Ubuntu): | |
status: | In Progress → Fix Committed |
description: | updated |
Changed in fglrx-installer (Ubuntu): | |
status: | Confirmed → Invalid |
Changed in compiz (Ubuntu): | |
status: | Fix Committed → Confirmed |
Changed in unity: | |
status: | Fix Committed → Confirmed |
description: | updated |
description: | updated |
no longer affects: | unity |
Changed in compiz-core: | |
status: | Fix Committed → Fix Released |
tags: | added: natty |
Changed in ubutter: | |
status: | New → Fix Released |
Changed in fglrx-installer (Ubuntu): | |
status: | Confirmed → Invalid |
Changed in fglrx-installer (Ubuntu): | |
status: | Confirmed → Invalid |
Changed in fglrx-installer (Ubuntu Oneiric): | |
status: | Confirmed → Invalid |
Changed in fglrx-installer (Ubuntu): | |
status: | Invalid → Confirmed |
Changed in fglrx-installer (Ubuntu Oneiric): | |
status: | Invalid → Confirmed |
Changed in fglrx-installer (Ubuntu): | |
status: | Confirmed → Invalid |
no longer affects: | fglrx-installer (Ubuntu) |
"Sync to Vblank" can be found from CompizConfig Settings Manager -> OpenGl -> Sync to Vblank