composite refresh rate falls back to 50Hz, which is wrong in most cases
| Affects | Status | Importance | Assigned to | Milestone | |
|---|---|---|---|---|---|
| Compiz |
Fix Released
|
Low
|
Daniel van Vugt | ||
| Compiz Core |
Fix Released
|
Low
|
Łukasz Zemczak | ||
| compiz (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
| Precise |
Fix Released
|
Undecided
|
Unassigned | ||
Bug Description
[Test Case]
1. Run ccsm
2. Click on Composite
-> Confirm that the Refresh Rate is set to 60 by default (you can click reset to default to be sure of that)
Only for devices that have problems with sync to vblank and xrandr refresh rate detection:
3. In ccsm Composite options, disable Detect Refresh Rate
4. Log out and in again
-> Try to verify that compiz is running 60 Hz by default
[Regression Potential]
No regression potential
Original description:
The composite plugin chooses its refresh rate in this order:
1. Try to sync to vblank and match the monitor's real refresh rate.
2. Discover the hardware refresh rate from the xrandr extension.
3. Fall back to the user-configured refresh rate option, usually configured using CCSM.
#1 used to work for most drivers. In Ubuntu 12.04, it now only works for intel and radeon drivers at most. This is because fglrx, nouveau and nvidia all default to disabling sync to vblank.
#2 works for all drivers except nvidia, which fails to report the correct refresh rate in xrandr (bug 92599).
#3 always works but rarely looks correct. Because most LCDs run at 60Hz and composite falls back to 50Hz.
We can't do anything about #1 and #2 in compiz, but we should fix #3.
WORKAROUND:
1. Run ccsm (from package compizconfig-
2. Click on Composite.
3. Disable: Detect Refresh Rate
4. Set: Refresh Rate = 60
5. Log out and in again.
Alternatively, if you're looking at this bug because of problems with the NVIDIA driver, try the workaround listed at the top of bug 92599 instead.
Related branches
- Sam Spilsbury: Approve
-
Diff: 45 lines (+6/-4) 2 files modifiedapiplugins/composite/composite.xml.in (+1/-1)
plugins/composite/src/screen.cpp (+5/-3)
- Daniel van Vugt: Approve
-
Diff: 45 lines (+6/-4) 2 files modifiedapiplugins/composite/composite.xml.in (+1/-1)
plugins/composite/src/screen.cpp (+5/-3)
+ composite refresh rate falls back to 50Hz, which is wrong in most cases
Fix committed into lp:compiz at revision 3246
Fix committed into lp:compiz-core/0.9.7 at revision 3108
Hello Daniel, or anyone else affected,
Accepted compiz into precise-proposed. The package will build now and be available at http://
If this package fixes the bug for you please change the bug tag from verification-needed to verification-done. If it does not, change the tag to verification-
This bug was fixed in the package compiz - 1:0.9.8+
---------------
compiz (1:0.9.
* New upstream snapshot.
- Fall back to a refresh rate that is more likely to look correct; 60Hz.
(LP: #1009338)
- Benchmark plugin should consume its key binding, and not pass the key to
the underlying window. (LP: #1009320)
- Avoid needless STL operations leading to expensive heap operations.
(LP: #1006335)
- Fix a typo that was causing (LP: #1002606)
(
- Check if the window is decorated before trying to change its event window
states (which won't exist if not decorated) (LP: #1007754)
- Use the XDamage extension more efficiently (the way it was designed to be
used). This dramatically reduces CPU usage, reduces wakeups, and
increases frame rates. It also solves at least one observed performance
bug (LP: #1007299) and probably several more.
- Avoid constructing and destructing lots of strings on every single event,
which was wasting lots of CPU (LP: #1005569)
- md LINGUAS doesn't exist, it's mnk (Mandinka in ISO 639-3)
- Move grid plugin to google test and don't depend on the plugin for the
test (LP: #1005009)
- Don't read plugin.Initialized and test the value. (LP: #1004848)
- libcompizconfig's install () commands were still using the old includedir
and libdir variables rather than their libcompizconfig_* variants.
(LP: #1005176)
- Execute the cmake files separately to ensure that DESTDIR is respected.
(LP: #1005177)
- Don't set_target_
(LP: #1005008)
- Don't allow windows which we weren't even tracking as decoratable to
become decorated if they try and change their hints. (LP: #963794)
- Change the mouse pointer while dragging windows in expo. Just like the
ubuntu branches do. (LP: #987647)
- Fix uninitialized memory use (LP: #1004338)
- Fix uninitialized variable (LP: #1004335)
- Delay unbinding of pixmaps until then next rebind (LP: #729979)
(LP: #1002602)
- Don't drop plugins from the list to try and load before you've even tried
to load them. Doing so makes missing plugins silently ignored instead of
an error message (LP: #1002715). It also means valid plugins in more
unusual, but real locations in LD_LIBRARY_PATH will never get loaded
(LP: #1002721).
- If running test cases under a real X server, we don't care if Xvfb is
missing (LP: #994841)
- Don't assume pkg_check_modules always sets _PREFIX (LP: #993608)
- Don't clear selections in ~PrivateScreen because it causes a race between
the existing and the new compiz instances, breaking --replace and
non-replace behaviour. (LP: #988684) (LP: #989545)
- Always paint with infiniteRegion as the clip region if the window is
transformed and always use the supplied region if painting with offset or
on transformed screen. (LP: #987639)
- Add synchronization primitives to the decoration protocol so that there
isn't a r...
I confirm that with the proposed package the Refresh Rate is set to 60 by default.
removed: verification-needed
This bug was fixed in the package compiz - 1:0.9.7.
---------------
compiz (1:0.9.
[ Łukasz 'sil2100' Zemczak ]
* Cherry-pick upstream patches:
- CMake Error at FindCompiz.cmake:84 (include): include could not find load
file: CompizDefaults (LP: #993608)
- compiz (decor) - Warn: failed to bind pixmap to texture (LP: #929989)
- gtk-window-
_
- [callgrind] compiz spends ~25% of its time constructing/
strings in PrivateScreen:
- gtk-window-
(LP: #1007754)
- composite refresh rate falls back to 50Hz, which is wrong in most cases
(LP: #1009338)
- [callgrind] compiz spends ~7% of its time inserting into and destructing
the events list in PrivateScreen:
[ Didier Roche ]
* debian/control:
- change Vcs-Bzr to point to precise branches
-- Lukasz 'sil2100' Zemczak <email address hidden> 2012年6月20日 15:02:31 +0100
Hello Daniel, or anyone else affected,
Accepted compiz into precise-proposed. The package will build now and be available at http://
Please help us by testing this new package. See https:/
If this package fixes the bug for you, please change the bug tag from verification-needed to verification-done. If it does not, change the tag to verification-
Further information regarding the verification process can be found at https:/
Using the proposed package the refresh rate is set to 60 by default.
removed: verification-needed
Hello Daniel, or anyone else affected,
Accepted compiz into precise-proposed. The package will build now and be available at http://
Please help us by testing this new package. See https:/
If this package fixes the bug for you, please change the bug tag from verification-needed to verification-done. If it does not, change the tag to verification-
Further information regarding the verification process can be found at https:/
Using the proposed package the refresh rate is set to 60 by default.
removed: verification-needed
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.
This bug is still present! I am using Ubuntu 13.04 amd64 with an nVidia 8600M GT.