• Recent
  • Tags
  • Popular
  • Home
  • Docs
  • Register
  • Login
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 58.0k 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.
  • A
    akamming @SeraphisCain
    last edited by 24 Jul 2020, 13:25

    @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 26 Jul 2020, 07:05

      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 31 Jul 2020, 15:07 Reply Quote 1
      • A
        akamming
        last edited by 28 Jul 2020, 05:47

        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...)?

        R 1 Reply Last reply 17 Mar 2021, 14:06 Reply Quote 0
        • R
          Rudd23 @akamming
          last edited by 31 Jul 2020, 15:07

          @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 1 Aug 2020, 17:59 Reply Quote 0
          • A
            akamming @Rudd23
            last edited by 1 Aug 2020, 17:59

            @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 15 Aug 2020, 12:51 Reply Quote 2
            • J
              JUM @akamming
              last edited by 15 Aug 2020, 12:51

              @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 15 Aug 2020, 15:47 Reply Quote 0
              • dankcushionsD
                dankcushions Global Moderator @JUM
                last edited by 15 Aug 2020, 15:47

                @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 15 Aug 2020, 19:35

                  @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 16 Aug 2020, 06:06 Reply Quote 0
                  • A
                    akamming @JUM
                    last edited by 16 Aug 2020, 06:06

                    @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 16 Aug 2020, 06:21 Reply Quote 1
                    • J
                      JUM @akamming
                      last edited by 16 Aug 2020, 06:21

                      @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 22 Aug 2020, 13:20 Reply Quote 0
                      • B
                        beerninja @akamming
                        last edited by 21 Aug 2020, 05:23

                        @akamming with your new clock settings are you able to play Cave shooters with lr-mame2016 without slowdown/audio stutter? For example espgal2 or futaribl both of those make the pi4 cry

                        A 1 Reply Last reply 22 Aug 2020, 13:21 Reply Quote 0
                        • A
                          akamming @JUM
                          last edited by 22 Aug 2020, 13:20

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

                          You have Raspbian Buster installed or Raspberry Pi OS?

                          raspbian buster, but i think that's now called raspberry pi os ;-)

                          1 Reply Last reply Reply Quote 0
                          • A
                            akamming @beerninja
                            last edited by 22 Aug 2020, 13:21

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

                            @akamming with your new clock settings are you able to play Cave shooters with lr-mame2016 without slowdown/audio stutter? For example espgal2 or futaribl both of those make the pi4 cry

                            don't know, haven't tried that. i use lr-mame2003 for most games. lr-mame2016 is much slower...

                            B 1 Reply Last reply 22 Aug 2020, 17:07 Reply Quote 0
                            • B
                              beerninja @akamming
                              last edited by 22 Aug 2020, 17:07

                              @akamming I would use that too (or FBN) except those games were released after 2003 :-( Maybe one day we'll get an optimized cv1000 Cave game emulator that works on pi

                              S 1 Reply Last reply 22 Aug 2020, 19:29 Reply Quote 0
                              • S
                                SeraphisCain @beerninja
                                last edited by 22 Aug 2020, 19:29

                                @beerninja Last I heard, the FBNeo team definitely want to add cv1k support, they just need someone who can write the required sh4 dynarec for the CPU emulation.

                                1 Reply Last reply Reply Quote 0
                                • X
                                  xanstin
                                  last edited by 25 Aug 2020, 18:21

                                  So is the latest update suppose to fix this? I updated everything and still get tearing on NES games such as Metroid and even punch out.

                                  1 Reply Last reply Reply Quote 0
                                  • R
                                    RetroWhirl
                                    last edited by 30 Aug 2020, 21:53

                                    @xanstin Not really, and I'm pretty sure we are not getting a fix anytime soon. Most "retro enthusiasts" on youtube are happy with PI4 performance, so fixing stuff like this seems to be pretty low priority.

                                    dankcushionsD 1 Reply Last reply 31 Aug 2020, 17:06 Reply Quote 0
                                    • dankcushionsD
                                      dankcushions Global Moderator @RetroWhirl
                                      last edited by 31 Aug 2020, 17:06

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

                                      @xanstin Not really, and I'm pretty sure we are not getting a fix anytime soon. Most "retro enthusiasts" on youtube are happy with PI4 performance, so fixing stuff like this seems to be pretty low priority.

                                      what will expedite a fix is someone logging the issue with the raspberry pi firmware team, but to do that someone needs to recreate the issue in a small test program, not something with so many other factors like emulationstation/emulation.

                                      right now i don't think this issue is on their radar.

                                      1 Reply Last reply Reply Quote 1
                                      • B
                                        Brunnis
                                        last edited by 17 Oct 2020, 22:12

                                        I’m currently trying to put together a RetroPie installation consisting of:

                                        • Linux kernel 5.9 64-bit
                                        • Mesa 20.3

                                        I started from the latest Raspberry Pi OS 64-bit desktop beta. Upgraded to kernel 5.9, which is simple now since it’s available in the ”next” branch of rpi-update since a few days. Upgrading from the almost year-old Mesa 19.3 to 20.3 was a bit more involved, but was successful. Currently installing RetroPie from source and hoping it will work as expected.

                                        Testing this will be interesting, since it contains major updates to both the full-KMS driver as well as Mesa. Also, using 64-bit for RetroPie will be a first for me, so that is interesting as well.

                                        DarksaviorD 1 Reply Last reply 18 Oct 2020, 01:04 Reply Quote 0
                                        • DarksaviorD
                                          Darksavior @Brunnis
                                          last edited by 18 Oct 2020, 01:04

                                          @Brunnis Are they still not providing kernel headers even if it's in the "next" branch? My snes pad driver needs it. It's why I've never bothered using bleeding edge kernels.

                                          B 1 Reply Last reply 18 Oct 2020, 10:18 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.

                                            This community forum collects and processes your personal information.
                                            consent.not_received