Texture Cache: Fix crashes on NVIDIA.
This commit is contained in:
parent
e482dd82b9
commit
a5c212516c
|
@ -1122,7 +1122,7 @@ typename TextureCache<P>::BlitImages TextureCache<P>::GetBlitImages(
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (can_be_depth_blit) {
|
if (can_be_depth_blit) {
|
||||||
const ImageBase* const dst_image = src_id ? &slot_images[src_id] : nullptr;
|
const ImageBase* const dst_image = dst_id ? &slot_images[dst_id] : nullptr;
|
||||||
DeduceBlitImages(dst_info, src_info, dst_image, src_image);
|
DeduceBlitImages(dst_info, src_info, dst_image, src_image);
|
||||||
if (GetFormatType(dst_info.format) != GetFormatType(src_info.format)) {
|
if (GetFormatType(dst_info.format) != GetFormatType(src_info.format)) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -1135,8 +1135,11 @@ typename TextureCache<P>::BlitImages TextureCache<P>::GetBlitImages(
|
||||||
dst_id = InsertImage(dst_info, dst_addr, RelaxedOptions{});
|
dst_id = InsertImage(dst_info, dst_addr, RelaxedOptions{});
|
||||||
}
|
}
|
||||||
} while (has_deleted_images);
|
} while (has_deleted_images);
|
||||||
if (GetFormatType(dst_info.format) != SurfaceType::ColorTexture) {
|
const ImageBase& src_image = slot_images[src_id];
|
||||||
// Make sure the images are depth and/or stencil textures.
|
const ImageBase& dst_image = slot_images[dst_id];
|
||||||
|
if (GetFormatType(dst_info.format) != GetFormatType(dst_image.info.format) ||
|
||||||
|
GetFormatType(src_info.format) != GetFormatType(src_image.info.format)) {
|
||||||
|
// Make sure the images match the expected format.
|
||||||
do {
|
do {
|
||||||
has_deleted_images = false;
|
has_deleted_images = false;
|
||||||
src_id = FindOrInsertImage(src_info, src_addr, RelaxedOptions{});
|
src_id = FindOrInsertImage(src_info, src_addr, RelaxedOptions{});
|
||||||
|
|
Loading…
Reference in a new issue