diff options
author | Fernando Sahmkow <fsahmkow27@gmail.com> | 2019-05-22 12:30:53 -0400 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-06-20 21:38:33 -0300 |
commit | 0966665fc225eee29b3ed87baefd74f79c19d307 (patch) | |
tree | f4f4f53d55e39ce0b37ad721e26f0f0609e37293 | |
parent | ea1525dab1bf7e9e56471b6d5fd50014bfeb4f96 (diff) |
texture_cache: Only load on recycle with accurate GPU.
Testing so far has proven this to be quite safe as texture memory read
added a 2-5ms load to the current cache.
-rw-r--r-- | src/video_core/texture_cache/texture_cache.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index ab4e094ea..685bd28f4 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h @@ -342,12 +342,13 @@ private: const SurfaceParams& params, const GPUVAddr gpu_addr, const bool preserve_contents, const bool untopological) { + const bool do_load = Settings::values.use_accurate_gpu_emulation && preserve_contents; for (auto surface : overlaps) { Unregister(surface); } switch (PickStrategy(overlaps, params, gpu_addr, untopological)) { case RecycleStrategy::Ignore: { - return InitializeSurface(gpu_addr, params, preserve_contents); + return InitializeSurface(gpu_addr, params, do_load); } case RecycleStrategy::Flush: { std::sort(overlaps.begin(), overlaps.end(), @@ -361,7 +362,7 @@ private: } default: { UNIMPLEMENTED_MSG("Unimplemented Texture Cache Recycling Strategy!"); - return InitializeSurface(gpu_addr, params, preserve_contents); + return InitializeSurface(gpu_addr, params, do_load); } } } |