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

    Jittery/Stuttering graphics

    Scheduled Pinned Locked Moved Help and Support
    pi 4stutteringjittering
    60 Posts 14 Posters 17.9k 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.
    • ClydeC
      Clyde @pjft
      last edited by

      @pjft AFAIK GSync only works with compatible monitors that have the proprietary hardware module from NVidia. At least I didn't find any contrary information on the web, so please correct me if I'm wrong.

      Maybe the OP has such a monitor, but I thought it should be mentioned lest this option becomes a tuning myth in the community.

      That said, I was surprised that RetroPie has this option. So, the Raspberry Pi (4 only or others, too?) has GSync capability? Just curious, I don't have a compatible monitor.

      pjftP 1 Reply Last reply Reply Quote 0
      • pjftP
        pjft @Clyde
        last edited by pjft

        @Clyde Not really - thought so as well but in the forums (and, coincidentally, from first-hand experience that then I ended up finding that others in the forums shared the same) you'll find a goo description of that for games that don't exactly render at 60fps.

        See thread starting here:

        https://retropie.org.uk/forum/topic/21031/working-dreamcast-games/284?_=1592569437823

        From what I gathered, (in simplistic - and probably incorrect terms) it will just actually force RetroArch to abide to the screen's refresh rate, "faking" frames if needed so that it sends exact the number of frames that the screen is refreshing at, at full speed.

        Or at least that's what I imagine it's doing.

        (@pjft goes and hide)

        EDIT: and to be clear, my monitor is also not GSync compatible, but some games such as Earth Defense Force on lr-fbneo the Pi4 will stutter if not using this option. I imagine it's because it doesn't really render at 60fps.

        EDIT 2: ah, here's the other thread - https://retropie.org.uk/forum/topic/19741/goodbye-fbalpha-welcome-fbneo/164?_=1592569755819 - @barbudreadmon explains it better than I would, especially here.

        ClydeC 1 Reply Last reply Reply Quote 1
        • B
          barbudreadmon @Quackwalks
          last edited by barbudreadmon

          @Quackwalks Are you using runahead ?

          I don't see how a kernel would cause tearing on mame2003+ but not on fbneo ? If anything i would expect the accurate cps2 refresh rate in fbneo (59.63Hz, mame2003+ has it rounded to 60 it seems) to be more of a hassle for that kind of issues ?

          FBNeo developer - github - forum

          QuackwalksQ 1 Reply Last reply Reply Quote 0
          • QuackwalksQ
            Quackwalks @barbudreadmon
            last edited by

            @barbudreadmon I don't have run ahead enabled for mame, but I do for nes, snes, master system, megadrive, gb, gbc, gba, Atari games, turbografix 16, and virtual boy.

            B 1 Reply Last reply Reply Quote 0
            • B
              barbudreadmon @Quackwalks
              last edited by

              @Quackwalks said in Jittery/Stuttering graphics:

              @barbudreadmon I don't have run ahead enabled for mame, but I do for nes, snes, master system, megadrive, gb, gbc, gba, Atari games, turbografix 16, and virtual boy.

              Ok, with mame2003+ runahead support being behind FBNeo's, i thought it might have been a possible cause for the "ghosting" difference.

              Maybe your screen refresh rate is a bit below 60Hz ? I guess that could explain why FBNeo has no tearing issues while mame2003+ does ?

              FBNeo developer - github - forum

              QuackwalksQ 1 Reply Last reply Reply Quote 0
              • QuackwalksQ
                Quackwalks @barbudreadmon
                last edited by

                @barbudreadmon I'm using a Samsung smart TV and my HDMI source is set to use pc mode, so I think that changes the type of display standard, or something.... This gsync stuff sounds like it might be the solution but I'll have to test later tonight after work.

                1 Reply Last reply Reply Quote 0
                • quicksilverQ
                  quicksilver
                  last edited by

                  I have witnessed this issue in a number of retroarch cores. Doesn't seem to affect any of the standalone emulators (at least from my observations). It's part of the reason I started using redream over flycast. It seems to be especially prevalent when there is a lot of action on the screen or the pi is being pushed hard. The fix that @pjft proposed does work. MY tv is not gsync/freesync capable yet somehow it works. Only issue with that fix is that it seems to add extra overhead. Many N64 games I was running with mupen64plus-next became unplayable with that setting turned on. If anyone uses it I would recommend only using it on a core by core basis.

                  pjftP QuackwalksQ 2 Replies Last reply Reply Quote 2
                  • pjftP
                    pjft @quicksilver
                    last edited by

                    @quicksilver Huh, intrigued - thanks for the heads up. I added it to my main retroarch.cfg file, but if you have any other specific cores where it doesn't help because of the overhead I'd love to know!

                    quicksilverQ 1 Reply Last reply Reply Quote 0
                    • quicksilverQ
                      quicksilver @pjft
                      last edited by

                      @pjft I didn't do thorough testing with it (I turned it off after I noticed the issue with N64) but I would be interested to hear yours or anyone elses impressions as well. It might be worthwhile to run some cores with the option turned on and off while running htop to compare and see what's going on behind the scenes.

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

                        @pjft @quicksilver i recommend disabling all RA video sync stuff for any hardware-accelerated core, it has a tendency to screw performances, actually if you got vsync enabled for flycast it might be part of the performance issue

                        FBNeo developer - github - forum

                        quicksilverQ pjftP 2 Replies Last reply Reply Quote 0
                        • quicksilverQ
                          quicksilver @barbudreadmon
                          last edited by

                          @barbudreadmon the screen tearing issue is significantly worse then. To the point it makes some games almost unplayable.

                          1 Reply Last reply Reply Quote 0
                          • pjftP
                            pjft @barbudreadmon
                            last edited by

                            @barbudreadmon said in Jittery/Stuttering graphics:

                            RA video sync stuff for any hardware-accelerated core, it has a tendency to screw performances, actually if you got vsync enabled for flycast it might be part of the performance issue

                            Oh my. I might - I actually use flycast for Naomi emulation, where it works awesome, but for Dreamcast I tend to stick to redream .

                            I'll see if I have vsync turned on, but I don't know what cores would have hardware acceleration.

                            @quicksilver we have mostly run MAME, FBNeo, Nestopia and Flycast around here, as far as RA cores go, in the last few months on the Pi4. I have had no meaningful issues with the setting on these, but will be on the lookout.

                            B 1 Reply Last reply Reply Quote 0
                            • B
                              barbudreadmon @pjft
                              last edited by

                              @pjft said in Jittery/Stuttering graphics:

                              I don't know what cores would have hardware acceleration

                              Any core that produce real 3D through the gpu.

                              FBNeo developer - github - forum

                              pjftP 1 Reply Last reply Reply Quote 1
                              • pjftP
                                pjft @barbudreadmon
                                last edited by

                                @barbudreadmon Thanks for the clarification.

                                Educated guess then:

                                • PCSX Rearmed
                                • Yabasanshiro
                                • Flycast
                                • <the N64 ones>

                                Uneducated guesses or questions - for others who might know:

                                • I believe MAME does everything on the CPU, even for 3D games, so that wouldn't be one.
                                • Where does FB Neo stand in that regard?
                                • Sega 32X cores? And is it at the core level, or would it be per-game (meaning, would 2D games not be affected)?

                                Sorry - video pipelines are not my expertise.

                                B 1 Reply Last reply Reply Quote 0
                                • B
                                  barbudreadmon @pjft
                                  last edited by

                                  @pjft said in Jittery/Stuttering graphics:

                                  PCSX Rearmed

                                  Nope, that one is software-rendered. FBNeo, MAME and picodrive (32X core) too.

                                  FBNeo developer - github - forum

                                  1 Reply Last reply Reply Quote 1
                                  • QuackwalksQ
                                    Quackwalks @quicksilver
                                    last edited by Quackwalks

                                    @quicksilver I'm trying to find what I need to type in my retroarch.cfg to enable gsync but can't find anything. Could you help? Also, how do you Eggheads figure out exactly what needs to be typed?

                                    pjftP 1 Reply Last reply Reply Quote 0
                                    • pjftP
                                      pjft @Quackwalks
                                      last edited by

                                      @Quackwalks it should be

                                      vrr_runloop_enable = "true"
                                      

                                      if I recall correctly. I ended up reading the code on GitHub and digging into it from the initial commit.

                                      QuackwalksQ pjftP 2 Replies Last reply Reply Quote 1
                                      • QuackwalksQ
                                        Quackwalks @pjft
                                        last edited by

                                        @pjft Thank you.

                                        1 Reply Last reply Reply Quote 1
                                        • ClydeC
                                          Clyde @pjft
                                          last edited by Clyde

                                          @pjft said in Jittery/Stuttering graphics:

                                          EDIT: and to be clear, my monitor is also not GSync compatible,

                                          I think I found the solution for this "riddle". The option isn't actually only GSync, but at least GSync and FreeSync (and maybe other similar techniques? Are there any more?)

                                          According to this comment from a contributor to an RA issue, "Sync exact framerate only works with g-sync/freesync displays." The Emulation General Wiki also sounds like, while MAME and RA do "make use of this functionality", they only do so on compatible monitors.

                                          So the question is, does anyone who experiences an improvement by this option has a screen with such a functionality he/she don't know about, or does this option actually do more than its describtions says, or is it just an confirmation bias / placebo effect?

                                          That said, the corresponding config line vrr_runloop_enable doesn't sound anything like the option in the RGUI/XMB or its description. Does anyone know what a "VRR Runloop" actually is?

                                          Sorry for the subsidiary topic, but I think it may be helpful for understanding which options may (or actually can) help against tearing or stuttering and if so, in which circumstances.

                                          quicksilverQ pjftP 2 Replies Last reply Reply Quote 1
                                          • dankcushionsD
                                            dankcushions Global Moderator
                                            last edited by

                                            the pi models do not support g sync/free sync.

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