Project

General

Profile

Emulator Issues #11445

Dolphin doesn't sync perfectly with monitors, so there are very subtle micro stutters every 40 seconds or so

Added by Tasoulios about 1 month ago. Updated about 1 month ago.

Status:
Questionable
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

Game Name?

Tested man games that runs at 60fps. Mostly Mario Kart.

What's the problem? Describe what went wrong.

Dolphin can't sync perfectly with the monitor, producing very subtle microstutters every 40-50 seconds.

What steps will reproduce the problem?

Run a game at 60fps and try to achieve constant speed and scrolling, so any stutter can be visible.

Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.

Yes

Is the issue present in the latest stable version?

Yes

What are your PC specifications? (CPU, GPU, Operating System, more)

i5 4670, 16GB RAM, GTX 1060 6GB, dual boot Windows 7 and 10

Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,
configuration files, savefiles, savestates)

Here is the frame rate/frame time i measured with Afterburner:

https://i.postimg.cc/FK7gvk3R/Untitled.png

It reports perfect frame rate but the frame time is off.

I tested the emulator on multiple monitors and all have the same issue. I also tested it on a new monitor that can do 120 and 240hz. Using those values make the stutters much more noticeable.

The Dolphin core in RetroArch does NOT have this issue and it syncs perfectly. RetroArch has a build in sync feature that does this. So i assume standalone Dolphin simply can't sync perfectly.

History

#1 Updated by Stenzek about 1 month ago

Have you tested with vsync on?

(note, I know this is an issue for PAL/50hz games, I have a branch which switches the refresh rate of the host to match the guest, but it's incomplete for GL/Vulkan)

#2 Updated by Tasoulios about 1 month ago

Description

Game Name?

Tested a few games that runs at 60fps. Mostly Mario Kart.

What's the problem? Describe what went wrong.

Dolphin can't sync perfectly with the monitor, producing very subtle microstutters every 40-50 seconds.

What steps will reproduce the problem?

Run a game at 60fps and try to achieve constant speed and scrolling, so any stutter can be visible.

Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.

Yes, 5.0-8987

Is the issue present in the latest stable version?

Yes

What are your PC specifications? (CPU, GPU, Operating System, more)

i5 4670, 16GB RAM, GTX 1060 6GB, dual boot Windows 7 and 10

Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,
configuration files, savefiles, savestates)

Here is the frame rate/frame time i measured with Afterburner:

https://i.postimg.cc/FK7gvk3R/Untitled.png

It reports perfect frame rate but the frame time is off.

I tested the emulator on multiple monitors and all have the same issue. I also tested it on a new monitor that can do 120 and 240hz. Using those values make the stutters much more noticeable.

The Dolphin core in RetroArch does NOT have this issue and it syncs perfectly. RetroArch has a build in sync feature that does this. So i assume standalone Dolphin simply can't sync perfectly.

#3 Updated by Tasoulios about 1 month ago

Stenzek wrote:

Have you tested with vsync on?

(note, I know this is an issue for PAL/50hz games, I have a branch which switches the refresh rate of the host to match the guest, but it's incomplete for GL/Vulkan)

Yes, i must have changed every option available.

All games are US 60hz.

#4 Updated by Tasoulios about 1 month ago

Sorry, i tried to edit the post for some corrections and i didn't realise it creates a new post...

#5 Updated by Stenzek about 1 month ago

  • Status changed from New to Questionable

I have been able to reproduce this myself in the past, but with vsync on, the issue doesn't occur. Make sure you're not using Immediate XFB, and vsync is enabled. The specific backend shouldn't matter.

#6 Updated by Tasoulios about 1 month ago

Stenzek wrote:

I have been able to reproduce this myself in the past, but with vsync on, the issue doesn't occur. Make sure you're not using Immediate XFB, and vsync is enabled. The specific backend shouldn't matter.

I don't use Immediate XFB

Keep in mind the microstutter is VERY subtle. Like one repeated frame every 40 seconds. I know i see it but i don't expect everyone to notice it. But it's there.

#7 Updated by Stenzek about 1 month ago

You may also want to try disabling dual core, as the throttler runs on the CPU thread, not the GPU thread (which is the one blocked by vsync).

#8 Updated by Tasoulios about 1 month ago

I have tested with vsync ON in both the drivers or Dolphin itself. In both Windows 7 and a fresh Windows 10 setup. In multiple monitors including an old CRT. The issue always occurs.

#9 Updated by Tasoulios about 1 month ago

Stenzek wrote:

You may also want to try disabling dual core, as the throttler runs on the CPU thread, not the GPU thread (which is the one blocked by vsync).

Tried that as well. Issue still occurs. I don't think there's any option i didn't try tbh.

#10 Updated by Stenzek about 1 month ago

Have you tried this specific configuration? (dualcore disabled, vsync on, immediate XFB off).

With vsync on, the frame time should be either ~16ms, or ~33ms, because it'll block for a frame if we missed one vblank.

#11 Updated by Tasoulios about 1 month ago

Stenzek wrote:

Have you tried this specific configuration? (dualcore disabled, vsync on, immediate XFB off).

With vsync on, the frame time should be either ~16ms, or ~33ms, because it'll block for a frame if we missed one vblank.

Yes, i have tested this specific configuration and the issue still exists.

I have to say at this point that i don't think this will ever be fixed. I'm 99% sure it's an emulator issue because i have seen it in any setup i tried, including different PCs. But the microstutter is too subtle. The first stutter appears after about 40-50 seconds and it's just one single repeated frame. Then it repeats every 20 or 30 seconds. 90% of people will never notice it, especially under normal gameplay conditions since the games appear smooth for 99,9% of time. You have to be very sensitive to these things and even then you may need to look for it to see it. So i know i'm the minority here, which means that even if the issue is confirmed it might be a very low priority one. I just need other people to confirm it so i can be 100% sure it's not on my end.

#12 Updated by Stenzek about 1 month ago

Can you log the frame times and see if that matches up with where you're "seeing" a duplicate frame? It's entirely possible too that the game itself is lagging and missing a frame, and it's not in our presentation pipeline, or your system compositor is dropping a frame (for the latter case, I'd suggest using D3D Exclusive Fullscreen).

#13 Updated by Tasoulios about 1 month ago

Stenzek wrote:

Can you log the frame times and see if that matches up with where you're "seeing" a duplicate frame? It's entirely possible too that the game itself is lagging and missing a frame, and it's not in our presentation pipeline, or your system compositor is dropping a frame (for the latter case, I'd suggest using D3D Exclusive Fullscreen).

You mean MarioKart itself having this issue on the real hardware? I doubt because i also tested other 60fps games like Mario Galaxy and it has the same issue. Also, none of these games have this issue when i use Dolphin in RetroArch.

Or maybe i didin't understand what you mean, i'm just an end user peasant :D

#14 Updated by markwest76 about 1 month ago

Does it happens for you using Direct3d 11 as well? I ask because for me Direct3d 11 backend is the only 100% smooth in Dolphin (playing in a window and fullscreen), while the other two have some smoothness problems (especially OpenGL)

#15 Updated by Tasoulios about 1 month ago

markwest76 wrote:

Does it happens for you using Direct3d 11 as well? I ask because for me Direct3d 11 backend is the only 100% smooth in Dolphin (playing in a window and fullscreen), while the other two have some smoothness problems (especially OpenGL)

Yes, it happens in Direct 3D as well, although in bigger time intervals. It might be smooth for a whole minute before you see the first stutter.

Keep in mind that i'm testing this in a small area where i already loaded all shaders. It's not shader compilation. Plus, i tested with every shader option available.

Also available in: Atom PDF