Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FramebufferManager: Implement EFB tile cache #7838

Merged
merged 5 commits into from Mar 12, 2019

Conversation

3 participants
@stenzek
Copy link
Contributor

stenzek commented Mar 2, 2019

Fixes the SMG performance regression in dual core.

Currently it adds a UI option for tweaking the tile size, but once we work out what a good size is, we can drop it (probably before merge). Some games might benefit from larger tiles (or no tiles, which is value 0).

@stenzek stenzek force-pushed the stenzek:efb-tile-cache branch 6 times, most recently from ed0aacf to f3ef019 Mar 2, 2019

@AwesomeMarioFan

This comment has been minimized.

Copy link
Contributor

AwesomeMarioFan commented Mar 4, 2019

Thanks for fixing this! I have tested this on the D3D11 backend and I am seeing ~30% faster speeds now using dual core. (This is with 'Defer CPU Cache Invalidation' checked and the Tile Size set to 0.) This is even better performance than I was seeing before version 9638.

stenzek added some commits Mar 2, 2019

VideoConfig: Add SupportsPartialDepthCopies to backend info
D3D11 doesn't support partial copies of depth buffers via
CopySubResource(), so we need to use a different path for the EFB cache.
FramebufferManager: Implement EFB tile cache
The new tile cache is dynamic in size and can be turned on/off.

@stenzek stenzek force-pushed the stenzek:efb-tile-cache branch from f3ef019 to 9293c82 Mar 9, 2019

GameIni: Disable EFB CPU tile cache on F-Zero GX
In the Sand Ocean track, EFB peeks occur across the whole screen.
This leads to slow performance with the tile cache enabled, so disable it.
@JMC47

This comment has been minimized.

Copy link
Contributor

JMC47 commented Mar 11, 2019

I think we should enable Defer Invalidation by default in certain games. That can be done in a separate Pull Request if we want to be honest.

@JMC47 JMC47 merged commit 22e7419 into dolphin-emu:master Mar 12, 2019

9 checks passed

default Very basic checks passed, handed off to Buildbot.
Details
lint Build succeeded on builder lint
Details
pr-android Build succeeded on builder pr-android
Details
pr-deb-dbg-x64 Build succeeded on builder pr-deb-dbg-x64
Details
pr-deb-x64 Build succeeded on builder pr-deb-x64
Details
pr-freebsd-x64 Build succeeded on builder pr-freebsd-x64
Details
pr-ubu-x64 Build succeeded on builder pr-ubu-x64
Details
pr-win-dbg-x64 Build succeeded on builder pr-win-dbg-x64
Details
pr-win-x64 Build succeeded on builder pr-win-x64
Details

@stenzek stenzek deleted the stenzek:efb-tile-cache branch Mar 13, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.