diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index 44a0d42ba7..0e4907c53a 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h @@ -1079,7 +1079,7 @@ ImageId TextureCache
::JoinImages(const ImageInfo& info, GPUVAddr gpu_addr, VA
template ::BlitImages TextureCache ::GetBlitImages(
const Tegra::Engines::Fermi2D::Surface& dst, const Tegra::Engines::Fermi2D::Surface& src) {
- static constexpr auto FIND_OPTIONS = RelaxedOptions::Format | RelaxedOptions::Samples;
+ static constexpr auto FIND_OPTIONS = RelaxedOptions::Samples;
const GPUVAddr dst_addr = dst.Address();
const GPUVAddr src_addr = src.Address();
ImageInfo dst_info(dst);
@@ -1093,9 +1093,7 @@ typename TextureCache ::BlitImages TextureCache ::GetBlitImages(
const ImageBase* const dst_image = dst_id ? &slot_images[dst_id] : nullptr;
const ImageBase* const src_image = src_id ? &slot_images[src_id] : nullptr;
DeduceBlitImages(dst_info, src_info, dst_image, src_image);
- if (GetFormatType(dst_info.format) != GetFormatType(src_info.format)) {
- continue;
- }
+ ASSERT(GetFormatType(dst_info.format) == GetFormatType(src_info.format));
RelaxedOptions find_options{};
if (src_info.num_samples > 1) {
// it's a resolve, we must enforce the same format.
diff --git a/src/video_core/texture_cache/util.cpp b/src/video_core/texture_cache/util.cpp
index e4d82631e4..7775034881 100644
--- a/src/video_core/texture_cache/util.cpp
+++ b/src/video_core/texture_cache/util.cpp
@@ -1152,36 +1152,14 @@ bool IsSubresource(const ImageInfo& candidate, const ImageBase& image, GPUVAddr
void DeduceBlitImages(ImageInfo& dst_info, ImageInfo& src_info, const ImageBase* dst,
const ImageBase* src) {
bool is_resolve = false;
- const auto original_src_format = src_info.format;
- const auto original_dst_format = dst_info.format;
if (src) {
- if (GetFormatType(src->info.format) != SurfaceType::ColorTexture) {
- src_info.format = src->info.format;
- }
is_resolve = src->info.num_samples > 1;
src_info.num_samples = src->info.num_samples;
src_info.size = src->info.size;
}
- if (dst && GetFormatType(dst->info.format) != SurfaceType::ColorTexture) {
- dst_info.format = dst->info.format;
- }
- if (src && GetFormatType(src->info.format) != SurfaceType::ColorTexture) {
- if (dst) {
- if (GetFormatType(dst->info.format) == SurfaceType::ColorTexture) {
- src_info.format = original_src_format;
- }
- } else {
- dst_info.format = src->info.format;
- }
- }
- if (dst && GetFormatType(dst->info.format) != SurfaceType::ColorTexture) {
- if (src) {
- if (GetFormatType(src->info.format) == SurfaceType::ColorTexture) {
- dst_info.format = original_dst_format;
- }
- } else {
- src_info.format = dst->info.format;
- }
+ if (dst) {
+ dst_info.num_samples = dst->info.num_samples;
+ dst_info.size = dst->info.size;
}
ASSERT(!is_resolve || dst_info.format == src_info.format);
}