Tearing in Unity with Nvidia GTX670 (vsync failure)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Compiz |
Invalid
|
Undecided
|
Unassigned | ||
compiz (Ubuntu) |
Invalid
|
Undecided
|
Unassigned |
Bug Description
Dragging windows around, playing video (vdpau, xv, gl) and OpenGL all suffer of tearing even if the application (or nvidia-settings) has Sync to VBlank (vsync) enabled. A tearing break consistently appears approximately on the same position, about 40 % from the top of the screen. This bug is seen with Nvidia proprietary drivers but googling suggests that it does not depend on the GPU or its driver but that it is actually a design issue with the compositing managers.
Forcing the GPU into performance mode with nvidia-settings makes no difference (with my old GPU this would often solve tearing problems). Toggling full screen mode also doesn't appear to change anything.
Symptoms:
- Application-side (per window) vsync is working fine
* Window dragging, video playback and OpenGL all behave the same
- Full screen OpenGL works fine
* Compositing bypassed?
- Compositing fails: compiz attempts syncing but the timing is wrong
* If it was not syncing at all, the tear lines would "move" randomly
* The buffer swap should occur during vertical blanking, not during screen refresh
Workarounds:
- Disable compositing (use different WM)
System:
- Ubuntu 12.04 LTS
- Nvidia drivers 295.49
- MSI GTX670
- Compiz 0.9.7.8
- Unity 5.12.0
Changed in compiz: | |
assignee: | Daniel van Vugt (vanvugt) → nobody |
Also occurs with other compositing managers and without any (Ubuntu 2D and Gnome Fallback tested). The next guess would be a driver bug. A video of the problem (Ubuntu 2D, video playback on xv, vsync for video enabled in Nvidia Settings): http:// www.youtube. com/watch? v=p1kKaKMNRnY
I am pretty sure that this did not occur with GTX460 as I first noticed it shortly after upgrading to GTX670.