Removed the mVU block hack. This hack didn't help speed a lot (generally only about 2% if at all) but it caused slow downs and bugs in some games.

People enabled it for a performance boost and often got the reverse, so now it's gone.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5103 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
ramapcsx2 2012-02-22 21:04:58 +00:00
parent 3bbb2d6ed3
commit bc4ce5b1bf
7 changed files with 2 additions and 24 deletions

View File

@ -381,7 +381,6 @@ struct Pcsx2Config
IntcStat :1, // tells Pcsx2 to fast-forward through intc_stat waits.
WaitLoop :1, // enables constant loop detection and fast-forwarding
vuFlagHack :1, // microVU specific flag hack
vuBlockHack :1, // microVU specific block flag no-propagation hack
vuThread :1; // Enable Threaded VU1
BITFIELD_END

View File

@ -63,7 +63,6 @@ void Pcsx2Config::SpeedhackOptions::LoadSave( IniInterface& ini )
IniBitBool( IntcStat );
IniBitBool( WaitLoop );
IniBitBool( vuFlagHack );
IniBitBool( vuBlockHack );
IniBitBool( vuThread );
}

View File

@ -922,9 +922,8 @@ bool AppConfig::IsOkApplyPreset(int n)
case 4 : //set EE cyclerate to 2 clicks (maximum)
eeUsed?0:(eeUsed=true, EmuOptions.Speedhacks.EECycleRate = 2);
case 3 : //Set VU cycle steal to 1 click, enable (m)vuBlockHack, set VU clamp mode to 'none'
case 3 : //Set VU cycle steal to 1 click, set VU clamp mode to 'none'
vuUsed?0:(vuUsed=true, EmuOptions.Speedhacks.VUCycleSteal = 1);
EmuOptions.Speedhacks.vuBlockHack = true;
EmuOptions.Cpu.Recompiler.vuOverflow =
EmuOptions.Cpu.Recompiler.vuExtraOverflow =
EmuOptions.Cpu.Recompiler.vuSignOverflow = false; //VU Clamp mode to 'none'

View File

@ -334,7 +334,6 @@ namespace Panels
pxCheckBox* m_check_waitloop;
pxCheckBox* m_check_fastCDVD;
pxCheckBox* m_check_vuFlagHack;
pxCheckBox* m_check_vuBlockHack;
pxCheckBox* m_check_vuThread;
public:

View File

@ -163,9 +163,6 @@ Panels::SpeedHacksPanel::SpeedHacksPanel( wxWindow* parent )
m_check_vuFlagHack = new pxCheckBox( vuHacksPanel, _("mVU Flag Hack"),
_("Good Speedup and High Compatibility; may cause bad graphics... [Recommended]" ) );
m_check_vuBlockHack = new pxCheckBox( vuHacksPanel, _("mVU Block Hack"),
_("Good Speedup and High Compatibility; may cause bad graphics, SPS, etc...") );
m_check_vuThread = new pxCheckBox( vuHacksPanel, _("MTVU (Multi-Threaded microVU1)"),
_("Good Speedup and High Compatibility; may cause hanging... [Recommended if 3+ cores]") );
@ -174,11 +171,6 @@ Panels::SpeedHacksPanel::SpeedHacksPanel( wxWindow* parent )
L"This is safe most of the time, and Super VU does something similar by default."
) );
m_check_vuBlockHack->SetToolTip( pxEt( "!ContextTip:Speedhacks:vuBlockHack",
L"Assumes that very far into future blocks will not need old flag instance data. "
L"This should be pretty safe. It is unknown if this breaks any game..."
) );
m_check_vuThread->SetToolTip( pxEt( "!ContextTip:Speedhacks:vuThread",
L"Runs VU1 on its own thread (microVU1-only). Generally a speedup on CPUs with 3 or more cores. "
L"This is safe for most games, but a few games are incompatible and may hang. "
@ -234,7 +226,6 @@ Panels::SpeedHacksPanel::SpeedHacksPanel( wxWindow* parent )
*vuSliderPanel += m_msg_vustealer | sliderFlags;
*vuHacksPanel += m_check_vuFlagHack;
*vuHacksPanel += m_check_vuBlockHack;
*vuHacksPanel += m_check_vuThread;
//*vuHacksPanel += 57; // Aligns left and right boxes in default language and font size
@ -313,7 +304,6 @@ void Panels::SpeedHacksPanel::ApplyConfigToGui( AppConfig& configToApply, int fl
SetVUcycleSliderMsg();
m_check_vuFlagHack ->SetValue(opts.vuFlagHack);
m_check_vuBlockHack ->SetValue(opts.vuBlockHack);
m_check_vuThread ->SetValue(opts.vuThread);
m_check_intc ->SetValue(opts.IntcStat);
m_check_waitloop ->SetValue(opts.WaitLoop);
@ -343,7 +333,6 @@ void Panels::SpeedHacksPanel::Apply()
opts.fastCDVD = m_check_fastCDVD->GetValue();
opts.IntcStat = m_check_intc->GetValue();
opts.vuFlagHack = m_check_vuFlagHack->GetValue();
opts.vuBlockHack = m_check_vuBlockHack->GetValue();
opts.vuThread = m_check_vuThread->GetValue();
// If the user has a command line override specified, we need to disable it

View File

@ -290,7 +290,7 @@ __fi void mVUsetupFlags(mV, microFlagCycles& mFC) {
branch = 0; \
} \
else if (branch == 5) { /*JR/JARL*/ \
if(!CHECK_VU_BLOCKHACK && (sCount+found<4)) { \
if(sCount+found<4) { \
mVUregs.needExactMatch |= 7; \
} \
break; \

View File

@ -359,13 +359,6 @@ static const bool doJumpAsSameProgram = 0; // Set to 1 to treat jumps as same pr
// This hack only updates the Status Flag on blocks that will read it.
// Most blocks do not read status flags, so this is a big speedup.
// Block Flag Instance No-Propagation Hack
#define CHECK_VU_BLOCKHACK (EmuConfig.Speedhacks.vuBlockHack)
// There are times when it is unknown if future blocks will need old
// flag instance data (due to indirect jumps). This hack assumes
// that they won't need old flag data. This effectively removes a lot
// of end-of-block flag instance shuffling, causing nice speedups.
// Min/Max Speed Hack
#define CHECK_VU_MINMAXHACK 0 //(EmuConfig.Speedhacks.vuMinMax)
// This hack uses SSE min/max instructions instead of emulated "logical min/max"