summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2020-05-29 20:10:58 -0300
committerGravatar ReinUsesLisp2020-05-29 20:10:58 -0300
commitdd70e097ccb84b64983456759525d650d1ceab0a (patch)
treee9c95eb5cba196ccc32c30fae769e4be7def0614 /src
parenttexture_cache: Handle overlaps with multiple subresources (diff)
downloadyuzu-dd70e097ccb84b64983456759525d650d1ceab0a.tar.gz
yuzu-dd70e097ccb84b64983456759525d650d1ceab0a.tar.xz
yuzu-dd70e097ccb84b64983456759525d650d1ceab0a.zip
texture_cache: Reload textures when number of resources mismatch
Diffstat (limited to 'src')
-rw-r--r--src/video_core/texture_cache/texture_cache.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h
index 658264860..62206b906 100644
--- a/src/video_core/texture_cache/texture_cache.h
+++ b/src/video_core/texture_cache/texture_cache.h
@@ -660,6 +660,15 @@ private:
660 std::size_t passed_tests = 0; 660 std::size_t passed_tests = 0;
661 bool modified = false; 661 bool modified = false;
662 662
663 u32 num_resources = 0;
664 for (auto& surface : overlaps) {
665 const SurfaceParams& src_params = surface->GetSurfaceParams();
666 num_resources += src_params.depth * src_params.num_levels;
667 }
668 if (num_resources != params.depth * params.num_levels) {
669 LoadSurface(new_surface);
670 }
671
663 for (auto& surface : overlaps) { 672 for (auto& surface : overlaps) {
664 const SurfaceParams& src_params = surface->GetSurfaceParams(); 673 const SurfaceParams& src_params = surface->GetSurfaceParams();
665 const auto mipmap_layer{new_surface->GetLayerMipmap(surface->GetGpuAddr())}; 674 const auto mipmap_layer{new_surface->GetLayerMipmap(surface->GetGpuAddr())};