Project

General

Profile

Actions

Emulator Issues #7895

closed

Performance regression with 4.0-4350 (PR #1439)

Added by kodiacktech over 9 years ago.

Status:
Fixed
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

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

Actions #1

Updated by Armada over 9 years ago

If you turn off MSAA, do you still have a performance regression?

Actions #2

Updated by kodiacktech over 9 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.

Actions #3

Updated by Armada over 9 years ago

I take it you enabled 4xSSAA through the video drivers?

Actions #4

Updated by Armada over 9 years ago

Wait, I didn't know we support that mode too, can you actually try forcing MSAA through the drivers?

Actions #5

Updated by kodiacktech over 9 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

Actions #6

Updated by kodiacktech over 9 years ago

I just tried forcing MSAA through AMD's drivers. Unsurprisingly, it corrupted the graphics pretty majorly. GG, AMD driver development team!

Actions #8

Updated by kodiacktech over 9 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.

Actions #9

Updated by degasus over 9 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 :/

Actions #10

Updated by degasus over 9 years ago

grr, *amd

Actions #11

Updated by Armada over 9 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

Actions #12

Updated by mimimi over 9 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?

Actions #13

Updated by kodiacktech over 9 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.

http://i.imgur.com/JcTDu2u.png

Actions #14

Updated by kodiacktech over 9 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. (:

Actions #15

Updated by kodiacktech over 9 years ago

mimimi08, you can change your anti-aliasing settings in the graphics configuration menu. It's under the "Enhancements" tab.

http://i.imgur.com/EXmympD.png

Actions #16

Updated by mimimi over 9 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.

Actions #17

Updated by Armada over 9 years ago

I updated the first build, please try it again: http://dl.dolphin-emu.org/prs/pr-1620-dolphin-latest-x64.7z

Actions #18

Updated by Armada over 9 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.

Actions #19

Updated by kodiacktech over 9 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

Actions #20

Updated by kodiacktech over 9 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.

Actions #21

Updated by Armada over 9 years ago

So you're getting around 140 fps with those settings in build 4283, is that correct?

Actions #22

Updated by mimimi over 9 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.

Actions #23

Updated by kodiacktech over 9 years ago

Yes, I hover close to 140 FPS on the Wind Waker title screen in 4283.

Actions #24

Updated by Armada over 9 years ago

What happens when you disable Scaled EFB Copy and per-pixel lighting?

Actions #25

Updated by kodiacktech over 9 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

Actions #26

Updated by Armada over 9 years ago

@kodiacktech

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.

http://dl.dolphin-emu.org/prs/pr-1620-dolphin-latest-x64.7z

Actions #27

Updated by Armada over 9 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

Actions #28

Updated by Armada over 9 years ago

R9 290, I'm making a lot of typos today.

Actions #29

Updated by kodiacktech over 9 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!

Actions #30

Updated by Sonicadvance1 over 9 years ago

  • Status changed from New to Fixed
Actions

Also available in: Atom PDF