Fixing Screen Tearing issues on RPI4
-
So the specific screen tearing you mentioned (didn't notice if a solution or fix was posted here, just briefly skimmed through responses) seems to be related to Threaded Video in the RetroArch video settings. Turning it off (it's on by default) seemed to clear up the tearing on my end. I was getting the tearing in a lot of things, but it was most prominent in Dreamcast and PS1 games. It also remedied some of the stuttering I was getting in a few games through Mame.
-
@bluestang
If I switch it to Default, Master and HDMI, the slider doesn't work.
If I switch it to Default, PCM and HDMI, it works in ES and inside of games. -
Hello, I notice odd "tearing" happening too, but only sometimes. Playing some Dreamcast stuff exposed it. Then I tried just MK2 on Mame2003 and I noticed it. I tried turning threaded video off, and it didn't fix it. Oddly, Sonic 2 on Genesis Plus GX with its fast motion didn't appear to have the problem. Another perplexing issue.
-
@greenhawk84 that's not the fix (in fact, you should turn it back on as it helps hugely with performance on many emulators). read the rest of this thread - kms driver is the fix, but has caveats.
-
@dankcushions thank you, is there any other root cause that can be updated/fixed in later builds, or is this simply a Pi4 hardware limitation?
-
@dankcushions I think as a small test, I will revert my overclock back to stock and see what happens. I like to make sure these things are happening with a standard setup from official updates and files.
-
Okay, I removed my overclock, so everything should be stock, and I still got tearing on I guess "intensive" games which is also odd since people are reporting NES issues. I tried the KMS driver and my Carbon theme got really weird looking and no videos were working. I was able to load up MK2 on Mame2003plus and it appeared to not have any tearing so I guess the KMS driver has something positive going for it. Other than that this is super strange on a Pi4 vs. a Pi3 where things were a lot smoother.
-
@greenhawk84 the KMS driver for the RPi4 renders omxplayer inoperable. You’ll need to disable it in EmulationStation so that VLC is used instead.
The FKMS driver will be forever broken when it comes to vsync and tearing. Hence why the KMS driver is actively being worked on and FKMS is not. At some point, any emulator that relies on displaymanx for the RPi4 will need code changes if they want to support the KMS driver.
Eventually the KMS driver will become the featured driver. The latest 5.10.17 kernel works fairly well with it. You should just be able to get from apt.
-
@bluestang wow, that's rather disappointing news, since there is no telling when kms will be fully implemented. I find that both ways cause showstoppers for me, one being kms breaks a bunch of other stuff, and then of course now having some very noticeable tearing. I guess I can just hope things improve sooner than later, if there is a way to donate I will.
-
@greenhawk84 to be clear they’re never going to fix dispmanx/omx support. these utilise features of the original closed source gpu firmware that they have replaced with an open, more standard linux solution. it’s not all bad news, though, as there’s typically an alternative solution (eg vlc rather than omx, but you may have to re-encode/replace your videos).
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.