Good news regarding tearing and low EmulationStation performance on Pi 4
-
@ecto can you give me details about your setup? 32-bit or 64-bit? Is it fully updated via apt? What steps did you take to enable the KMS driver? What does your boot config look like?
-
@bluestang Yeah, sure!
I have a 32bit setup and before switching to kms I did:
apt update apt full-upgrade
I also edited
vc4-hdmi.conf
.I have now the kernelversion
Linux retropie 5.10.17-v7l+ #1403 SMP Mon Feb 22 11:33:35 GMT 2021 armv7l GNU/Linux
with the following
config.txt
:disable_overscan=1 disable_splash=1 over_voltage=6 arm_freq=2100 gpu_freq=750 v3d_freq=800 hdmi_enable_4kp60=1 [pi4] dtoverlay=vc4-kms-v3d max_framebuffers=2 [all] overscan_scale=1 hdmi_ignore_cec_init=1 dtparam=i2c_arm=on enable_uart=1
Im reading this thread but haven't found an answer yet.
EDIT
There is something strange going on: The PSX games I testd crackled because they are running much too fast! I haven't seen any settings relating to that in retroarch, but I previously haven't noticed that.Also the buttonmap of my joypad (xbox360) has changed?!? But that might have something to do with my retroarch update... I (once again) made too many changes at one, I guess ^_^;
-
@ecto said in Good news regarding tearing and low EmulationStation performance on Pi 4:
Im reading this thread but haven't found an answer yet
Shouldn't
dtoverlay=vc4-kms-v3d
read asdtoverlay=vc4-kms-v3d,noaudio
? -
@roslof I thought that noaudio should be omitted, but I'll try it.
-
@roslof said in Good news regarding tearing and low EmulationStation performance on Pi 4:
@ecto said in Good news regarding tearing and low EmulationStation performance on Pi 4:
Im reading this thread but haven't found an answer yet
Shouldn't
dtoverlay=vc4-kms-v3d
read asdtoverlay=vc4-kms-v3d,noaudio
?The noaudio option is if you want to continue to run the Broadcom firmware audio driver. The KMS driver is not only a video driver but also an audio HDMI driver as well.
It is purely up to the user which audio output they want.
-
@ecto the audio crackling sounds like an issue with RetroArch specifically. What did you update with it? RetroPie is still on version 1.8.9...
-
@bluestang I just updated retroarch with
retropie_setup
so that should be ok. Let me check ...believing the data from
/opt/retropie/emulators/retroarch/retropie.pkg
its on1.8.8
. I will have to shoo away the kids from the TV to check it on thr pi... ;) -
@roslof OK I tried the
noaudio
option, and have indeed no audio in any emu. :(But when trying lr-pcsx, it runs at normal speed! As soon as I remove the
noaudio
option, audio is back, but lr-pcsx runs too fast and has the crackling.
So far, I've tested amiberry (runs ok), scummvm (runs ok) and redream (runs ok)... sooo it's probably a retroarch/pulseaudio problem (as can also be seen in the syslog I posted earlier).What I haven't done (I read here about that): start the desktop (as I have none) to change the audio output...
EDIT
Ok, I forgot to run the mixer setup in the retropie setup. I now have non-stuttering (non-kms) sound and the emus run at a normal speed.
I still have an error message that some mixer element couldn't be found, but anyhow. -
@ecto
I thought gpu_freq was not needed on the Pi 4 as per this --
"It is recommended when overclocking to use the individual frequency settings (isp_freq, v3d_freq etc) rather than gpu_freq, as since it attempts to set core_freq (which cannot be changed on the Pi 4), it is not likely to have the desired effect."
-
from here . https://www.raspberrypi.org/documentation/configuration/config-txt/overclocking.md
I only set v3d_freq myself on my Pi 400 and it performs well. Dunno, but could it be causing your problem? Also, I could have sworn I read here somewhere that the noaudio option was no longer needed. If I find this I'll post back.
-
-
@ranma Thanks for looking into that. I have somewhat solved my problem (see my edit some posts above).
You are probably right about the overclocking, but as I never had problems with these settings, I will just let them be ;) -
@ecto In RetroArch, do you have
alsathread
selected as your audio driver? -
@bluestang I don't know. I'm away from my Retropie, but I will report back.
Just for clarification: If I want to use kms sound driver (by removingnoaudio
), Retroarch should use alsathread as audiodriver?
Do I have to switch the audio output somewhere else? I've read that this can be done in desktop environment? Because when I switched back to broadcom audio, I had to use the mixer to enable hdmi output. -
@ecto said in Good news regarding tearing and low EmulationStation performance on Pi 4:
@bluestang I don't know. I'm away from my Retropie, but I will report back.
Just for clarification: If I want to use kms sound driver (by removingnoaudio
), Retroarch should use alsathread as audiodriver?
Do I have to switch the audio output somewhere else? I've read that this can be done in desktop environment? Because when I switched back to broadcom audio, I had to use the mixer to enable hdmi output.In RetroArch your audio driver should be set to alsathread. In fresh installs or updates that may not be the case...regardless of audio config I’ve always used alsathread in my setup.
The KMS audio driver only has HDMI output where the Broadcom audio has HDMI and Headphones. When you switch back to Broadcom audio you may need to select the output that is applicable to you. RetroPie’s audio settings menu should allow you to select the output for the Broadcom audio.
-
@bluestang That did the trick! My retroarch was set to
alsa
and after changing it toalsathread
the crackling went away after enabling KMS. Now everything works as expected! Thanks so much!Now there is still the error messages in the syslog left (but those don't seem to have any negative effect?!
Also, whenever I start a game I get the messagelvl0: VolumeControl::init() - Failed to find mixer elements
. But that, too, doesn't have any negative effect.Anyways thanks for helping me out!
-
@ecto said in Good news regarding tearing and low EmulationStation performance on Pi 4:
@bluestang That did the trick! My retroarch was set to
alsa
and after changing it toalsathread
the crackling went away after enabling KMS. Now everything works as expected! Thanks so much!Now there is still the error messages in the syslog left (but those don't seem to have any negative effect?!
Also, whenever I start a game I get the messagelvl0: VolumeControl::init() - Failed to find mixer elements
. But that, too, doesn't have any negative effect.Anyways thanks for helping me out!
You need to set the volume controls in EmulationStation to Audio Card -> Default and Audio Device -> Master.
-
@bluestang Thanks again! All problems resolved. All emus and ports working!
A little info for anyone playing Hexen 2: As the Hexen 2 port uses SDL 1, there are some fullscreen issues. I resolved that by launching hexen2 with XINIT: in the launch script.
It works ok, but there are some small sound issues.EDIT
I found a Hexen II port that supports SDL2, so no more problems anymore!Another EDIT
lr-vecx doesn't seem so like kms?! I can't get it to work right with either hard- nor software rendering. With hardware rendering, there is no graphics at all, and with software rendering the graphics are very choppy. -
@bluestang A little update: I could not get rid of the sound (driver?) problems. I always found hundreds of
ALSA lib pcm.c:8424:(snd_pcm_recover) underrun occurred
errors in the runcommnd.log.
So I reverted back todtoverlay=vc4-kms-v3d,noaudio
anddtparam=audio=on
.EDIT
looked up the exact error mesage -
@ecto said in Good news regarding tearing and low EmulationStation performance on Pi 4:
@bluestang A little update: I could not get rid of the sound (driver?) problems. I always found hundreds of
ALSA lib pcm.c:8424:(snd_pcm_recover) underrun occurred
errors in the runcommnd.log.
So I reverted back todtoverlay=vc4-kms-v3d,noaudio
anddtparam=audio=on
.EDIT
looked up the exact error mesagewhat emulator is causing this?
-
@brunnis @George-Spiggott @dankcushions
There have been some clock improvements since 5.10.17 kernel's release...
I am running the latest 5.10.33 kernel through
sudo rpi-update
and I have my display set to 1080p @ 120 Hz (hdmi_group=1
andhdmi_mode=63
) on the KMS driver and I am getting a constant 120 FPS in EmulationStation. More graphic intensive themes (i.e. Cosmic Rise) will result in 60 FPS but I do not see the dreaded dip to 30 FPS whatsoever.I no longer have to set
gpu_freq_min=500
either. I do have overclocked settings, but the governor is set to balanced and the clock freq is throttling down as reported by bcmstat.sh.If your feeling adventurous give it a go and I'd be interested in your results.
-
Got 1440p working btw. No more uneven scanlines
hdmi_enable_4kp60=1 hdmi_group=2 hdmi_mode=87 hdmi_cvt=2560 1440 60 3
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.