Project

General

Profile

Emulator Issues #11004

Null video backend and OGL video backends become unbearably slow due to texture cache.

Added by vomjom about 3 years ago. Updated almost 3 years ago.

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

Game Name?

Super Smash Brothers Melee

The issue is present at the latest GitHub master as of April 15th. I've attached a profile using the Google perftools profiler of CPU usage after 10 minutes of play with the Null backend. With the OGL backend, it takes more like 24 hours to get the same result.

All the time is spent in FindMatchingTexturesFromPool in the line: auto range = texture_pool.equal_range(config);

It seems that the texture_pool is growing indefinitely causing performance issues. After more play, pretty much all of the CPU is spent on that line of code.

profile.pdf (17.9 KB) profile.pdf vomjom, 04/15/2018 07:50 AM

History

#1 Updated by vomjom about 3 years ago

I haven't yet confirmed that OGL is the exact same issue, but it has the same symptoms. I can confirm if needed, but I'll need to run it for another day.

#2 Updated by JMC4789 almost 3 years ago

  • Assignee set to degasus

#3 Updated by degasus almost 3 years ago

I think this one here is the affected call: https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/VideoCommon/TextureCacheBase.cpp#L1918

But the texture_pool should get cleaned after 3 frames: https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/VideoCommon/TextureCacheBase.cpp#L192

So this behavior is very strange.

Also available in: Atom PDF