Emulator Issues #7895
closedPerformance regression with 4.0-4350 (PR #1439)
Added by kodiacktech almost 10 years ago.
0%
Description
At least on my system, there appears to be a performance regression with 4.0-4350, the commit that added 3D stereoscopic support for OpenGL. Prior to 4350, I was able to sustain 41 FPS at 4xIR/8xMSAA on the Skyward Sword title screen with the frame limiter disabled. After 4350, I am only able to sustain 20 FPS with the same settings.
System specifications:
Intel Core i7-4770K
Radeon R9 290 w/ Catalyst 14.11.2 drivers
Windows 8.1 x64
Updated by Armada almost 10 years ago
If you turn off MSAA, do you still have a performance regression?
Updated by kodiacktech almost 10 years ago
With MSAA fully disabled, I get 57 FPS in both 4283 and 4350. I may be hitting a CPU bottleneck at that point, however. To further test, I tried 4xSSAA in place of MSAA. Using SSAA, I get 28 FPS in both 4283 and in 4350, so there may very well only be a performance issue when using MSAA after 4350.
Updated by Armada almost 10 years ago
I take it you enabled 4xSSAA through the video drivers?
Updated by Armada almost 10 years ago
Wait, I didn't know we support that mode too, can you actually try forcing MSAA through the drivers?
Updated by kodiacktech almost 10 years ago
No, I enabled the SSAA right in Dolphin's graphics configuration menu in the enhancements tab.
Forcing anything with AMD's drivers is always a hit or a miss anyways. >_> But that's a discussion for another day! Haha
Updated by kodiacktech almost 10 years ago
I just tried forcing MSAA through AMD's drivers. Unsurprisingly, it corrupted the graphics pretty majorly. GG, AMD driver development team!
Updated by Armada almost 10 years ago
Please test this build: http://dl.dolphin-emu.org/prs/pr-1620-dolphin-latest-x64.7z
Updated by kodiacktech almost 10 years ago
Same issue, unfortunately. I'm actually only getting 15 FPS on that even, as opposed to the 20 FPS that I'm seeing in 4350.
Updated by degasus almost 10 years ago
There is no need to force enable MSAA within the driver. This will only enable MSAA on the default framebuffer, but we don't render anything at all there.
But why in hell is intel now slower? I don't think there should be an issue with the hardware :/
Updated by Armada almost 10 years ago
This build adds stereoscopy to D3D, please test if you have a similar performance regression in D3D: http://dl.dolphin-emu.org/prs/pr-1612-dolphin-latest-x64.7z
Updated by mimimi almost 10 years ago
So, i have a Core 2 Duo E6750 @3.2 Ghz, Windows 7 64 bit, a Radeon HD7790 and Catalyst 14.9, and i'm not seeing a regression here. I only tested opengl, no AA, 3xIR, Dolphin 4.0-4283 vs. 4.0-4350 with the following games:
Wind Waker
New Super Mario Bros
The Last Story
Super Mario Galaxy 1
The tests always gave me the same results for both Dolphin versions. So if there is a regression, it might really be limited to MSAA.
How exactly do you turn on MSAA in Dolphin and not via Catalyst control panel?
Updated by kodiacktech almost 10 years ago
I get 18 FPS with 4xIR and the maximum level of MSAA in D3D while using 4283. I get 22 FPS on that build with the same settings, but the image is corrupted/black.
Updated by kodiacktech almost 10 years ago
Interesting; disabling anti-aliasing and then re-enabling it appears to make it work as intended in that build. However, the performance regression appears to still be there. Enabling 2xMSAA drops me to 36 FPS on 4283, while it results in a hard drop to 20 FPS in that one.
The Direct3D back-end seems stupidly demanding in comparison to the OpenGL one, haha. But again, that's for another discussion. (:
Updated by kodiacktech almost 10 years ago
mimimi08, you can change your anti-aliasing settings in the graphics configuration menu. It's under the "Enhancements" tab.
Updated by mimimi almost 10 years ago
On irc i was told that AA == MSAA, so why doesn't it say MSAA???
Anyways, i can confirm the regression now. In the New Super Mario Bros title screen, 4.0-4283 vs. 4.0-4350, i get 55 fps vs 17 fps in opengl and 8xAA & 3xIR. With just 3xIR, it's 120 fps in both versions.
Updated by Armada almost 10 years ago
I updated the first build, please try it again: http://dl.dolphin-emu.org/prs/pr-1620-dolphin-latest-x64.7z
Updated by Armada almost 10 years ago
For performance benchmarks I'd also prefer to have more concrete numbers. In the graphics options there's a "Log render time to file" option.
Zelda games come with an intro sequence waiting for you to press start, since this intro sequence is the same each time it's perfect to do some benchmarking. Run the game until the end of the intro sequence and then dump the contents of "Documents\Dolphin Emulator\Logs\render_time.txt" to a Google spreadsheet. Mark the column with a description of the build and the settings used and then move on to another build.
That way we can accurately compare each build and see the regression on paper. It will also make it more clear when we've eliminated the regression.
Updated by kodiacktech almost 10 years ago
I've finished up the benchmarking. I switched over to Wind Waker since it's more reproducible. I used 4xIR with 8xMSAA.
There's some very noticeable differences between the render times. They're fairly apparent rather early on when 4283 is pushing out frames with 0-1 ms rendering times, while 4350 and that latest build are pumping them out ~2-3x slower.
I've tossed them onto Pastebin instead of Google Docs. If that's an issue, let me know.
4283: http://pastebin.com/FrxaitnR
4350: http://pastebin.com/9yXAPRQW
Custom Build: http://pastebin.com/2EU7Hx3x
Updated by kodiacktech almost 10 years ago
Mulling over things again, it appears that I actually hit a CPU bottleneck in 4283. I can get significantly smaller render times yet if I switch over to HLE audio.
If that's something that warrants retesting, say the word. Regardless, the regression is still quite apparent with the included render times.
Updated by Armada almost 10 years ago
So you're getting around 140 fps with those settings in build 4283, is that correct?
Updated by mimimi almost 10 years ago
PR 1620 still cripples the performance in New Super Mario Bros at 8xAA and opengl. It's still 17 fps vs the 55 fps in the build before the regression.
Updated by kodiacktech almost 10 years ago
Yes, I hover close to 140 FPS on the Wind Waker title screen in 4283.
Updated by Armada almost 10 years ago
What happens when you disable Scaled EFB Copy and per-pixel lighting?
Updated by kodiacktech almost 10 years ago
Per-pixel lighting was already disabled. Disabling scaled EFB copying unsurprisingly results in a large FPS gain, but the performance regression is still very much there. 4283 goes through the run in pretty much no time flat, while 4350 has some visible "slowdowns" to ~250% speed, particularly when there's a lot of geometry in the scene.
Render times:
4283: http://pastebin.com/GURQuPEC
4350: http://pastebin.com/QkMs3ssC
Updated by Armada almost 10 years ago
I was able to benchmark some AMD hardware myself and I was able to reproduce the regression. However, when I tested the original PR160 it was completely solved. Can you try downloading PR160 again? Make sure you run the right build, it should show up as build number 4.0-4428 when you start it.
Updated by Armada almost 10 years ago
I meant to say PR1620, here are my own results of benchmarking on an AMD R9 920 just like yours:
https://docs.google.com/spreadsheets/d/1r1b3iXpFlJmCht7RliMFyT2660S0LFa-aSf2AJlgI0A
Updated by kodiacktech almost 10 years ago
I can confirm that PR-1620-latest (4.0-4428-dirty) does indeed fix the regression. I'm back to 41 FPS on the Skyward Sword title screen with 4xIR and 8xMSAA. I believe I missed that entirely while doing the benchmarking before. :) Thanks for linking it again!
Updated by Sonicadvance1 almost 10 years ago
- Status changed from New to Fixed