diff options
| author | Fernando Sahmkow <fsahmkow27@gmail.com> | 2020-04-14 23:21:00 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-04-14 23:21:00 -0400 |
| commit | 52144a9a2397d8e9b6b259e71d977abf0d565716 (patch) | |
| tree | a6af3853723b7a753067a614c5ac6c2d1e1a82dc /src/video_core/texture_cache/texture_cache.h | |
| parent | 136e9aebfd74d6b3366a1aad6e157b7e0148e394 (diff) | |
Texture Cache: Only do buffer copies on accurate GPU. (#3634)
This is a simple optimization as Buffer Copies are mostly used for texture recycling. They are, however, useful when games abuse undefined behavior but most 3D APIs forbid it.
Diffstat (limited to 'src/video_core/texture_cache/texture_cache.h')
| -rw-r--r-- | src/video_core/texture_cache/texture_cache.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index cfc7fe6e93..4edd4313b1 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h @@ -509,7 +509,9 @@ private: } const auto& final_params = new_surface->GetSurfaceParams(); if (cr_params.type != final_params.type) { - BufferCopy(current_surface, new_surface); + if (Settings::values.use_accurate_gpu_emulation) { + BufferCopy(current_surface, new_surface); + } } else { std::vector<CopyParams> bricks = current_surface->BreakDown(final_params); for (auto& brick : bricks) { |
