Terrible screen tearing on Vizio UHDTV

I would like to start by saying I’m truly impressed with how amazing Emulation has become. I first got into it back in the Nesticle days and Retroarch is truly incredible. Great job! I also want to apologize if this has been answered but so far I haven’t seen this issue posted anywhere else.

Anyway, my problem is screen tearing, or shimmering. When moving both the background and foreground has a terrible shimmer or stutter to it. . I notice it the most on platform games that require a lot of horizontal movement; My testing games have been Super Mario World, Donkey Kong Country and Sonic and Knuckles. I haven’t noticed it as much on PSX or N64 games but I think that’s mainly because they aren’t 2D platformers. I have tried different cores but the results are the same. There is no input lag and everything plays well enough it’s just the video.

I am using a frontend, Launchbox, but I tried directly through Retroarch with the same results.

i even dusted off an old version of SNES9X to try instead of Retroarch and everything works properly there. I use Mame without an issue as well as Demul. So the problem is definitely something with Retroarch.

I am using a Vizio M-50 C1 UHDTV so I’m wondering if that is part of the problem? But again, no other emulators give me this issue.

I have gone through and tried toggling each Video setting one by one (Including Vsync) without success.

If you need to see what I’m talking about I can probably arrange a video or gif to illustrate it, just let me know.

More information:

Vizio M50 C-1 Windows 10 Home x64 Bit Core i7 32 GB Ram Nvidia GTX 680

Are you forcing any 3D performance settings in your driver control panel?

No, I don’t believe so. My Nvidia settings were defaulted to “Let the 3D Application decide.” I tried changing it to Quality over Performance but it didn’t fix the problem.

I guess a video or gif would be helpful to make sure we know what you’re describing.

Since Windows smoothness in RetroArch is a minefield currently, here’s how to get a smooth experience with RetroArch in Windows:

Ensure that you’re using fullscreen with the “gl” video driver set. That makes RetroArch use OpenGL. Everything else in Windows causes RetroArch to tear, since the D3D driver broke at some point and nobody has been willing to spend the time/effort to fix it. The D3D, SDL, and vulkan drivers all don’t work properly in Windows yet. Only OpenGL lets you have smooth performance in Windows currently, unfortunately.

After setting RetroArch to use OpenGL and restarting the whole program to make sure it’s using it, try the following: keep RetroArch running in the Video settings menu for at least 2048 frames (~35 seconds at 60 fps), then when highlighting the “Estimated monitor refresh rate”, press whatever you have bound to RetroPad A. I think the Enter key might also work now too. This should cause RetroArch to use the proper refresh rate of your monitor when vsyncing and audio syncing.

Also, ensure that you have audio sync enabled and vsync enabled. That will make RetroArch use its audio rate control thing to distort the audio imperceptibly to match your video rate.

By the way, I say to use fullscreen because even with OpenGL, Windowed mode tears/stutters. At least according to my extensive testing, there is currently no way to get RetroArch to not tear or stutter in Windowed mode in Windows.

I am using Windows 7, for the record, in case there’s something different in 8 or 10. I’ve heard 8 and 10 have their own sets of problems, so I have stuck with 7.

Direct3D works just fine on one of my systems (a Windows 8.1 laptop), I dunno what you’re talking about. But it’s a less than desirable driver, yeah. I don’t know why you would want to use it unless your OpenGL driver implementation is particularly bad. SDL especially, why on Earth even entertain wanting to use that when there is literally zero reason for needing it for the Windows version? We might as well bake this out of the binaries honestly, I’ve never understood why this was there or why it was implemented in the release builds to begin with.

Regarding Windows and ‘smoothness’, I guess you’d have to describe what you mean by ‘smoothness’ and ‘tearing’. According to hunterk, your definition of it might be somewhat different to mine, so before I go on a tangent about what it is you might mean, it is best you elaborate on it. Do you mean vsync screen tearing or something else entirely?

After testing D3D a bit in the latest git, it seems I was mistaken and D3D does have smooth windowed mode and fullscreen with non-GL-specific cores. However, there are some other reasons that cause me still to not recommend it.

From a bunch of specific testing I did just now, D3D in RA with Nvidia lacks support for a few nice things that OGL supports: xmb (crashes immediately if on with empty stdout and stderr output), shaders (closes immediately with errors with Cg; ignores glsl), aspect ratio after going fullscreen (stretches incorrectly wide if fullscreen is toggled from windowed after loading content; can be worked around by opening rgui and closing it again). I think it’s pretty safe to say right now that it’s better to avoid using D3D in RA, since the OGL driver is much more complete.

I don’t wish to undermine your authority or anything, Twinaphex. You’re right that I was mistaken saying it’s not smooth. You’re also right that D3D works in some capacity but is less than desirable. RA works beautifully with OGL and D3D used to support all the same features, but it has understandably been relatively left behind since its rewrite because not only is OGL is a cross-platform GL that is much more valuable to support overall, but NVidia has improved OGL support in their Windows drivers in the past few years, so there’s been no need to support D3D any more.

I love RA, so I recommend OGL so other Windows users get to experience it properly, at least if their power settings are set correctly. Mine already are. I can help with that too. Here’s a screenshot of the NVidia control panel with a key setting: http://dl.dropbox.com/u/35695760/00000585.png. It’s called “Power management mode” and one should make sure it’s set to “Prefer maximum performance”. There are some other settings for PCIe and CPU in the Windows power options: http://dl.dropbox.com/u/35695760/00000587.png. I believe that once all these are set, your machine should not be throttling itself any more. I’ve disabled core parking in my UEFI, so my core parking setting doesn’t show properly there in the Windows power options, which is why I didn’t show that one in that screenshot.

Yes, if you can switch from Windows, do so. I won’t personally because of several reasons I’d rather not get into here in this unrelated thread.

Thanks everyone for the quick responses so far! I’m at work right now but I will try some of the suggestions posted here tonight. Until then I have a short gif I have attached. I apologize for the quality - it’s a low quality gif taken from a video from my phone off of my tv! But I think you can see some of the problem in it. Pay close attention to the yellow pipes on the bottom right of the screen and the blue and white post on the left. You can see some of the frames seem to be a second or so in front of the rest. In this game it doesn’t look that bad (On video) But on games with more complex backgrounds and images it’s even worse. I can make another gif or video if this isn’t clear enough.

I should also mention I tried switching the driver from GL to D3D but it crashes immediately. I don’t know if that would be fixed with some of the suggestions here or not.

Edit - I can’t seem to get the gif small enough to attach. Here is an online link but I’m not sure how long it will stay up:

https://imgflip.com/gif/124e5a

It looks like I figured it out. While following Lex’s suggestions I toggled the global Nvidia settings for Vsync to turn it on instead of the default, Let the 3D Application decide. And that did the trick! The video now scrolls perfectly. What I don’t understand is why this only affected Retroarch. I tried playing with the Vsync within RA by turning it on (Then saving the configuration, quitting and going back in) and turning it off. It never made a difference. But by turning it on from the card software’s level it fixed it!

I want to thank everyone for their quick and in-depth responses. I hope this post helps others in the same situation if they come across it.

That definitely looks like tearing… Try going into settings > frame throttle and try some different values for ‘maximum run speed’.