Merge pull request #4144 from FernandoS27/tt-fix

TextureCache: Fix case where layer goes off bound.
This commit is contained in:
bunnei 2020-06-26 19:02:39 -04:00 committed by GitHub
commit 3579db425e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 3 additions and 0 deletions

View File

@ -120,6 +120,9 @@ std::optional<std::pair<u32, u32>> SurfaceBaseImpl::GetLayerMipmap(
} }
const auto relative_address{static_cast<GPUVAddr>(candidate_gpu_addr - gpu_addr)}; const auto relative_address{static_cast<GPUVAddr>(candidate_gpu_addr - gpu_addr)};
const auto layer{static_cast<u32>(relative_address / layer_size)}; const auto layer{static_cast<u32>(relative_address / layer_size)};
if (layer >= params.depth) {
return {};
}
const GPUVAddr mipmap_address = relative_address - layer_size * layer; const GPUVAddr mipmap_address = relative_address - layer_size * layer;
const auto mipmap_it = const auto mipmap_it =
Common::BinaryFind(mipmap_offsets.begin(), mipmap_offsets.end(), mipmap_address); Common::BinaryFind(mipmap_offsets.begin(), mipmap_offsets.end(), mipmap_address);