RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    Low framerate on main EmulationStation menu - Pi 4

    Scheduled Pinned Locked Moved Help and Support
    pi 4estationperformance
    136 Posts 16 Posters 30.1k 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.
    • stooS
      stoo
      last edited by

      Wait, what's the recommended gfx driver to run on the Pi4 at the moment?

      I haven't modified by my config.txt since I installed RetroPie on this SD card from a freshly downloaded image about a week ago, and it's showing:

      dtoverlay=vc4-fkms-v3d

      Is the fake KMS driver the one I should be using? Because performance seems dire in most emulators and in ES.

      N.B.: That's where the tearing is coming from: the driver is just that freaking slow that it's not able to maintain 60fps.

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

        @stoo are you using a 4k display? that will be the issue - set to 1080p via raspi-config

        1 Reply Last reply Reply Quote 0
        • stooS
          stoo
          last edited by

          @dankcushions No, I'm not. Both 4k and analog are already disabled.

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

            @stoo well, fkms is the default configuration on retropie and whilst there does appear to be reports of frame rate issues in ES, general emulation generally does not have issues (obviously n64 and other more advanced emulation notwithstanding).

            if you have issues with general emulation please create a new support thread, providing the information requested in in https://retropie.org.uk/forum/topic/3/read-this-first

            1 Reply Last reply Reply Quote 0
            • R
              rilight
              last edited by

              @dankcushions: We're both having the same issue with the emulation tearing, so I think there must be some common factor. (Also, since my initial post in this thread I replaced my power cable and HDMI connector with official Raspberry Pi ones so I know that's not the problem.)

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

                I get the 30 FPS slowdowns in ES with the FKMS and KMS driver. I can not pinpoint what is causing the issue. Whether it’s the stock Mesa driver (v19.3.2.) or even the developmental Vulkan driver (has minor chgs to ogl) the issue is persistent.

                stooS 1 Reply Last reply Reply Quote 0
                • stooS
                  stoo @bluestang
                  last edited by

                  @bluestang I'm sure it's the driver. I've found shaders are also slower on Pi4 than Pi3, and turning off Threaded Video in RA on Pi4 is a recipe for disaster.

                  I'm convinced the Pi4 graphics drivers aren't ready for prime-time.

                  DarksaviorD B 2 Replies Last reply Reply Quote 1
                  • DarksaviorD
                    Darksavior @stoo
                    last edited by Darksavior

                    Does ES use the mesa drivers? Maybe compile your own using the latest version like the redream devs have done. (I really have no idea how to do this but if anyone can, I'd love to know the test results)

                    stooS B 2 Replies Last reply Reply Quote 0
                    • stooS
                      stoo @Darksavior
                      last edited by

                      @Darksavior I mean, it might not be the driver - I'm no expert at all.

                      I'm just kinda frustrated because my experience so far has been that the Pi4 doesn't exceed - or sometimes even match - the Pi3's graphics performance in some cases. I'm just venting.

                      It's times like this I wish I could code.

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

                        @Darksavior said in Low framerate on main EmulationStation menu - Pi 4:

                        Does ES use the mesa drivers? Maybe compile your own using the latest version like the redream devs have done. (I really have no idea how to do this but if anyone can, I'd love to know the test results)

                        The developmental Vulkan driver has to be compiled and that has the latest mesa v3d and vc4 drivers and the issue still persists.

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

                          @stoo said in Low framerate on main EmulationStation menu - Pi 4:

                          @bluestang I'm sure it's the driver. I've found shaders are also slower on Pi4 than Pi3, and turning off Threaded Video in RA on Pi4 is a recipe for disaster.

                          I'm convinced the Pi4 graphics drivers aren't ready for prime-time.

                          Yea there is an issue with this documented in the RetroPie GitHub - https://github.com/RetroPie/RetroPie-Setup/issues/3134 and upstream in RA - https://github.com/libretro/RetroArch/issues/10688

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

                            I'm starting to wonder if the SDL2 build script with the isPlatform "rpi" && conf_flags+=("--enable-video-rpi") is the cause of the framerate drop in ES for the Pi 4.

                            The Pi 4 should not be using any of the "legacy" VC libraries in /opt/vc/ because the Mesa libraries are the default now. The Pi 4 is adopting the standard Linux APIs so it should be mirroring what the other SBCs are doing. This is why omxplayer has been deprecated altogether.

                            The VC libraries are there for "backward compatibility" but should not be relied upon moving forward. There have been several threads on the official Raspberry Pi forums about this.

                            @mitu @dankcushions @BuZz

                            BuZzB 1 Reply Last reply Reply Quote 0
                            • BuZzB
                              BuZz administrators @bluestang
                              last edited by

                              @bluestang your assumptions are incorrect. Check the sdl2 module history and our sdl2 branch.

                              To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

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

                                @BuZz said in Low framerate on main EmulationStation menu - Pi 4:

                                @bluestang your assumptions are incorrect. Check the sdl2 module history and our sdl2 branch.

                                I did take a look and even though the VC headers are moved temporarily the --enable-video-rpi still triggers an option that is not necessary for the Pi 4. (https://github.com/RetroPie/SDL-mirror/blob/retropie-2.0.10/configure#L19829) - see setup log here --> lines 332 & 333. The standard Mesa libraries/drivers that come w/ RPiOS know which API to use based on the overlay driver configured - i.e. FKMS or KMS.

                                From my understanding via the official RPi forums, the Pi 4 should be built with the preferred Mesa headers/libraries rather than the Broadcom VC ones. Meaning, for the Pi 4 the options should be --enable-video-kmsdrm and --disable-video-rpi. I made this change here --> Setup Log and didn't see any negative issues. I need to do more testing to see if this fixes the framerate drop entirely but initial results look promising.

                                The differences in the two drivers are FKMS still uses the Broadcom proprietary Dispmanx API and KMS uses the standard Linux KMS/DRM API. (FKMS is just a wrapper on top of Dispmanx) Compatibility for Dispmanx will still be available for the Pi 4, but it seems that it will be deprecated at some point in the future. Especially once the KMS driver is fully developed.

                                In 64-bit RPiOS you've probably noticed that the Broadcom VC headers are now located in /usr/include but the Broadcom specific libraries no longer are present. Developers should be using the standard Linux libraries aka Mesa ones just as you would for standard Linux development.

                                BuZzB 1 Reply Last reply Reply Quote 0
                                • BuZzB
                                  BuZz administrators @bluestang
                                  last edited by

                                  @bluestang said in Low framerate on main EmulationStation menu - Pi 4:

                                  Developers should be using the standard Linux libraries aka Mesa ones just as you would for standard Linux development.

                                  We are.

                                  To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

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

                                    @stoo @Darksavior what is your result if you pass the cmd line option emulationstation --vsync 1?

                                    DarksaviorD stooS 2 Replies Last reply Reply Quote 0
                                    • DarksaviorD
                                      Darksavior @bluestang
                                      last edited by

                                      @bluestang No change. fkms or kms.

                                      1 Reply Last reply Reply Quote 0
                                      • stooS
                                        stoo @bluestang
                                        last edited by

                                        @bluestang yeah, seems exactly the same

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

                                          @stoo @Darksavior Can you confirm that you can get the 30 fps framerate drop immediately if you invoke the screensaver for 5 secs and then exit to go back to the main menu?

                                          Also, I enabled the Enhanced option of the Power Saver Mode in Other Settings and although I still get the fps drop, ES will go back to 60 fps without having to go into RA separately.

                                          This is a weird bug for sure - @BuZz

                                          1 Reply Last reply Reply Quote 0
                                          • BuZzB
                                            BuZz administrators
                                            last edited by BuZz

                                            It's primarily a driver/firmware issue or maybe an overlapping issue with SDL2 as the sdl2 Kms driver has some issues. I thought I got some improvements disabling the WSOD / dynamic gpu texture loading code (which does have one bug, in that 0 should be unlimited but isn't). But I'm actually looking into that currently as well as SDL2 due to upstream changes.

                                            Our sdl2 includes the old driver, but isn't used for ES on the rpi4. As GL contexts don't work on the RPI4 on dispmanx, there wouldn't have been any display at all. They co-exist together in our SDL though.

                                            Primarily for rpi3 etc. Our sdl2 will work in both old videocore via dispmanx or via kms on a rpi3.

                                            Newest Mesa doesn't fix the slowdown btw. Before people said switching to the Kms driver sorted it. I can't remember but I'll retest.

                                            To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                                            B 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.