ARMAC
12-11-2013, 02:08 AM
I read the last ~15 pages and found some good tips, but there's also a thing I encountered which wasn't mentioned or I couldn't find it.
This may come down to my hardware and may be a rare occurrence but here goes.
The problem is something which artificially kills the performance in OGL mode, causes stuttering and framerate drops and can be fixed during runtime.
2 core Intel C2D E6750 currently at it's default 2.66GHz, the framerate maximum itself is not an issue here now so I didn't even want to OC and potentially add instability.
Nvidia GTX560 (latest 331.93 drivers), no issues with power management.
4GB DDR2 800MHz RAM
Windows 7 x64
[color=orange]Dolphin revisions tried:[/color] 3.5-2449-x64, official 4.0.2, 4.0-513-x86/x64. Default JIT Recompiler used. Old ones like the official 3.5 work fine.
[color=orange]Relevant options:[/color] OGL or D3D backend.
[color=orange]Issue:[/color] Something is choking a core in Dolphin's dual core mode while using OpenGL? Dolphin is using it's two main threads utilizing both cores but there's a constant framerate drop happening along with spikes of expected normal 25 every now and then in a way that it's obvious that something is artificially preventing the game from running as good as it can. Like a blind calculation that keeps on running and chokes the entire core so the fps drops down and behaves as it would with only one core active, the performance is 95% identical to having a core manually turned off while Dolphin is running in dual core mode.
! This is just an observation of what may be the issue.
- First scene after the intro, the player gets control of Dunban.
- Without touching any controls and just skipping the first tutorial screen the game is running, you see the three characters and let's say it CAN maintain 24-27fps under OpenGL and D3D in that scene.
- Problem is OGL: regardless of settings, at one launch of Dolphin that scene and the entire game runs fine, and on another startup the scene is stuttering like mad having moments of 25fps just to dip down to 5. I'm still idle in the scene mentioned above but it goes like 5-7-8-[color=orange]20[/color]-7-12-[color=orange]25[/color]-6-8-4-5-12-5-[color=orange]22[/color] FPS, it's struggling with something which it doesn't need to.
- This is of course while having dual core mode ON in Dolphin. Having it off in Dolphin works as it should I guess, with about 16-19fps in that scene. Having it ON but cutting off one core on purpose manually, or as the error appears to be doing itself, results in 5-8fps. The numbers themselves are not an issue for me here, it's their general behavior I'm looking at.
- Since the issue manifests itself at random times I went crazy turning all possible options on and off just to think that something fixed it when it really didn't. It's not an issue with any additional option inside Dolphin and can be fixed reliably by turning off and back on a core in the task manager, it's not the only way but it is a sure way and expected performance is maintained as long as the process is running, no falling back. As if Dolphin did what it wanted to while the core was off and then carries on as expected.
- When using D3D this didn't happen ever, but D3D is slower in general. Also both backends are fine in the official 3.5.
Now this still is a flawed post as I didn't test it in other games yet, is it even an issue in other games, is it my hardware, but there's also something else here. There are places where the framerate is fine like the intro cutscene with the titans, but the next one and the initial gameplay part stutter like mad. Then later on some cutscenes and areas like the cave get a massive hit and stutter as described but others don't. "Applying the fix" of course takes care of all those issues so it works as expected, like D3D does, just faster as OGL generally is. That behavior and the randomness of the whole issue make it hard to work with. So for now this is just an observation with a potential fix if anyone else runs into this kind of trouble. I don't really have any hard data yet which could help precisely point to the culprit whatever it may be, either dolphin or me so it's not really something to be considered on the development side of things.
edit: made it shorter.
This may come down to my hardware and may be a rare occurrence but here goes.
The problem is something which artificially kills the performance in OGL mode, causes stuttering and framerate drops and can be fixed during runtime.
2 core Intel C2D E6750 currently at it's default 2.66GHz, the framerate maximum itself is not an issue here now so I didn't even want to OC and potentially add instability.
Nvidia GTX560 (latest 331.93 drivers), no issues with power management.
4GB DDR2 800MHz RAM
Windows 7 x64
[color=orange]Dolphin revisions tried:[/color] 3.5-2449-x64, official 4.0.2, 4.0-513-x86/x64. Default JIT Recompiler used. Old ones like the official 3.5 work fine.
[color=orange]Relevant options:[/color] OGL or D3D backend.
[color=orange]Issue:[/color] Something is choking a core in Dolphin's dual core mode while using OpenGL? Dolphin is using it's two main threads utilizing both cores but there's a constant framerate drop happening along with spikes of expected normal 25 every now and then in a way that it's obvious that something is artificially preventing the game from running as good as it can. Like a blind calculation that keeps on running and chokes the entire core so the fps drops down and behaves as it would with only one core active, the performance is 95% identical to having a core manually turned off while Dolphin is running in dual core mode.
! This is just an observation of what may be the issue.
- First scene after the intro, the player gets control of Dunban.
- Without touching any controls and just skipping the first tutorial screen the game is running, you see the three characters and let's say it CAN maintain 24-27fps under OpenGL and D3D in that scene.
- Problem is OGL: regardless of settings, at one launch of Dolphin that scene and the entire game runs fine, and on another startup the scene is stuttering like mad having moments of 25fps just to dip down to 5. I'm still idle in the scene mentioned above but it goes like 5-7-8-[color=orange]20[/color]-7-12-[color=orange]25[/color]-6-8-4-5-12-5-[color=orange]22[/color] FPS, it's struggling with something which it doesn't need to.
- This is of course while having dual core mode ON in Dolphin. Having it off in Dolphin works as it should I guess, with about 16-19fps in that scene. Having it ON but cutting off one core on purpose manually, or as the error appears to be doing itself, results in 5-8fps. The numbers themselves are not an issue for me here, it's their general behavior I'm looking at.
- Since the issue manifests itself at random times I went crazy turning all possible options on and off just to think that something fixed it when it really didn't. It's not an issue with any additional option inside Dolphin and can be fixed reliably by turning off and back on a core in the task manager, it's not the only way but it is a sure way and expected performance is maintained as long as the process is running, no falling back. As if Dolphin did what it wanted to while the core was off and then carries on as expected.
- When using D3D this didn't happen ever, but D3D is slower in general. Also both backends are fine in the official 3.5.
Now this still is a flawed post as I didn't test it in other games yet, is it even an issue in other games, is it my hardware, but there's also something else here. There are places where the framerate is fine like the intro cutscene with the titans, but the next one and the initial gameplay part stutter like mad. Then later on some cutscenes and areas like the cave get a massive hit and stutter as described but others don't. "Applying the fix" of course takes care of all those issues so it works as expected, like D3D does, just faster as OGL generally is. That behavior and the randomness of the whole issue make it hard to work with. So for now this is just an observation with a potential fix if anyone else runs into this kind of trouble. I don't really have any hard data yet which could help precisely point to the culprit whatever it may be, either dolphin or me so it's not really something to be considered on the development side of things.
edit: made it shorter.