Emulator Issues #13084
openPresentation Megathread - Vsync/ScreenTearing/Framepacing Issue
0%
Description
I'm tired of seeing dozens of issues about vsync/tearing/framepacing, so I'm going to compile the issues and requests here along with what information I've gathered.
Complaint 1: Monitor/Game framerate differences
The main complaint is that when using Vsync, framepacing isn't great on most monitors because Dolphin forces the game to run at the actual framerate it runs at. We could do something like mGBA and instead of running at the actual framerate the game wants, normalize it to 60 FPS (or whatever the monitor reports) in order to improve framepacing.
Complaint 2: Framepacing/rare stutters
Framepacing isn't great in general. As far as I know, Dolphin tends to prioritize latency over framepacing. There are some things we could do to improve framepacing at the cost of latency, might be worth investigating as an option?
Complaint 3: Vsync slowdowns
When using exclusive fullscreen and Dolphin's actual vsync kicks in, unless you're running the game clearly full speed, Dolphin will drop to 30 FPS whenever there's a hitch. We could fix this by implementing things like triple buffering, but that would increase latency.
Other Potential Issues
PAL50/25 is not really considered here, but are nightmares for non-gsync monitors.
Updated by JMC4789 about 2 years ago
Something I didn't want to mention in the main issue here because it's mentioned elsewhere is the need for async presentation. There's another dedicated issue for that which I think is well written.
Updated by JMC4789 about 2 years ago
- Has duplicate Emulator Issues #13035: Minor periodical stutters in any game using any backend. added
Updated by JMC4789 about 2 years ago
- Related to Emulator Issues #13031: Dolphin - Vsync problem with 120hz screen added
Updated by JMC4789 about 2 years ago
- Related to Emulator Issues #12852: Support Asynchronous Presentation added
Updated by JMC4789 about 2 years ago
- Has duplicate Emulator Issues #12642: Vulkan VSync causes slowdown on full screen added
Updated by JMC4789 about 2 years ago
- Related to Emulator Issues #10227: [FEATURE REQUEST]Ability to select fullscreen refresh rate added
Updated by JMC4789 about 2 years ago
- Related to Emulator Issues #7530: D3D11 Exclusive Fullscreen Enhancements added
Updated by JMC4789 about 2 years ago
- Related to deleted (Emulator Issues #7530: D3D11 Exclusive Fullscreen Enhancements)
Updated by JMC4789 about 2 years ago
- Has duplicate Emulator Issues #7530: D3D11 Exclusive Fullscreen Enhancements added
Updated by JMC4789 about 2 years ago
Fixing all of the issues more or less means implementing async present and triple buffering, along with some other options to maybe increase latency to improve framepacing, like running the game at monitor refresh rate instead of the game's native refreshrate.
Updated by JMC4789 about 2 years ago
TellowKrinkle: PCSX2 sends vsyncs to its GPU emulation right after sleeping to the end of the frame, rather than right before, which is what improves frame pacing at the expense of latency
Updated by JMC4789 about 2 years ago
- Status changed from New to Accepted
New issues should only be reserved for when developers haven't replied so I can keep track of when we need to reply to users.
Updated by Magichost about 2 years ago
On Android I've noticed something peculiar. I get video stutter every 3 seconds, particularly noticeable in paper Mario. When I go into dolphins full screen menu that pauses gameplay then exit and go back into the game, the video stuttering disappears. For some reason you can only do this using opengl. Vulcan can't be fixed using this method however.
Updated by Magichost about 2 years ago
Magichost wrote in #note-13:
On Android I've noticed something peculiar. I get video stutter every 3 seconds, particularly noticeable in paper Mario. When I go into dolphins full screen menu that pauses gameplay then exit and go back into the game, the video stuttering disappears and you get absolutely perfect frame pacing. For some reason you can only do this using opengl. Vulcan can't be fixed using this method however.