diff --git a/rpcs3/Emu/Cell/SPUThread.cpp b/rpcs3/Emu/Cell/SPUThread.cpp index cd55d636cf..f33074b39c 100644 --- a/rpcs3/Emu/Cell/SPUThread.cpp +++ b/rpcs3/Emu/Cell/SPUThread.cpp @@ -1891,28 +1891,20 @@ void spu_thread::do_putlluc(const spu_mfc_cmd& args) *reinterpret_cast*>(&data) += 0; - if (g_cfg.core.spu_accurate_putlluc) + const auto render = get_rsx_if_needs_res_pause(addr); + + if (render) render->pause(); + + auto& super_data = *vm::get_super_ptr(addr); { - const auto render = get_rsx_if_needs_res_pause(addr); - - if (render) render->pause(); - - auto& super_data = *vm::get_super_ptr(addr); - { - // Full lock (heavyweight) - // TODO: vm::check_addr - vm::writer_lock lock(addr); - mov_rdata(super_data, to_write); - res.release(time0 + 128); - } - - if (render) render->unpause(); - } - else - { - mov_rdata(data, to_write); + // Full lock (heavyweight) + // TODO: vm::check_addr + vm::writer_lock lock(addr); + mov_rdata(super_data, to_write); res.release(time0 + 128); } + + if (render) render->unpause(); } vm::reservation_notifier(addr, 128).notify_all(); diff --git a/rpcs3/Emu/system_config.h b/rpcs3/Emu/system_config.h index 4fc940ce9e..4362da0e5e 100644 --- a/rpcs3/Emu/system_config.h +++ b/rpcs3/Emu/system_config.h @@ -43,7 +43,6 @@ struct cfg_root : cfg::node 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{ this, "SPU Block Size", spu_block_size_type::safe }; cfg::_bool spu_accurate_getllar{ this, "Accurate GETLLAR", false, true }; - cfg::_bool spu_accurate_putlluc{ this, "Accurate PUTLLUC", false, true }; cfg::_bool spu_accurate_dma{ this, "Accurate SPU DMA", false }; cfg::_bool rsx_accurate_res_access{this, "Accurate RSX reservation access", false, true}; cfg::_bool spu_verification{ this, "SPU Verification", true }; // Should be enabled diff --git a/rpcs3/rpcs3qt/emu_settings_type.h b/rpcs3/rpcs3qt/emu_settings_type.h index 1a1dd12b9e..34361b6d76 100644 --- a/rpcs3/rpcs3qt/emu_settings_type.h +++ b/rpcs3/rpcs3qt/emu_settings_type.h @@ -21,7 +21,6 @@ enum class emu_settings_type MaxLLVMThreads, EnableTSX, AccurateGETLLAR, - AccuratePUTLLUC, AccurateSpuDMA, AccurateLLVMdfma, AccurateVectorNaN, @@ -162,7 +161,6 @@ static const QMap settings_location = { emu_settings_type::MaxLLVMThreads, { "Core", "Max LLVM Compile Threads"}}, { emu_settings_type::EnableTSX, { "Core", "Enable TSX"}}, { emu_settings_type::AccurateGETLLAR, { "Core", "Accurate GETLLAR"}}, - { emu_settings_type::AccuratePUTLLUC, { "Core", "Accurate PUTLLUC"}}, { emu_settings_type::AccurateSpuDMA, { "Core", "Accurate SPU DMA"}}, { emu_settings_type::AccurateLLVMdfma, { "Core", "LLVM Accurate DFMA"}}, { emu_settings_type::AccurateVectorNaN, { "Core", "PPU LLVM Accurate Vector NaN values"}}, diff --git a/rpcs3/rpcs3qt/settings_dialog.cpp b/rpcs3/rpcs3qt/settings_dialog.cpp index 9eb500257c..05f48658d3 100644 --- a/rpcs3/rpcs3qt/settings_dialog.cpp +++ b/rpcs3/rpcs3qt/settings_dialog.cpp @@ -1724,9 +1724,6 @@ settings_dialog::settings_dialog(std::shared_ptr gui_settings, std m_emu_settings->EnhanceCheckBox(ui->accurateGETLLAR, emu_settings_type::AccurateGETLLAR); SubscribeTooltip(ui->accurateGETLLAR, tooltips.settings.accurate_getllar); - m_emu_settings->EnhanceCheckBox(ui->accuratePUTLLUC, emu_settings_type::AccuratePUTLLUC); - SubscribeTooltip(ui->accuratePUTLLUC, tooltips.settings.accurate_putlluc); - m_emu_settings->EnhanceCheckBox(ui->accurateSpuDMA, emu_settings_type::AccurateSpuDMA); SubscribeTooltip(ui->accurateSpuDMA, tooltips.settings.accurate_spu_dma); diff --git a/rpcs3/rpcs3qt/settings_dialog.ui b/rpcs3/rpcs3qt/settings_dialog.ui index 7489765171..882f374591 100644 --- a/rpcs3/rpcs3qt/settings_dialog.ui +++ b/rpcs3/rpcs3qt/settings_dialog.ui @@ -3442,13 +3442,6 @@ - - - - Accurate PUTLLUC - - - diff --git a/rpcs3/rpcs3qt/tooltips.h b/rpcs3/rpcs3qt/tooltips.h index daac02d30d..55dc635647 100644 --- a/rpcs3/rpcs3qt/tooltips.h +++ b/rpcs3/rpcs3qt/tooltips.h @@ -77,7 +77,6 @@ public: const QString spu_debug = tr("Creates SPU logs.\nOnly useful to developers.\nNever use this."); const QString set_daz_and_ftz = tr("Sets special MXCSR flags to debug errors in SSE operations.\nOnly used in PPU thread when it's not precise.\nOnly useful to developers.\nNever use this."); const QString accurate_getllar = tr("Accurately processes SPU MFC_GETLLAR operation."); - const QString accurate_putlluc = tr("Accurately processes SPU MFC_PUTLLUC operation."); const QString accurate_spu_dma = tr("Accurately processes SPU DMA operations."); const QString accurate_llvm_dfma = tr("Provides extra accuracy on FMA instructions at the cost of performance.\nWhile disabling it might give a decent performance boost if your CPU doesn't support FMA, it may also introduce subtle bugs that otherwise do not occur.\nYou can't disable it if your CPU supports FMA."); const QString accurate_vector_nan = tr("Forces the floating point NaN (Not A Number) values outputted from PPU vector instructions to be accurate to the real hardware. (0x7FC00000)");