Screen/Video tearing 7xx(Kepler), 9xx(Maxwell), 10xx(Pascal) in almost all applications, including desktop

Wow,

I thought I’d never experience this issue and now I have it (for the first time in my life actually).

mplayer -vo xv (which is a default) and -vo vdpau both exhibit noticeable video tearing in full screen mode.

mplayer -vo gl doesn’t have this problem (maybe because newer NVIDIA drivers have VSync turned on by default).

This didn’t happen on the same PC with 8800GT GPU which is kinda strange and almost impossible to believe into - yet tearing is very noticeable. I don’t run any compositing managers and I don’t have any desktop effects enabled.

This issue affects only those users who don’t run any form of compositing display manager (if you have one, just enable Vsync and you’ll be fine).

Please advise.

Update 2013-06-17: this issue affects Adobe Flash Player videos, VLC and other media players, tearing can also be seen when scrolling pages in Mozilla Firefox.

Update 2013-09-24: Aaron Plattner says this issue cannot and won’t be fixed, due to the Kepler architecture.

Update 2013-10-22: Try the ForceCompositionPipeline and/or ForceFullCompositionPipeline MetaMode attributes. They are supposed to fix this issue, but mind that they cause significant performance degradation in games. See Chapter 12. Configuring Multiple Display Devices on One X Screen for details.

Update 2013-11-27: if you want to fix tearing temporarily without changing any configuration files, use this command:

nvidia-settings --assign CurrentMetaMode="DVI-I-1: 1920x1200 { ForceCompositionPipeline = On }"

You can find out your output device(s) by running

xrandr | grep " connect"

Beware that ForceCompositionPipeline makes Wine desktop (non-gaming) applications unusable - they become extremely slow and sluggish.

Update 2014-01-03: Here’s a quick test to test tearing:

Make this video full screen and check if the vertical line is untorn.

Update 2014-01-04: Windows XP and Windows 7 (not running Aero) users are also affected. There’s no solution for Windows XP (videos playback can be fixed by using MPC-HC though) and for Windows 7 you have to enable Aero. I suspect Maxwell will have the same issue since non-compositing desktops are a thing of the past and Windows XP won’t be supported for Maxwell at all.
nvidia-bug-report.7z (47 KB)

can you please have a look if it is like this (see screen-shots there):
[url]EVGA GeForce GTX 660 Ti Problems! - Linux - NVIDIA Developer Forums

For me the tearing / artifacts described there did happen then I changed from a 460 GTX to a GTX 660Ti

Nvidia does not support compositing environment, and you have composite extension loaded.

This extension is loaded by X server but I don’t run any compositors, I’m on KDE3 and I have no effects enabled.

And you’ve failed to notice that on the same PC a 8800GT GPU doesn’t have this problem.

@kokoko3k: so why did it work with my 460 GTX? I had it for 2 years and exchanged against an GTX 660ti last November? My computer and OS is still the same.

P.S. and it also shows up when i disable composite manager in all or log into with iceWM

BTW, I’m a terribly persistent user, so have my word - I will up this topic every few days until NVIDIA provides fixed drivers or at least admit they are aware of this issue (internal bug report number will suffice) and they’re going to fix it.

It’s a basic core feature we’re talking about here.

I payed $220 so I expect this investment to pay off.

Here’s a video clip you can play yourself if you want to see if this issue affects you.

Video Tearing Test.avi (173 KB)

That’s “funny”, this issue affect youtube videos as well.

Video 1
Video 2

Depending on a performance level, tearing appears at different places.

When I change my display resolution to any non-native resolution, the problem disappears - both in mplayer and in Adobe Flash.

When I change options like display rotation or X/Y mirroring, the problem also disappears.

OK, what the heck is that?

$ nvidia-settings -q XVideoSyncToDisplay

  Attribute 'XVideoSyncToDisplay' (localhost.localdomain:0.0): 0x00010000.
    'XVideoSyncToDisplay' is a bitmask attribute.
    'XVideoSyncToDisplay' can use the following target types: X Screen.

XVideoSyncToDisplay seems to be enabled.

@birdie

thank’s for the tearing.jpg - you encountering the same tearing we have discussed since months in this thread:

[url]EVGA GeForce GTX 660 Ti Problems! - Linux - NVIDIA Developer Forums

we haven’t got an answer from Nvidia since, and yes i also invested 300 Euro to have crappy video now. Grrr.

Btw i bet now it has to do with adaptive sync enabled in the 600 series. but thats just my guess, see the thread above for more guessing, and unfortunately not even once one from Nvidia did comment.

P.S: any workaround is welcomed - we havent found one. It affects in different amount of (d)effect flash (can be healed by setting performance level to “prefer maximum”), a bit vdpau video on mplayer and heavily xv video on vlc. Cheers and welcome to this issue :/

OK, like people suggested I’ve just completely disabled compositing in X.org:

$ cat /etc/X11/xorg.conf.d/no-composite.conf
Section "Extensions"
        Option             "Composite" "Disable"
EndSection

X.org.log:

$ grep -i composite Xorg.0.log
(**) Extension "Composite" is disabled

xdpyinfo confirms that the Composite extension is not loaded.

$ xdpyinfo
name of display:    :0
version number:    11.0
vendor string:    CentOS
vendor release number:    11300000
maximum request size:  16777212 bytes
motion buffer size:  256
bitmap unit, bit order, padding:    32, LSBFirst, 32
image byte order:    LSBFirst
number of supported pixmap formats:    7
supported pixmap formats:
    depth 1, bits_per_pixel 1, scanline_pad 32
    depth 4, bits_per_pixel 8, scanline_pad 32
    depth 8, bits_per_pixel 8, scanline_pad 32
    depth 15, bits_per_pixel 16, scanline_pad 32
    depth 16, bits_per_pixel 16, scanline_pad 32
    depth 24, bits_per_pixel 32, scanline_pad 32
    depth 32, bits_per_pixel 32, scanline_pad 32
keycode range:    minimum 8, maximum 255
focus:  window 0x3000007, revert to PointerRoot
number of extensions:    27
    BIG-REQUESTS
    DAMAGE
    DOUBLE-BUFFER
    DPMS
    DRI2
    GLX
    Generic Event Extension
    MIT-SCREEN-SAVER
    MIT-SHM
    NV-CONTROL
    NV-GLX
    RANDR
    RECORD
    RENDER
    SHAPE
    SYNC
    X-Resource
    XC-MISC
    XFIXES
    XFree86-DGA
    XFree86-VidModeExtension
    XINERAMA
    XINERAMA
    XInputExtension
    XKEYBOARD
    XTEST
    XVideo
default screen number:    0
number of screens:    1

Any more ideas how to fix it, NVIDIA?

OK, I’m not the only person who has this issue.

Full screen video tearing after update - Geforce GTX 650.

nVidia flickering and tearing on opensuse 12.3

Horrible Kepler 2D performance still not fixed - Windows users also experience this problem.

Help with screen tearing using nvidia graphics card - GT 750M.

This topic is a huge mess. And it seems like almost everyone in it runs a compositing manager whereas I run pure X.org.

Nouveau doesn’t have this issue, but the open source driver cannot manage the fan, neither it’s capable of changing GPU/RAM frequencies, so even if it’s damn slow, I cannot stand the noise coming from my GPU (on boot the fan is set to 100% of its speed and nouveau cannot change that).

$ sensors

nouveau-pci-0100
Adapter: PCI adapter
fan1:       3840 RPM
temp1:       +28.0°C  (high = +95.0°C, hyst =  +3.0°C)
                      (crit = +105.0°C, hyst =  +5.0°C)

3840 RPM? No, thank you.

I have to admit though that nouveau has blazing fast 2D. Adobe Flash just flies with it - everything feels super fast. With NVIDIA I can see how Flash video clips get maximized to full screen - with nouveau it’s just instantaneous. In full screen the lower bar in Flash videos is very jerky with NVIDIA, with nouveau it’s absolutely smooth and fast.

xv is not really a problem since you can use -vo gl with mplayer.
as for vdpau, what if you:

#VDPAU_NVIDIA_NO_OVERLAY=1 mplayer moviefile -vo vdpau
Or
#VDPAU_NVIDIA_NO_OVERLAY=0 mplayer moviefile -vo vdpau

If it works, the same trick could be used for accelerated decoding whitin youtube by exporting the variable systemwide.

…As a last resort, try an opengl composite manager that vsync to opengl and doesn’t unredirect on fullscreen windows.
If unsure, try compton, which is just a composite manager.
https://bbs.archlinux.org/viewtopic.php?id=162680

I’m afraid of running an opengl composite manager since NVIDIA drivers may decide I’m running an OpenGL application which requires full performance and that means I will be running my GPU at full speed - and I surely don’t want that.

its an unresolved problem … since months
for every Euro I paid my GTX 660 Ti i will plague Nvidia a day in here now … so this will be almost a year

btw … birdie what GPU you have?

I’m on GTX 660.

BTW even 360p videos on youtube are affected.

  1. I’m assuming that disabling/enabling the overlay path (my previous post about environment variables, not compositor) has no effect, right?

  2. I also pointed you to compton compositor, did you take a look? it is able to sync to vblank in different ways even through xrender (so not opengl → much, MUCH less overhead)

kokoko3k

VDPAU_NVIDIA_NO_OVERLAY=0 mplayer -vo vdpau

Indeed helped, but it’s kinda awkward to watch videos this way.

compton is not a solution for me, since I’m a KWin addict ;-) I absolutely need some of the features it has.

…Not if you export that variable systemwide. by editing /etc/profile or ~.bashrc… or whatever else your distro or desktop environment supports.
…Or use a player that do this for you, like xt7-player.

However this is just a lucky workaround for something broken inside the drivers,
Keep in mind that xv is still broken.

Not only xv since Adobe Flash is also broken and it doesn’t use xv:


FAQ regarding hardware acceleration: Why doesn’t the Flash Player on Linux user the X video extension (Xv)?
Answer: Because Xv scales YUV data. Flash Player operates on RGB data.

So the issue is quite serious - that’s probably the reason why NVIDIA keep their mouth shut.