Be a little more aggressive discarding non matching framebuffers when texturing. Enable create framebuffer from copy, fixing #12345

This commit is contained in:
Henrik Rydgård 2020-08-04 14:48:28 +02:00
parent 58ef0c8e80
commit 09e300e646
2 changed files with 13 additions and 0 deletions

View File

@ -847,6 +847,8 @@ bool TextureCacheCommon::AttachFramebuffer(TexCacheEntry *entry, u32 address, Vi
return true;
} else if (IsClutFormat((GETextureFormat)(entry->format)) || IsDXTFormat((GETextureFormat)(entry->format))) {
WARN_LOG_ONCE(fourEightBit, G3D, "%s format not supported when texturing from framebuffers", GeTextureFormatToString((GETextureFormat)entry->format));
DetachFramebuffer(entry, address, framebuffer);
return false;
}
// This is either normal or we failed to generate a shader to depalettize
@ -865,6 +867,8 @@ bool TextureCacheCommon::AttachFramebuffer(TexCacheEntry *entry, u32 address, Vi
} else {
WARN_LOG_REPORT_ONCE(diffFormat2, G3D, "Texturing from framebuffer with incompatible format %s != %s at %08x",
GeTextureFormatToString((GETextureFormat)entry->format), GeBufferFormatToString(framebuffer->format), address);
DetachFramebuffer(entry, address, framebuffer);
return false;
}
}

View File

@ -523,6 +523,15 @@ NPEH00065 = true # Ys Seven
NPJH50350 = true # Ys Seven
ULJM08041 = true # Ys Seven
# Burnout Legends
ULES00125 = true
ULUS10025 = true
ULJM05228 = true
NPJH50305 = true
ULJM05049 = true
ULKS46027 = true
ULAS42019 = true
# Note! This whole flag is disabled temporarily by appending "Disabled" to its name). See 7914
[YugiohSaveFixDisabled]
# The cause of Yu-gi-oh series 's bad save (cannot save) are load "save status" and use cwcheat,