Water effect fix #2: If ForceLowerResolutionForEffects, don't upscale textures participating in small-resolution passes.

This commit is contained in:
Henrik Rydgård 2022-09-04 23:43:01 +02:00
parent 7065a7fa8f
commit 40f8f21836

View file

@ -2348,6 +2348,12 @@ bool TextureCacheCommon::PrepareBuildTexture(BuildTexturePlan &plan, TexCacheEnt
plan.scaleFactor = 1;
}
if (PSP_CoreParameter().compat.flags().ForceLowerResolutionForEffectsOn && gstate.FrameBufStride() < 0x1E0) {
// A bit of an esoteric workaround - force off upscaling for static textures that participate directly in small-resolution framebuffer effects.
// This fixes the water in Outrun/DiRT 2 with upscaling enabled.
plan.scaleFactor = 1;
}
if ((entry->status & TexCacheEntry::STATUS_CHANGE_FREQUENT) != 0 && plan.scaleFactor != 1 && plan.slowScaler) {
// Remember for later that we /wanted/ to scale this texture.
entry->status |= TexCacheEntry::STATUS_TO_SCALE;