From db4414ca87d6b50dcc61118e02195892829d1607 Mon Sep 17 00:00:00 2001 From: illusion <37698908+illusion0001@users.noreply.github.com> Date: Fri, 15 May 2020 06:43:46 +1100 Subject: [PATCH] GUI followup for https://github.com/RPCS3/rpcs3/pull/8148 --- rpcs3/rpcs3qt/emu_settings_type.h | 2 ++ rpcs3/rpcs3qt/settings_dialog.cpp | 3 +++ rpcs3/rpcs3qt/settings_dialog.ui | 7 +++++++ rpcs3/rpcs3qt/tooltips.h | 1 + 4 files changed, 13 insertions(+) diff --git a/rpcs3/rpcs3qt/emu_settings_type.h b/rpcs3/rpcs3qt/emu_settings_type.h index e67fbcb7d0..29ef73460d 100644 --- a/rpcs3/rpcs3qt/emu_settings_type.h +++ b/rpcs3/rpcs3qt/emu_settings_type.h @@ -23,6 +23,7 @@ enum class emu_settings_type AccurateGETLLAR, AccuratePUTLLUC, AccurateLLVMdfma, + AccurateVectorNaN, AccurateRSXAccess, AccurateXFloat, SetDAZandFTZ, @@ -161,6 +162,7 @@ static const QMap settings_location = { emu_settings_type::AccurateGETLLAR, { "Core", "Accurate GETLLAR"}}, { emu_settings_type::AccuratePUTLLUC, { "Core", "Accurate PUTLLUC"}}, { emu_settings_type::AccurateLLVMdfma, { "Core", "LLVM Accurate DFMA"}}, + { emu_settings_type::AccurateVectorNaN, { "Core", "PPU LLVM Accurate Vector NaN values"}}, { emu_settings_type::AccurateRSXAccess, { "Core", "Accurate RSX reservation access"}}, { emu_settings_type::AccurateXFloat, { "Core", "Accurate xfloat"}}, { emu_settings_type::SetDAZandFTZ, { "Core", "Set DAZ and FTZ"}}, diff --git a/rpcs3/rpcs3qt/settings_dialog.cpp b/rpcs3/rpcs3qt/settings_dialog.cpp index 93331b88ce..db076f979b 100644 --- a/rpcs3/rpcs3qt/settings_dialog.cpp +++ b/rpcs3/rpcs3qt/settings_dialog.cpp @@ -930,6 +930,9 @@ settings_dialog::settings_dialog(std::shared_ptr gui_settings, std SubscribeTooltip(ui->accurateLLVMdfma, tooltips.settings.accurate_llvm_dfma); ui->accurateLLVMdfma->setDisabled(utils::has_fma3() || utils::has_fma4()); + m_emu_settings->EnhanceCheckBox(ui->AccurateVectorNaN, emu_settings_type::AccurateVectorNaN); + SubscribeTooltip(ui->AccurateVectorNaN, tooltips.settings.accurate_vector_nan); + m_emu_settings->EnhanceCheckBox(ui->silenceAllLogs, emu_settings_type::SilenceAllLogs); SubscribeTooltip(ui->silenceAllLogs, tooltips.settings.silence_all_logs); diff --git a/rpcs3/rpcs3qt/settings_dialog.ui b/rpcs3/rpcs3qt/settings_dialog.ui index 58e44b12f0..d7e59aeb0b 100644 --- a/rpcs3/rpcs3qt/settings_dialog.ui +++ b/rpcs3/rpcs3qt/settings_dialog.ui @@ -1799,6 +1799,13 @@ + + + + PPU LLVM Accurate Vector NaNs + + + diff --git a/rpcs3/rpcs3qt/tooltips.h b/rpcs3/rpcs3qt/tooltips.h index a9f23c23dd..ea60761c46 100644 --- a/rpcs3/rpcs3qt/tooltips.h +++ b/rpcs3/rpcs3qt/tooltips.h @@ -79,6 +79,7 @@ public: const QString accurate_getllar = tr("Never use this."); const QString accurate_putlluc = tr("Never use this."); 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)"); const QString accurate_rsx_access = tr("Never use this."); const QString hook_static_functions = tr("Allows to hook some functions like 'memcpy' replacing them with high-level implementations. May do nothing or break things. Experimental."); const QString gl_legacy_buffers = tr("Enables use of classic OpenGL buffers which allows capturing tools to work with RPCS3 e.g RenderDoc.\nIf unsure, don't use this option.");