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.
This commit is contained in:
parent
ea1525dab1
commit
0966665fc2
|
@ -342,12 +342,13 @@ private:
|
||||||
const SurfaceParams& params, const GPUVAddr gpu_addr,
|
const SurfaceParams& params, const GPUVAddr gpu_addr,
|
||||||
const bool preserve_contents,
|
const bool preserve_contents,
|
||||||
const bool untopological) {
|
const bool untopological) {
|
||||||
|
const bool do_load = Settings::values.use_accurate_gpu_emulation && preserve_contents;
|
||||||
for (auto surface : overlaps) {
|
for (auto surface : overlaps) {
|
||||||
Unregister(surface);
|
Unregister(surface);
|
||||||
}
|
}
|
||||||
switch (PickStrategy(overlaps, params, gpu_addr, untopological)) {
|
switch (PickStrategy(overlaps, params, gpu_addr, untopological)) {
|
||||||
case RecycleStrategy::Ignore: {
|
case RecycleStrategy::Ignore: {
|
||||||
return InitializeSurface(gpu_addr, params, preserve_contents);
|
return InitializeSurface(gpu_addr, params, do_load);
|
||||||
}
|
}
|
||||||
case RecycleStrategy::Flush: {
|
case RecycleStrategy::Flush: {
|
||||||
std::sort(overlaps.begin(), overlaps.end(),
|
std::sort(overlaps.begin(), overlaps.end(),
|
||||||
|
@ -361,7 +362,7 @@ private:
|
||||||
}
|
}
|
||||||
default: {
|
default: {
|
||||||
UNIMPLEMENTED_MSG("Unimplemented Texture Cache Recycling Strategy!");
|
UNIMPLEMENTED_MSG("Unimplemented Texture Cache Recycling Strategy!");
|
||||||
return InitializeSurface(gpu_addr, params, preserve_contents);
|
return InitializeSurface(gpu_addr, params, do_load);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue