mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Out of performance paranoia, limit the Mali workaround to known affected games
This commit is contained in:
parent
d0ea3b3284
commit
8922be2015
4 changed files with 21 additions and 1 deletions
|
@ -81,6 +81,7 @@ void Compatibility::CheckSettings(IniFile &iniFile, const std::string &gameID) {
|
|||
CheckSetting(iniFile, gameID, "MpegAvcWarmUp", &flags_.MpegAvcWarmUp);
|
||||
CheckSetting(iniFile, gameID, "BlueToAlpha", &flags_.BlueToAlpha);
|
||||
CheckSetting(iniFile, gameID, "CenteredLines", &flags_.CenteredLines);
|
||||
CheckSetting(iniFile, gameID, "MaliDepthStencilBugWorkaround", &flags_.MaliDepthStencilBugWorkaround);
|
||||
}
|
||||
|
||||
void Compatibility::CheckSetting(IniFile &iniFile, const std::string &gameID, const char *option, bool *flag) {
|
||||
|
|
|
@ -80,6 +80,7 @@ struct CompatFlags {
|
|||
bool MpegAvcWarmUp;
|
||||
bool BlueToAlpha;
|
||||
bool CenteredLines;
|
||||
bool MaliDepthStencilBugWorkaround;
|
||||
};
|
||||
|
||||
class IniFile;
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
#include "Common/GPU/thin3d.h"
|
||||
#include "Common/StringUtils.h"
|
||||
#include "Core/System.h"
|
||||
#include "Core/Config.h"
|
||||
|
||||
#include "GPU/ge_constants.h"
|
||||
|
@ -341,7 +342,7 @@ void ComputeFragmentShaderID(FShaderID *id_out, const Draw::Bugs &bugs) {
|
|||
if (g_Config.bVendorBugChecksEnabled) {
|
||||
if (bugs.Has(Draw::Bugs::NO_DEPTH_CANNOT_DISCARD_STENCIL)) {
|
||||
id.SetBit(FS_BIT_NO_DEPTH_CANNOT_DISCARD_STENCIL, !IsStencilTestOutputDisabled() && !gstate.isDepthWriteEnabled());
|
||||
} else if (bugs.Has(Draw::Bugs::MALI_STENCIL_DISCARD_BUG)) {
|
||||
} else if (bugs.Has(Draw::Bugs::MALI_STENCIL_DISCARD_BUG) && PSP_CoreParameter().compat.flags().MaliDepthStencilBugWorkaround) {
|
||||
// Very similar driver bug to the Adreno one, with the same workaround (though might look into if there are cheaper ones!)
|
||||
// Keeping the conditions separate since it can probably be made tighter.
|
||||
id.SetBit(FS_BIT_NO_DEPTH_CANNOT_DISCARD_STENCIL, !IsStencilTestOutputDisabled() && !gstate.isDepthWriteEnabled());
|
||||
|
|
|
@ -586,6 +586,23 @@ NPJH50304 = true
|
|||
ULES00703 = true
|
||||
ULAS42095 = true
|
||||
|
||||
[MaliDepthStencilBugWorkaround]
|
||||
# See issue #13833 where the map is supposed to be round but is not.
|
||||
|
||||
# Midnight Club: LA Remix
|
||||
ULUS10383 = true
|
||||
ULES01144 = true
|
||||
ULJS00180 = true
|
||||
ULJS00267 = true
|
||||
ULJM05904 = true
|
||||
NPJH50440 = true
|
||||
# Midnight Club 3 : DUB edition
|
||||
ULUS10021 = true
|
||||
ULES00108 = true
|
||||
|
||||
# Tales of Phantasia - Narikiri Dungeon X. See #15526
|
||||
ULJS00293 = true
|
||||
|
||||
[RequireDefaultCPUClock]
|
||||
# GOW : Ghost of Sparta
|
||||
UCUS98737 = true
|
||||
|
|
Loading…
Add table
Reference in a new issue