Skip to content

Commit

Permalink
Temporary workaround for Wipeout Pure lens flare flicker.
Browse files Browse the repository at this point in the history
See #13344.

Will try to figure out something better after the next release...
  • Loading branch information
hrydgard committed Dec 20, 2020
1 parent 45c7d4c commit bdf36a4
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 1 deletion.
1 change: 1 addition & 0 deletions Core/Compatibility.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ void Compatibility::CheckSettings(IniFile &iniFile, const std::string &gameID) {
CheckSetting(iniFile, gameID, "ReinterpretFramebuffers", &flags_.ReinterpretFramebuffers);
CheckSetting(iniFile, gameID, "DoublePrecisionSinCos", &flags_.DoublePrecisionSinCos);
CheckSetting(iniFile, gameID, "ShaderColorBitmask", &flags_.ShaderColorBitmask);
CheckSetting(iniFile, gameID, "DisableFirstFrameReadback", &flags_.DisableFirstFrameReadback);
}

void Compatibility::CheckSetting(IniFile &iniFile, const std::string &gameID, const char *option, bool *flag) {
Expand Down
1 change: 1 addition & 0 deletions Core/Compatibility.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ struct CompatFlags {
bool ReinterpretFramebuffers;
bool DoublePrecisionSinCos;
bool ShaderColorBitmask;
bool DisableFirstFrameReadback;
};

class IniFile;
Expand Down
2 changes: 1 addition & 1 deletion GPU/Common/FramebufferManagerCommon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1003,7 +1003,7 @@ void FramebufferManagerCommon::DownloadFramebufferOnSwitch(VirtualFramebuffer *v
// Some games will draw to some memory once, and use it as a render-to-texture later.
// To support this, we save the first frame to memory when we have a safe w/h.
// Saving each frame would be slow.
if (!g_Config.bDisableSlowFramebufEffects) {
if (!g_Config.bDisableSlowFramebufEffects && !PSP_CoreParameter().compat.flags().DisableFirstFrameReadback) {
ReadFramebufferToMemory(vfb, 0, 0, vfb->safeWidth, vfb->safeHeight);
vfb->usageFlags = (vfb->usageFlags | FB_USAGE_DOWNLOAD) & ~FB_USAGE_DOWNLOAD_CLEAR;
vfb->firstFrameSaved = true;
Expand Down
8 changes: 8 additions & 0 deletions assets/compat.ini
Original file line number Diff line number Diff line change
Expand Up @@ -857,3 +857,11 @@ ULES01301 = true
ULJS00218 = true
# Hitman Reborn Battle Arena
ULJS00157 = true

[DisableFirstFrameReadback]
# Wipeout Pure: Temporary workaround for lens flare flicker. See #13344
UCUS98612 = true
UCJS10007 = true
UCES00001 = true
UCKS45008 = true
NPJG00059 = true

0 comments on commit bdf36a4

Please sign in to comment.