SPU: Remove inaccurate GETLLAR option

This commit is contained in:
Elad Ashkenazi 2024-06-06 18:22:21 +03:00
parent 55ed95b42c
commit ac5d907002
6 changed files with 2 additions and 16 deletions

View file

@ -4430,7 +4430,7 @@ bool spu_thread::process_mfc_cmd()
// Need to check twice for it to be accurate, the code is before and not after this check for:
// 1. Reduce time between reservation accesses so TSX panelty would be lowered
// 2. Increase the chance of change detection: if GETLLAR has been called again new data is probably wanted
if (rtime == vm::reservation_acquire(addr) && (!g_cfg.core.spu_accurate_getllar || cmp_rdata(rdata, data)))
if (rtime == vm::reservation_acquire(addr) && cmp_rdata(rdata, data))
{
if ([&]() -> bool
{
@ -4607,7 +4607,7 @@ bool spu_thread::process_mfc_cmd()
continue;
}
if (g_cfg.core.spu_accurate_getllar && !cmp_rdata(rdata, data))
if (!cmp_rdata(rdata, data))
{
i += 2;
continue;

View file

@ -41,7 +41,6 @@ struct cfg_root : cfg::node
cfg::_bool spu_loop_detection{ this, "SPU loop detection", false }; // Try to detect wait loops and trigger thread yield
cfg::_int<0, 6> max_spurs_threads{ this, "Max SPURS Threads", 6 }; // HACK. If less then 6, max number of running SPURS threads in each thread group.
cfg::_enum<spu_block_size_type> spu_block_size{ this, "SPU Block Size", spu_block_size_type::safe };
cfg::_bool spu_accurate_getllar{ this, "Accurate GETLLAR", false, true };
cfg::_bool spu_accurate_dma{ this, "Accurate SPU DMA", false };
cfg::_bool spu_accurate_reservations{ this, "Accurate SPU Reservations", true };
cfg::_bool accurate_cache_line_stores{ this, "Accurate Cache Line Stores", false };

View file

@ -21,7 +21,6 @@ enum class emu_settings_type
MaxLLVMThreads,
LLVMPrecompilation,
EnableTSX,
AccurateGETLLAR,
AccurateSpuDMA,
AccurateClineStores,
AccurateRSXAccess,
@ -213,7 +212,6 @@ inline static const QMap<emu_settings_type, cfg_location> settings_location =
{ emu_settings_type::MaxLLVMThreads, { "Core", "Max LLVM Compile Threads"}},
{ emu_settings_type::LLVMPrecompilation, { "Core", "LLVM Precompilation"}},
{ emu_settings_type::EnableTSX, { "Core", "Enable TSX"}},
{ emu_settings_type::AccurateGETLLAR, { "Core", "Accurate GETLLAR"}},
{ emu_settings_type::AccurateSpuDMA, { "Core", "Accurate SPU DMA"}},
{ emu_settings_type::AccurateClineStores, { "Core", "Accurate Cache Line Stores"}},
{ emu_settings_type::AccurateRSXAccess, { "Core", "Accurate RSX reservation access"}},

View file

@ -1461,9 +1461,6 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> gui_settings, std
SubscribeTooltip(ui->accurateDFMA, tooltips.settings.accurate_dfma);
ui->accurateDFMA->setDisabled(utils::has_fma3() || utils::has_fma4());
m_emu_settings->EnhanceCheckBox(ui->accurateGETLLAR, emu_settings_type::AccurateGETLLAR);
SubscribeTooltip(ui->accurateGETLLAR, tooltips.settings.accurate_getllar);
m_emu_settings->EnhanceCheckBox(ui->accurateRSXAccess, emu_settings_type::AccurateRSXAccess);
SubscribeTooltip(ui->accurateRSXAccess, tooltips.settings.accurate_rsx_access);

View file

@ -2389,13 +2389,6 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="accurateGETLLAR">
<property name="text">
<string>Accurate GETLLAR</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="accurateRSXAccess">
<property name="text">

View file

@ -26,7 +26,6 @@ public:
const QString lib_default_lle = tr("Select to HLE. (LLE by default)");
const QString debug_console_mode = tr("Increases the amount of usable system memory to match a DECR console and more.\nCauses some software to behave differently than on retail hardware.");
const QString accurate_getllar = tr("Accurately processes SPU MFC_GETLLAR operation.");
const QString accurate_rsx_access = tr("Forces RSX pauses on SPU MFC_GETLLAR and SPU MFC_PUTLLUC operations.");
const QString accurate_spu_dma = tr("Accurately processes SPU DMA operations.");
const QString fixup_ppunj = tr("Legacy option. Fixup result vector values in Non-Java Mode in PPU LLVM.\nIf unsure, do not modify this setting.");