RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    Good news regarding tearing and low EmulationStation performance on Pi 4

    Scheduled Pinned Locked Moved General Discussion and Gaming
    performancevsyncpi 4kernel 5.4
    194 Posts 38 Posters 66.4k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      PhoenixJedi
      last edited by

      Well now that 5.4 is official, is there any way to get kodi working with this KMS driver or no?

      saccublendaS RascasR 2 Replies Last reply Reply Quote 0
      • saccublendaS
        saccublenda @PhoenixJedi
        last edited by

        @PhoenixJedi I think we just have to wait for Kodi 19 to be released.

        1 Reply Last reply Reply Quote 0
        • RascasR
          Rascas @PhoenixJedi
          last edited by

          @PhoenixJedi Nope, Kodi will only work with KMS in Kodi 19.

          1 Reply Last reply Reply Quote 0
          • Beretta9B
            Beretta9
            last edited by Beretta9

            Now that the update is official, is the KMS driver enabled by default, or do you still have to add the line in the boot config? Is the audio fixed with the KMS driver?

            Retro Gamer Supreme

            B 1 Reply Last reply Reply Quote 0
            • B
              bluestang @Beretta9
              last edited by

              @Beretta9 said in Good news regarding tearing and low EmulationStation performance on Pi 4:

              Now that the update is official, is the KMS driver enabled by default, or do you still have to add the line in the boot config? Is the audio fixed with the KMS driver?

              Not enabled by default, and the KMS driver is very much still a WIP.

              1 Reply Last reply Reply Quote 2
              • A
                akamming @bluestang
                last edited by

                @bluestang said in Good news regarding tearing and low EmulationStation performance on Pi 4:

                It is not possible to use the BCM2835 and the vc4hdmi drivers at the same time.

                That's why i think i got this tip: dtoverlay=vc4-kms-v3d-pi4,audio=off (with dtparam=audio=on and old vc4-hdmi.conf). But that indeed did not work

                What is your output when you type in aplay -l in the cmd line?

                i cannot check, i rolled back to the old kernel. Will try again in the near future

                B 1 Reply Last reply Reply Quote 0
                • B
                  bluestang @akamming
                  last edited by

                  @akamming said in Good news regarding tearing and low EmulationStation performance on Pi 4:

                  That's why i think i got this tip: dtoverlay=vc4-kms-v3d-pi4,audio=off (with dtparam=audio=on and old vc4-hdmi.conf). But that indeed did not work

                  The usage is dtoverlay=vc4-kms-v3d,noaudio combined with dtparam=audio=on

                  This turns off the vc4hdmi audio driver and keeps the BCM2835 audio driver on.

                  If you want the vc4hmdi audio driver the usage is dtoverlay=vc4-kms-v3d and dtparam=audio=off

                  You also need to replace the old vc4hdmi.conf file with this new one https://github.com/LibreELEC/LibreELEC.tv/blob/master/projects/RPi/filesystem/usr/share/alsa/cards/vc4-hdmi.conf

                  I wouldn’t recommend this since this driver is very much a WIP and it lacks several features still.

                  A 1 Reply Last reply Reply Quote 1
                  • A
                    akamming @bluestang
                    last edited by

                    @bluestang said in Good news regarding tearing and low EmulationStation performance on Pi 4:

                    The usage is dtoverlay=vc4-kms-v3d,noaudio combined with dtparam=audio=on

                    This turns off the vc4hdmi audio driver and keeps the BCM2835 audio driver on.

                    Aha... then i think i know here i went wrong. I used audio=off instead of noaudio. Tx! I will try again in a few days...

                    A 1 Reply Last reply Reply Quote 0
                    • A
                      akamming @akamming
                      last edited by

                      @bluestang said in Good news regarding tearing and low EmulationStation performance on Pi 4:

                      The usage is dtoverlay=vc4-kms-v3d,noaudio combined with dtparam=audio=on

                      Just confirmed: This fixes the hdmi audio. Tx a lot!

                      i saw a video on YouTube with someone claiming to overclock the ARM to 2250 on 5.4. So apparently 5.4 with the new firmware has less restrictions on overclock, but i cannot find anywhere on the internet what the new settings are... does any one know? Cause if we can boost cpu and/or gpu we might even get a better emulation performance on the pi 4....

                      1 Reply Last reply Reply Quote 0
                      • S
                        SeraphisCain
                        last edited by SeraphisCain

                        So I'm still having the "jerky scrolling" issue with the KMS driver that I was having when I tested it prior to official release. Noticed it in Super Mario Bros. and Sonic 2 before official release, and Castlevania Chronicles (PS1) just now. Went back to FKMS and it's fixed. Anyone else notice issues with stuttering/jerky scrolling on KMS?

                        @akamming You said earlier in the thread you rolled back to the previous kernel. How did you do that? There's something I need to check in Redream on the previous kernel (and if my suspicion is correct, I'll be staying on the previous kernel).

                        A 1 Reply Last reply Reply Quote 0
                        • A
                          akamming @SeraphisCain
                          last edited by

                          @SeraphisCain said in [Good news regarding tearing and low

                          @akamming You said earlier in the thread you rolled back to the previous kernel. How did you do that? There's something I need to check in Redream on the previous kernel (and if my suspicion is correct, I'll be staying on the previous kernel).

                          I did it using these commands:

                          sudo apt-get update 
                          sudo apt-get install --reinstall raspberrypi-bootloader raspberrypi-kernel
                          

                          (and ofcourse reverting other changes i made myself)

                          but that won't work anymore, cause the raspberry foundation now moved to 5.4 in the official updates as well i noticed...

                          1 Reply Last reply Reply Quote 0
                          • A
                            akamming
                            last edited by

                            now that it's working i did some testing. Decided to keep the kms driver. i noticed

                            the cons:

                            • omx player and kodi don't work anymore (expected), but for me that's fine.. just had to put back the setting in emulation station that it's not using omx player for the video previews, and wasn't using kodi anyway, so removed it from the system
                            • According to some YouTube video's i should be able to overclock the cpu more (now stable at 2100), but to me this only led to an instable system, so did not see the expected better performance here...

                            the pros:

                            • emulationstation feels much smoother. Is feels just like everything is a bit more responsive (but to be honest this can be just a feeling. I cannot measure this objectively). @SeraphisCain i did not see any stuttering/jerky scrolling….
                            • i was able to get some extra power from the gpu : I was able to bring my v3d_freq to 825 while keeping the pi stable. This was 750 on the old kernel/firmware.
                            • the combination of extra gpu overclock and kms driver lead to much better emulation performance on several emulators on which the gpu is a bottleneck :
                            • n64 on lr-mupen64plus-nx: no more audio stuttering in lr-mupen64plus-nx when running in 2X resolution. So now 640x480 available for all games. on old kernel a lot of games had to run on 320x240 to prevent this audio stutter
                            • dreamcast/atomiswave on lr-flycast: almost all games which ran on 640x480 now run 100% speed on 960x720 without frameskip (!)
                            • psp on ppsspp: can now run almost all games on 3x resolution (used to be 2x resolution). Still using frameskip setting auto/1 (but i also did dat on the 2x resolution on the old kernel/firmware).

                            Overall: very happy! big improvement in overall performance!

                            R 1 Reply Last reply Reply Quote 1
                            • A
                              akamming
                              last edited by

                              I noticed some errors on the console. Haven't noticed them before. The only change i lately did was the move to 5.4 using the kms driver. So i think it is related.

                              mmal: mmal_vc_component_create: failed to create component 'vc.ril.hvs' (1:ENOMEM)
                              mmal: mmal_component_create_core: could not create component 'vc.ril.hvs' (1)
                              

                              All works fine, dos anyone know what they mean and how to fix (or how they can be supressed, alle seems to work fine...)?

                              roslofR 1 Reply Last reply Reply Quote 0
                              • R
                                Rudd23 @akamming
                                last edited by

                                @akamming
                                Hi, I don't see any noticible improvement, can please share your settings:

                                [pi4]

                                Enable DRM VC4 V3D driver on top of the dispmanx display stack

                                dtoverlay=vc4-kms-v3d,noaudio
                                dtparam=audio=on
                                max_framebuffers=2

                                over_voltage=6
                                arm_freq=2000
                                gpu_freq=700

                                A 1 Reply Last reply Reply Quote 0
                                • A
                                  akamming @Rudd23
                                  last edited by

                                  @Rudd23

                                  These are my /boot/config.txt settings which sped up my pi 4:

                                  over_voltage=6
                                  arm_freq=2100
                                  v3d_freq=815
                                  gpu_freq=750
                                  hdmi_enable_4kp60=1
                                  dtoverlay=vc4-kms-v3d-pi4,noaudio
                                  dtparam=audio=on
                                  

                                  I had some instability, which was fixed by bringing down v3d_freq from 825 to 815 since the last post i made here...

                                  In the individual emulators i set all settings to the fastest settings. Also bringing down the screen resolution helps a lot to get better fps. (e.g. N64 games i can only run at intern resolution of the emulator of 640x480, so i use runcommand to set screen resolution to 848x480. This gives much better framerate than 720p or 1080p)

                                  J B 3 Replies Last reply Reply Quote 2
                                  • J
                                    JUM @akamming
                                    last edited by

                                    @akamming
                                    I tried to switch to the kms driver but I only have a black screen on the boot screen.

                                    Could share your config.txt

                                    My settings

                                    For more options and information see

                                    http://rpf.io/configtxt

                                    Some settings may impact device functionality. See link above for details

                                    uncomment if you get no picture on HDMI for a default "safe" mode

                                    hdmi_safe=1

                                    uncomment this if your display has a black border of unused pixels visible

                                    and your display can output without overscan

                                    disable_overscan=1

                                    uncomment the following to adjust overscan. Use positive numbers if console

                                    goes off screen, and negative if there is too much border

                                    overscan_left=0
                                    overscan_right=0
                                    overscan_top=0
                                    overscan_bottom=0

                                    uncomment to force a console size. By default it will be display's size minus

                                    overscan.

                                    #framebuffer_width=1280
                                    #framebuffer_height=720

                                    uncomment if hdmi display is not detected and composite is being output

                                    hdmi_force_hotplug=1

                                    uncomment to force a specific HDMI mode (this will force VGA)

                                    #hdmi_group=1
                                    #hdmi_mode=1

                                    uncomment to force a HDMI mode rather than DVI. This can make audio work in

                                    DMT (computer monitor) modes

                                    #hdmi_drive=2

                                    uncomment to increase signal to HDMI, if you have interference, blanking, or

                                    no display

                                    config_hdmi_boost=9

                                    uncomment for composite PAL

                                    #sdtv_mode=2

                                    #uncomment to overclock the arm. 700 MHz is the default.
                                    over_voltage=4
                                    arm_freq=1950
                                    gpu_freq=600
                                    v3d_freq=750

                                    Uncomment some or all of these to enable the optional hardware interfaces

                                    #dtparam=i2c_arm=on
                                    #dtparam=i2s=on
                                    #dtparam=spi=on

                                    Uncomment this to enable infrared communication.

                                    #dtoverlay=gpio-ir,gpio_pin=17
                                    #dtoverlay=gpio-ir-tx,gpio_pin=18

                                    Additional overlays and parameters are documented /boot/overlays/README

                                    Enable audio (loads snd_bcm2835)

                                    dtparam=audio=on

                                    [pi4]

                                    Enable DRM VC4 V3D driver on top of the dispmanx display stack

                                    dtoverlay=vc4-fkms-v3d-pi4, noaudio
                                    max_framebuffers=2

                                    [all]
                                    #dtoverlay=vc4-fkms-v3d
                                    gpu_mem=256
                                    hdmi_enable_4kp60=1

                                    alt text

                                    dankcushionsD 1 Reply Last reply Reply Quote 0
                                    • dankcushionsD
                                      dankcushions Global Moderator @JUM
                                      last edited by

                                      @JUM please read https://retropie.org.uk/forum/topic/3/read-this-first for how to format code blocks correctly. what you've pasted is unreadable.

                                      1 Reply Last reply Reply Quote 2
                                      • J
                                        JUM @akamming
                                        last edited by JUM

                                        @akamming said in Good news regarding tearing and low EmulationStation performance on Pi 4:

                                        @Rudd23

                                        These are my /boot/config.txt settings which sped up my pi 4:

                                        over_voltage=6
                                        arm_freq=2100
                                        v3d_freq=815
                                        gpu_freq=750
                                        hdmi_enable_4kp60=1
                                        dtoverlay=vc4-kms-v3d-pi4,noaudio
                                        dtparam=audio=on
                                        

                                        I had some instability, which was fixed by bringing down v3d_freq from 825 to 815 since the last post i made here...

                                        In the individual emulators i set all settings to the fastest settings. Also bringing down the screen resolution helps a lot to get better fps. (e.g. N64 games i can only run at intern resolution of the emulator of 640x480, so i use runcommand to set screen resolution to 848x480. This gives much better framerate than 720p or 1080p)

                                        I tried to switch for kms driver but I only have a black screen on the boot screen.

                                        Could share your config.txt

                                        My settings

                                        My config.txt

                                        alt text

                                        Does this part of the config go under [pi4] or [all]?

                                        hdmi_enable_4kp60=1
                                        dtoverlay=vc4-kms-v3d-pi4,noaudio
                                        dtparam=audio=on
                                        

                                        My config must be wrong in that part.

                                        # Enable audio (loads snd_bcm2835)
                                        dtparam=audio=on
                                        
                                        [pi4]
                                        # Enable DRM VC4 V3D driver on top of the dispmanx display stack
                                        dtoverlay=vc4-kms-v3d-pi4,noaudio
                                        max_framebuffers=2
                                        
                                        [all]
                                        #dtoverlay=vc4-fkms-v3d
                                        gpu_mem=256
                                        hdmi_enable_4kp60=1
                                        
                                        
                                        A 1 Reply Last reply Reply Quote 0
                                        • A
                                          akamming @JUM
                                          last edited by

                                          @JUM you should really the link which was provided by @dankcushions. Instead of updating the previous post you now made another one, making the thread even more unreadable….

                                          anyway. Another suggestion is that if you make changes in files like config.txt you should know what you are doing and not just copy / past what you got from the last forum post, but check the entire thread and/or study the official documentation before making the changes. Making the wrong changes can brick your pi (e.g. too aggessive overclock settings) !

                                          The original forum posts contains links which quite clearly describe how to modify the config.txt. Also a lot of info on overclock settings can be found here.

                                          anyway if it helps: Here's my current config.txt:

                                          # For more options and information see
                                          # http://rpf.io/configtxt
                                          # Some settings may impact device functionality. See link above for details
                                          
                                          # uncomment if you get no picture on HDMI for a default "safe" mode
                                          #hdmi_safe=1
                                          
                                          # uncomment this if your display has a black border of unused pixels visible
                                          # and your display can output without overscan
                                          #disable_overscan=1
                                          
                                          # uncomment the following to adjust overscan. Use positive numbers if console
                                          # goes off screen, and negative if there is too much border
                                          #overscan_left=16
                                          #overscan_right=16
                                          #overscan_top=16
                                          #overscan_bottom=16
                                          
                                          # uncomment to force a console size. By default it will be display's size minus
                                          # overscan.
                                          #framebuffer_width=1920
                                          #framebuffer_height=1080
                                          
                                          # uncomment if hdmi display is not detected and composite is being output
                                          hdmi_force_hotplug=1
                                          
                                          # uncomment to force a specific HDMI mode (this will force VGA)
                                          hdmi_group=2
                                          hdmi_mode=82
                                          
                                          # uncomment to force a HDMI mode rather than DVI. This can make audio work in
                                          # DMT (computer monitor) modes
                                          #hdmi_drive=2
                                          
                                          # uncomment to increase signal to HDMI, if you have interference, blanking, or
                                          # no display
                                          #config_hdmi_boost=4
                                          
                                          # uncomment for composite PAL
                                          #sdtv_mode=2
                                          
                                          #uncomment to overclock the arm. 700 MHz is the default.
                                          over_voltage=6
                                          arm_freq=2100
                                          v3d_freq=800
                                          gpu_freq=750
                                          hdmi_enable_4kp60=1
                                          
                                          
                                          # Uncomment some or all of these to enable the optional hardware interfaces
                                          #dtparam=i2c_arm=on
                                          #dtparam=i2s=on
                                          #dtparam=spi=on
                                          
                                          # Uncomment this to enable infrared communication.
                                          #dtoverlay=gpio-ir,gpio_pin=17
                                          #dtoverlay=gpio-ir-tx,gpio_pin=18
                                          
                                          # Additional overlays and parameters are documented /boot/overlays/README
                                          
                                          # Enable audio (loads snd_bcm2835)
                                          dtparam=audio=on
                                          
                                          [pi4]
                                          # Enable DRM VC4 V3D driver on top of the dispmanx display stack
                                          #dtoverlay=vc4-fkms-v3d
                                          dtoverlay=vc4-kms-v3d-pi4,noaudio
                                          max_framebuffers=2
                                          
                                          [all]
                                          #dtoverlay=vc4-fkms-v3d
                                          
                                          # NOOBS Auto-generated Settings:
                                          gpu_mem=256
                                          
                                          
                                          J 1 Reply Last reply Reply Quote 1
                                          • J
                                            JUM @akamming
                                            last edited by

                                            @akamming said in Good news regarding tearing and low EmulationStation performance on Pi 4:

                                            @JUM you should really the link which was provided by @dankcushions. Instead of updating the previous post you now made another one, making the thread even more unreadable….

                                            anyway. Another suggestion is that if you make changes in files like config.txt you should know what you are doing and not just copy / past what you got from the last forum post, but check the entire thread and/or study the official documentation before making the changes. Making the wrong changes can brick your pi (e.g. too aggessive overclock settings) !

                                            The original forum posts contains links which quite clearly describe how to modify the config.txt. Also a lot of info on overclock settings can be found here.

                                            anyway if it helps: Here's my current config.txt:

                                            # For more options and information see
                                            # http://rpf.io/configtxt
                                            # Some settings may impact device functionality. See link above for details
                                            
                                            # uncomment if you get no picture on HDMI for a default "safe" mode
                                            #hdmi_safe=1
                                            
                                            # uncomment this if your display has a black border of unused pixels visible
                                            # and your display can output without overscan
                                            #disable_overscan=1
                                            
                                            # uncomment the following to adjust overscan. Use positive numbers if console
                                            # goes off screen, and negative if there is too much border
                                            #overscan_left=16
                                            #overscan_right=16
                                            #overscan_top=16
                                            #overscan_bottom=16
                                            
                                            # uncomment to force a console size. By default it will be display's size minus
                                            # overscan.
                                            #framebuffer_width=1920
                                            #framebuffer_height=1080
                                            
                                            # uncomment if hdmi display is not detected and composite is being output
                                            hdmi_force_hotplug=1
                                            
                                            # uncomment to force a specific HDMI mode (this will force VGA)
                                            hdmi_group=2
                                            hdmi_mode=82
                                            
                                            # uncomment to force a HDMI mode rather than DVI. This can make audio work in
                                            # DMT (computer monitor) modes
                                            #hdmi_drive=2
                                            
                                            # uncomment to increase signal to HDMI, if you have interference, blanking, or
                                            # no display
                                            #config_hdmi_boost=4
                                            
                                            # uncomment for composite PAL
                                            #sdtv_mode=2
                                            
                                            #uncomment to overclock the arm. 700 MHz is the default.
                                            over_voltage=6
                                            arm_freq=2100
                                            v3d_freq=800
                                            gpu_freq=750
                                            hdmi_enable_4kp60=1
                                            
                                            
                                            # Uncomment some or all of these to enable the optional hardware interfaces
                                            #dtparam=i2c_arm=on
                                            #dtparam=i2s=on
                                            #dtparam=spi=on
                                            
                                            # Uncomment this to enable infrared communication.
                                            #dtoverlay=gpio-ir,gpio_pin=17
                                            #dtoverlay=gpio-ir-tx,gpio_pin=18
                                            
                                            # Additional overlays and parameters are documented /boot/overlays/README
                                            
                                            # Enable audio (loads snd_bcm2835)
                                            dtparam=audio=on
                                            
                                            [pi4]
                                            # Enable DRM VC4 V3D driver on top of the dispmanx display stack
                                            #dtoverlay=vc4-fkms-v3d
                                            dtoverlay=vc4-kms-v3d-pi4,noaudio
                                            max_framebuffers=2
                                            
                                            [all]
                                            #dtoverlay=vc4-fkms-v3d
                                            
                                            # NOOBS Auto-generated Settings:
                                            gpu_mem=256
                                            
                                            

                                            Thanks

                                            You have Raspbian Buster installed or Raspberry Pi OS?

                                            A 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            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.