Fixing Screen Tearing issues on RPI4
-
@lolkthxbai
This simple guide should get you up and running with KMS driver. -
@bluestang I don't think you need to do rpi-update to get the kms driver anymore (double check me on that though!) I think it ships with the standard software. rpi-update can sometimes be a pain, because it can be difficult to go backwards after getting pre-release software with it. I wouldn't recommend it.
-
@brandflake11 said in Fixing Screen Tearing issues on RPI4:
@bluestang I don't think you need to do rpi-update to get the kms driver anymore (double check me on that though!) I think it ships with the standard software. rpi-update can sometimes be a pain, because it can be difficult to go backwards after getting pre-release software with it. I wouldn't recommend it.
You absolutely need to do rpi-update because the KMS driver in the 5.4 kernel is broken and will not be fixed.
All your doing is going from one broke driver to the other if you do not update your kernel.
If you need to revert back to the 5.4 kernel you can always do this:
sudo apt install --reinstall raspberrypi-bootloader raspberrypi-kernel
-
@bluestang Ah, I did not know about this. Thank you for the details!
How broken is the kms driver in the mainline packages?
-
@brandflake11 said in Fixing Screen Tearing issues on RPI4:
@bluestang Ah, I did not know about this. Thank you for the details!
How broken is the kms driver in the mainline packages?
It’s missing many patches that were merged from upstream Linux because they started to appear in 5.9 and then were carried over to 5.10. which is the next LTS release.
Eventually RPiOS will make the switch to 5.10 and all of this will be moot.
But if you are trying to test things out, you need to be on the latest kernel to take advantage of the patches.
-
@bluestang Thank you for explaining and provided a way to revert because I did a lot of work on this installation lol
Anyways, I just started withsudo rpi-update
It mentioned the bootloader EEPROM has a firmware update available. Should I do that after the kernel update is complete?
UPDATE: So after editing my config.txt file following the instructions in the link you posted I have no video. I can't even see the raspberry pi on my network anymore so I can't SSH either. It does turn on, I can see the ethernet port LED is flashing. Yikes.
-
@lolkthxbai
I’m not sure where you went wrong. Are you able to post your config.txt? -
@bluestang
I ended up commenting and uncommenting a few things from my config.txt file and got it to work but now I'm having issues with audio.I can hear audio just fine in ES when playing video previews but when I launch a SNES game I get no Audio in the game. I exit the game and I also lose audio in ES.
I was following along this pinned topic but none of the troubleshooting steps there narrowed it down for me.
In ES>Sound Settings>System Volume stays at 0%
-
@lolkthxbai said in Fixing Screen Tearing issues on RPI4:
@bluestang
I ended up commenting and uncommenting a few things from my config.txt file and got it to work but now I'm having issues with audio.I can hear audio just fine in ES when playing video previews but when I launch a SNES game I get no Audio in the game. I exit the game and I also lose audio in ES.
I was following along this pinned topic but none of the troubleshooting steps there narrowed it down for me.
In ES>Sound Settings>System Volume stays at 0%
You need to select Default and Master for the volume slider to work if remember correctly.
Have you tried other emulators?
-
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.