Project

General

Profile

Actions

Emulator Issues #6540

closed

Metroid Prime 2 Very Low FPS When Viewing Map

Added by coolitic over 11 years ago. Updated over 7 years ago.

Status:
Won't fix
Priority:
Normal
Assignee:
-
Category:
GFX
% Done:

0%

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

Description

READ THIS: https://forums.dolphin-emu.org/showthread.php?pid=276132 <<<
Your answers are here!

Game Name? Metroid Prime 2 Echoes

Game ID? G2MP01

What went wrong? Normally, for most of the game (except certain, more intense scenes) I get a full FPS of 60 and the game is fine. But, when I view the map, the FPS drops to 20-25. When I switch to world map instead of "region" or "local" map, FPS gets better.

What did you expect to happen instead? View map with full 60 fps

What steps will reproduce the problem?
[Don't assume we have played the game and know its level names. Be as
detailed as possible.]

  1. Start Game
  2. Open Map
  3. Experience lag (making it annoying to pan or zoom)

Dolphin 3.5 and Dolphin 3.5-367 are old versions of Dolphin that have
known issues and bugs. Have you tested with the latest version from
http://dolphin-emu.org/download ?

Which versions of Dolphin did you test on? 3.5 1857

Which version of Dolphin used to work? None

What are your PC specifications (example: Operating System, CPU and GPU)?
Windows 7
i7 2630QM (HT and IGP off)
GTX 560M
8GB 1866 Mhz RAM

64 or 32 bit Operating System? 64

64 or 32 bit Dolphin? 64

Any other relevant information (e.g. logs, screenshots, configuration
files)
[Upload big files to a hosting service and post links here!]

Do not attach files to this issue. Upload them to another site and
link here. Use imgur.com for images and pastie.org for logs.


Files

0.png (686 KB) 0.png Screenshot realdomdom, 08/19/2017 10:39 PM
Actions #1

Updated by slmpika over 11 years ago

I can confirm that this happens with Metroid Prime 1 as well.

Actions #2

Updated by nigel.harris.uk over 11 years ago

Hi I can confirm this. The only way to stop the 'lag' (fps drops to like 40fps for me) when viewing the map is to use OGL backend and enabled 'Hacked buffer upload' aka 'Vertex Streaming Hack'.

Actions #3

Updated by JMC4789 over 11 years ago

  • Status changed from New to Questionable

Slowdown during intense parts of the game (this map may use something that stresses out dolphin) does not constitute an error. Unless you can find a specific reason for the problem, it's not likely to be fixed.

The possible ways this could be accepted/investigated would be:

1: Find a revision without the slowdown and then the revision where it first happened.
2: Profile it yourself (complicated) and find out if there is any low hanging fruit.
3: Do as comment 2 did and look for settings that affect it. That information points us to where the problem could be.

Hacked Buffer Upload fixing this makes me think that this likely isn't a problem with dolphin. I'm going to check this out myself, I have a similar processor the one in the issue report.

EDIT: Since I forgot to post this, I figure I might as well add this here. I checked it out in the Wii version, and I had no slowdown in the map using D3D9. Note, I don't have much of the game explored on Dolphin, but you didn't tell me I needed the map filled out, and you didn't provide a save. I'll go find my GC disc and dump it and check there.

Actions #4

Updated by nigel.harris.uk over 11 years ago

hi JMC4789, could you see if it slows down on you using D3D11 and OGL?

for me: D3D11 = map slow down (only in the light world map of Temple Grounds)
OGL= turn on hacked buffer uploads and problem is gone, which as you say is weird.

This is on the GC version.... if you have no slowdown on wii version then something weird is going on!

Actions #5

Updated by coolitic over 11 years ago

No the intense scene slowdown isnt part of the problem. I thought that was pretty clear. Any way that I can fix this issue in DX11? If not, someone should fix it.

Actions #6

Updated by pierre over 11 years ago

The game is hitting the drawing infrastructure harder when rendering the map. I see 10k "indexed draw calls", 94k "primitives". Normal rendering is just 500 draws with maybe 2k primitives.

Actions #7

Updated by nigel.harris.uk over 11 years ago

'Hacked buffer Upload' helps for me (i.e. map is full speed) so the way hacked buffer upload works is that it lessens the indexed draw calls and primitives somehow?

Actions #8

Updated by pierre over 11 years ago

Hacked buffer upload just reduces the overhead of the drawing calls. Large numbers of drawing calls result in large gains when using hacked buffer upload.

Actions #9

Updated by nigel.harris.uk over 11 years ago

thank you for the answer. I suppose thats why enabling the hack helps enormously in this situation.

Actions #10

Updated by MayImilae over 11 years ago

  • Status changed from Questionable to Won't fix

Performance issue. Nothing to do really.

Actions #11

Updated by coolitic over 11 years ago

I dont see a hacked buffer upload option, only vertex streaming hack. Either way, this should be optimized on DX11.

Actions #12

Updated by pauldacheez over 11 years ago

Hacked Buffer Upload was renamed to Vertex Streaming Hack recently. Also, DX11 is currently the slowest backend, just use OpenGL.

Actions #13

Updated by coolitic over 11 years ago

wrong. OpenGL is slower for me than DX11. When certain effects (like coming out of water making your visor wet) are done, my FPS drops to 20 on OpenGL, and 45 on DX11.

Actions #14

Updated by MayImilae over 11 years ago

Reflection effect slowdowns are a separate problem. Just something about how Prime does them makes OpenGL choke. But D3D11 is still the slowest backend right now, so while OpenGL has reflection slowdowns, it will be faster overall. OpenGL is very playable in the Prime games. ...minus the Meta Ridley fight.

Fortunately once D3D9 buys the farm D3D11 should improve rapidly, as most of the reasons it's slow are because of things to maintain D3D9. OpenGL should speed up a little as well.

Actions #15

Updated by coolitic over 11 years ago

What do you mean by "buys the farm"? D3D9 says deprecated, which means should be avoided. Also, it says OpenGL is the slowest/most accurate and D3D11 is faster. Anyways, they should make an optimization for D3D11.

What version of OpenGL is used by dolphin?

Actions #16

Updated by pauldacheez over 11 years ago

"Buys the farm" = retires. Once they finally kill it, neobrain and degasus can switch the other two backends over to integer shaders for a pretty big speedup. For now, though, it's usually the fastest backend, though it has plenty of backend-specific bugs and it can't be improved any further and it's slowing the other backends down due to VideoCommon needing to be compatible with all three...

OpenGL doesn't work in a way where you can really definitively say that Dolphin uses a specific version of OpenGL, but I can certainly say Dolphin uses features from GL 3.0, 3.1, 3.2, 3.3 (I think?), and 4.2.

Actions #17

Updated by coolitic over 11 years ago

I think they'll keep DX11 for compatibility/fallback purposes. However, they should just take out any major bugs (if there are any left) and move on to DX11 and OpenGL.

Still, they should srysly put an optimization for this on DX11.

Actions #18

Updated by coolitic over 11 years ago

Sorry i mean they will keep DX9

Actions #19

Updated by pauldacheez over 11 years ago

They're not keeping DX9, it's being taken out right after 4.0. That's the plan. (They're also dropping x86-32 support and Windows XP support. About time!)

Also, you talk about fixing bugs and optimizing like it's easy, but do you know how fucking hard/impossible that is? Plenty of the DX9 bugs are from the DX9 API simply not having certain major features that DX11/OpenGL have that are required to emulate certain parts of the GameCube GPU. I don't know the reasons for DX11/OpenGL's slownesses besides the part where they're much more flexible and aren't running on a ridiculously-optimized fixed-function pipeline like DX9 (inb4 neobrain kills me for being inaccurate there), but still, they can't simply "fix" and "optimize" everything.

Actions #20

Updated by coolitic over 11 years ago

You could of said that in a kinder way. Either way, I never said it was easy, I just said it needed to be done. I think I have noticed that it renders every part of the map instead of just the ones shown on screen, but I could be wrong.

Actions #21

Updated by JMC4789 over 11 years ago

That could be just how the game works as well. Even though this is marked as won't fix, it's more a case of nothing for them to do. It's slow right now, but eventually there may be improvements and optimizations that make it faster. That doesn't make this a valid issue though, so you'll just need to pay attention to new builds. There a plenty of "wontfix" issues that eventually get fixed by new people, new ideas, and new hardware.

Actions #22

Updated by coolitic over 11 years ago

So you are saying all abnormal and incredible slowdowns are what you call "no-fix"?

Actions #23

Updated by pierre over 11 years ago

  • Issue type changed from Bug to Feature request
  • Category set to gfx
  • Relates to performance set to Yes

It's rather that we cannot fix this problem(pending new ideas). There are some things that are fast on the real hardware but cannot be efficiently emulated by dolphin. It's really frustrating.

This slowdown is in no way abnormal. Other games show similar performance when doing similar amounts of drawing. When looking closer, it is always the operating systems graphics driver that uses lots of time because dolphin requests tons of drawing on behalf of the game. In normal games, the number of drawing calls is kept to a minimum, but that is not an option for dolphin, where everything requested by the software running in our VM(the software being the game) has to be drawn.

Actions #24

Updated by JosJuice almost 10 years ago

Issue 8116 has been merged into this issue.

Actions #25

Updated by JMC4789 almost 10 years ago

If you want it looked at, bisect to the exact build that the behavior changed. i think that's the best course of action at this point.

Actions #26

Updated by veegee almost 10 years ago

I managed to figure out where the issue began and have also recorded a video, showing the issue in action.

https://www.youtube.com/watch?v=nGVbId0DfqY

4.0-4674 worked fine
4.0-4699 wouldn't run the game in any playable fashion
4.0-4701 is where the issue arose

Cheers!

Actions #27

Updated by realdomdom over 7 years ago

This issue is still present in 5.0-5209.

Actions #28

Updated by realdomdom over 7 years ago

Deactivating Ubershaders fixes the problem while introducing microstutter every few seconds.

Actions

Also available in: Atom PDF