summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar bunnei2020-06-26 19:02:39 -0400
committerGravatar GitHub2020-06-26 19:02:39 -0400
commit3579db425e3f7af8bf1283dc7fc35593f80a50aa (patch)
treea5c17c834634f408034bffbc8eec8e235276641b
parentMerge pull request #4111 from ReinUsesLisp/preserve-contents-vk (diff)
parentTextureCache: Fix case where layer goes off bound. (diff)
downloadyuzu-3579db425e3f7af8bf1283dc7fc35593f80a50aa.tar.gz
yuzu-3579db425e3f7af8bf1283dc7fc35593f80a50aa.tar.xz
yuzu-3579db425e3f7af8bf1283dc7fc35593f80a50aa.zip
Merge pull request #4144 from FernandoS27/tt-fix
TextureCache: Fix case where layer goes off bound.
-rw-r--r--src/video_core/texture_cache/surface_base.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/video_core/texture_cache/surface_base.cpp b/src/video_core/texture_cache/surface_base.cpp
index 94d3a6ae5..0caf3b4f0 100644
--- a/src/video_core/texture_cache/surface_base.cpp
+++ b/src/video_core/texture_cache/surface_base.cpp
@@ -120,6 +120,9 @@ std::optional<std::pair<u32, u32>> SurfaceBaseImpl::GetLayerMipmap(
120 } 120 }
121 const auto relative_address{static_cast<GPUVAddr>(candidate_gpu_addr - gpu_addr)}; 121 const auto relative_address{static_cast<GPUVAddr>(candidate_gpu_addr - gpu_addr)};
122 const auto layer{static_cast<u32>(relative_address / layer_size)}; 122 const auto layer{static_cast<u32>(relative_address / layer_size)};
123 if (layer >= params.depth) {
124 return {};
125 }
123 const GPUVAddr mipmap_address = relative_address - layer_size * layer; 126 const GPUVAddr mipmap_address = relative_address - layer_size * layer;
124 const auto mipmap_it = 127 const auto mipmap_it =
125 Common::BinaryFind(mipmap_offsets.begin(), mipmap_offsets.end(), mipmap_address); 128 Common::BinaryFind(mipmap_offsets.begin(), mipmap_offsets.end(), mipmap_address);