diff --git a/README.md b/README.md index 1c6efce22..909a5f83d 100755 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ yuzu emulator early access ============= -This is the source code for early-access 2246. +This is the source code for early-access 2247. ## Legal Notice diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index f24de9a38..756b6135e 100755 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h @@ -725,7 +725,11 @@ ImageViewId TextureCache

::CreateImageView(const TICEntry& config) { } const u32 layer_offset = config.BaseLayer() * info.layer_stride; const GPUVAddr image_gpu_addr = config.Address() - layer_offset; - const ImageId image_id = FindOrInsertImage(info, image_gpu_addr); + ImageId image_id{}; + do { + has_deleted_images = false; + image_id = FindOrInsertImage(info, image_gpu_addr); + } while (has_deleted_images); if (!image_id) { return NULL_IMAGE_VIEW_ID; } @@ -1137,8 +1141,11 @@ typename TextureCache

::BlitImages TextureCache

::GetBlitImages( } while (has_deleted_images); if (GetFormatType(dst_info.format) != SurfaceType::ColorTexture) { // Make sure the images are depth and/or stencil textures. - src_id = FindOrInsertImage(src_info, src_addr, RelaxedOptions{}); - dst_id = FindOrInsertImage(dst_info, dst_addr, RelaxedOptions{}); + do { + has_deleted_images = false; + src_id = FindOrInsertImage(src_info, src_addr, RelaxedOptions{}); + dst_id = FindOrInsertImage(dst_info, dst_addr, RelaxedOptions{}); + } while (has_deleted_images); } return BlitImages{ .dst_id = dst_id, @@ -1196,7 +1203,11 @@ template ImageViewId TextureCache

::FindRenderTargetView(const ImageInfo& info, GPUVAddr gpu_addr, bool is_clear) { const auto options = is_clear ? RelaxedOptions::Samples : RelaxedOptions{}; - const ImageId image_id = FindOrInsertImage(info, gpu_addr, options); + ImageId image_id{}; + do { + has_deleted_images = false; + image_id = FindOrInsertImage(info, gpu_addr, options); + } while (has_deleted_images); if (!image_id) { return NULL_IMAGE_VIEW_ID; } diff --git a/src/video_core/texture_cache/util.cpp b/src/video_core/texture_cache/util.cpp index e76f8f755..7bd31b211 100755 --- a/src/video_core/texture_cache/util.cpp +++ b/src/video_core/texture_cache/util.cpp @@ -1151,7 +1151,6 @@ bool IsSubresource(const ImageInfo& candidate, const ImageBase& image, GPUVAddr void DeduceBlitImages(ImageInfo& dst_info, ImageInfo& src_info, const ImageBase* dst, const ImageBase* src) { - const auto original_src_format = src_info.format; const auto original_dst_format = dst_info.format; if (src && GetFormatType(src->info.format) != SurfaceType::ColorTexture) { src_info.format = src->info.format;