texture_cache: return null surface on invalid address

This commit is contained in:
Fernando Sahmkow 2019-05-21 08:36:00 -04:00 committed by ReinUsesLisp
parent fcac55d5bf
commit e60ed2bb3e
1 changed files with 12 additions and 0 deletions

View File

@ -483,6 +483,18 @@ private:
const auto host_ptr{memory_manager->GetPointer(gpu_addr)};
const auto cache_addr{ToCacheAddr(host_ptr)};
// Step 0: guarantee a valid surface
if (!cache_addr) {
// Return a null surface if it's invalid
SurfaceParams new_params = params;
new_params.width = 1;
new_params.height = 1;
new_params.depth = 1;
new_params.block_height = 0;
new_params.block_depth = 0;
return InitializeSurface(gpu_addr, new_params, false);
}
// Step 1
// Check Level 1 Cache for a fast structural match. If candidate surface
// matches at certain level we are pretty much done.