Dolphin, the GameCube and Wii emulator - Forums

Full Version: Micro stuttering in OGL
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hello. I've been using dolphin for about a week now, the 4.02 svn it's about 1 week old. It is an excellent emulator, but whenever I use OpenGL as my back end, I get microstuttering. The fps counter stays at 60 but the game will stutter for about 2 seconds every 10 seconds.

I know it's not my specs, and I do not have this problem in d3d....anymore. I had DID have this problem in d3d but setting vsync to application controlled in Nvidia cp and enabling it in the emu fixed it. Open GL not so much.

I5 4670k @4.4 ghz
Gtx 770 oc
Win8.1x64

Also I noticed d3d does not play well with any of the wii ware titles I have tried. I'm forced to use OGL, but I get lines around text in game, similar to what happens in pcsx2 when upscaling and also the stuttering.

Also when using d3d in Castlevania Rebirth I get graphical glitches in the intro when it's showing the historical pictures of the Castlevania games, and I tried Contra Rebirth this morning and the game hangs after pressing start.

Can anyone help?
Stop using 4.0.2 and get latest dev build. The microstutter happens when running a game for the first time (generating a ShaderCache file). After the second or third run, the stutter should have dissapeared.
Not sure, but I think he meant to say a week old developer version?

I have/had the same exact issue. I run all my games in fullscreen with the frame rate counter enabled and noticed periodic frame lagging in an interval much like the OP describes. For me, it occurs more frequently with the OpenGL backend than the D3D one, and it occurs less frequently on the D3D backend when the game is already running at a consistent framerate of 60 (my monitor's refresh rate). The microstuttering is a lot more noticeable on both backends if the native framerate of the game is 30. When this occurs, there is definitely a noticeable stuttering even though the frame rate counter never budges. The 'microstuttering' caused by the Shader Cache I believe causes the frame rate counter to change which isn't what the OP is saying. If it's what I'm thinking of, the shader cache causes more of a 'hitch' in the frame that results in a momentary pause during game play.

I've had this problem for a long time, and I believe part of the issue is caused by the Desktop Windows Manager (more specifically, Desktop Composition with the Aero theme). Desktop Composition applies its own vsync to eliminate screen tearing on your windows. Even if vsync is disabled in either one of Dolphin's backend settings, you'll notice that screen tearing is still eliminated. I also noticed that along with stuttering, this seems to cause some input lag as well. While disabling Desktop Composition will bring back a lot of screen tearing if your game is running below your monitor's refresh rate, the microstuttering should be gone.

Unfortunately since you're using Windows 8.1, I've heard that they made disabling Desktop Composition very difficult. If you were using Windows 7 you could either disable the feature manually or switch to the Classic theme (which disables pretty much every window effect). Switching to the Classic theme in Windows 8 still uses Desktop Composition as far as I know. You can still disable Desktop Composition completely in Windows 8.1, but I wouldn't recommend it since it seems to break a lot of Windows features. I believe Windows is supposed to disable Desktop Composition automatically when running something in fullscreen, but that doesn't happen with Dolphin since I believe Dolphin isn't using exclusive fullscreen (aren't both Dolphin and PCSX2 currently using borderless fullscreen?).

Although I could be wrong on all my assumptions, but I thought I'd post them here since you have pretty much the same exact problem as I have.

I'm also not sure if the backend vsync setting is still working under Windows. Can anyone confirm this? I remember trying it out while Desktop Composition was disabled and it didn't eliminate the screen tearing. Could be the intended effect though...
On W8.1 it´s even faster and easier to get Aero disabled. (Right-click on desktop, Customize).
Doing that won't turn off Desktop Composition (the forced vsync) in Windows 8.1. As far as I know, switching to the Classic theme in 8.1 doesn't turn Desktop Composition off like it does in 7.

If you're still curious on disabling the DWM stuff in 8.1, check out this link. I still don't recommend it unless you know what you're doing.

But again, I might be wrong on my assumptions. I'd wait for more feedback from someone else.
(06-13-2014, 06:32 AM)Knuckles500 Wrote: [ -> ]Doing that won't turn off Desktop Composition (the forced vsync) in Windows 8.1. As far as I know, switching to the Classic theme in 8.1 doesn't turn Desktop Composition off like it does in 7.

If you're still curious on disabling the DWM stuff in 8.1, check out this link. I still don't recommend it unless you know what you're doing.

But again, I might be wrong on my assumptions. I'd wait for more feedback from someone else.

I'd rather not screw with it, I don't know what is wrong with the OGL backend but I just spent an hour updating my nvidia drivers, trying all different types of settings in Dolphin and in the Nvidia 3d settings, still microstuttersSad

Thanks for all the replies btwSmile
wow, 2 seconds every 10 seconds gameplay doesn't sound like microstuttering, or _very_ heavy one.

Does this happen all the time or mostly in cut scenes (or some short time after them)?
The shader compilation is known to cause micro stutters (most of them are ~100 ms), but they will only happen when something new will be displayed. So if this stuttering happen all the time without moving ingame, it isn't the shader compilation.
Hey guys. Fixed! I hope....

After reading a bunch of threads here, I decided to turn framelimiting off, and let OGL's automatic vsync do the framelimiting and and it's not microstuttering anymore. Another thing that in general made the games on the OGL backend run very smooth was having Nvidia Control Panel draw 2 prerendered frames.

I should of thought of this before asking here, as I had this problem in MAME on my arcade cab with vertical shooters not being smooth. Turned off MAME's throttling and used sync to refresh to gte me my 60fps and that fixed it.

Knuckles500, you may want to try what fixed it for me.
I tried what you did and while it does work for me in games that run at 60 fps, the games that run at 30fps like Wind Waker/Twilight Princess/Luigi's Mansion have their frame rates matched with my monitor's refresh rate. This is resulting in the games running faster than they should be. Do you have the same issue? Setting the frame limiter to Audio brings back the microstuttering but the appropriate framerate. Setting the frame limit to 30 halves the framerate to 15 in a 30fps game, while setting it to 60 sets the framerate to 30 - but again, with microstuttering.

Another thing that appears to be happening is that some games will run with 60 fps and 120 vps. Even in games like F-Zero GX, the frame rate will be the appropriate 60 but the VPS will be 120 - resulting in the audio playing way too fast (HLE). Is this normal too? Some games don't do this. Games that run at 30fps are running with 60 fps and 120 vps all the time. It seems that the framerate needs to run at the same rate as VPS in order to function properly. For example, 60 fps games that run with 60 FPS / 60 VPS run perfect.

For some reason this also doesn't work 'immediately' even in some 60 fps games. For instance, Kirby's Return to Dreamland for the Wii will say it's running at 60 fps like it should be but the game is obviously sped up for some reason. But the odd part is that if you go open the Graphics window while the game is running the game will magically run at the appropriate frame rate with zero microstuttering or screen tearing. That sounds like a bug...Unfortunately this doesn't fix the problem stated before with the games that run at 30fps.

Another thing I noticed is that sometimes when games load up data for a new stage (for example - loading a new map in Kirby's Rtd) you'll hear the audio speed up momentarily and the load time shortened and then resume at the normal frame rate once a stage fully loads. Is this normal?

EDIT: To give you an idea of the microstuttering I'm encountering in 30fps games, here's a video I took a while a go demonstrating some of the stutter in Luigi's Mansion. Notice that when I walk back and forth there's a noticable lag in the frame rate, even though the counter on the upper left hand corner reports a solid 30fps. Note that at around 0:26-0:27 the game will hitch in a moment and go down to 25 fps during a lightning strike. That's not the microstuttering I'm talking about. The game should feel a lot smoother even if it's running at 30fps, but it doesn't feel consistent even though the framerate counter says it is.
I would of thought maybe this was a valid issue being that a vsync fix for the OpenGL back end was just released. I still get the damn microstuttering.

Arg. I don't get it.