Explorar o código

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.
Fernando Sahmkow %!s(int64=7) %!d(string=hai) anos
pai
achega
0966665fc2
Modificáronse 1 ficheiros con 3 adicións e 2 borrados
  1. 3 2
      src/video_core/texture_cache/texture_cache.h

+ 3 - 2
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);
         }
         }
     }