mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-03-16 07:20:59 +00:00
GUI Settings: Add MFC Delay Command checkbox
Limited control over "MFC Commands Shuffling Limit" setting.
This commit is contained in:
parent
ebde86b967
commit
5f729d4dbf
@ -47,8 +47,8 @@ struct cfg_root : cfg::node
|
|||||||
cfg::_bool spu_verification{ this, "SPU Verification", true }; // Should be enabled
|
cfg::_bool spu_verification{ this, "SPU Verification", true }; // Should be enabled
|
||||||
cfg::_bool spu_cache{ this, "SPU Cache", true };
|
cfg::_bool spu_cache{ this, "SPU Cache", true };
|
||||||
cfg::_bool spu_prof{ this, "SPU Profiler", false };
|
cfg::_bool spu_prof{ this, "SPU Profiler", false };
|
||||||
cfg::uint<0, 16> mfc_transfers_shuffling{ this, "MFC Transfers Shuffling Max Commands", 0 };
|
cfg::uint<0, 16> mfc_transfers_shuffling{ this, "MFC Commands Shuffling Limit", 0 };
|
||||||
cfg::uint<0, 10000> mfc_transfers_timeout{ this, "MFC Transfers Timeout", 0, true};
|
cfg::uint<0, 10000> mfc_transfers_timeout{ this, "MFC Commands Timeout", 0, true};
|
||||||
cfg::_enum<tsx_usage> enable_TSX{ this, "Enable TSX", has_rtm() ? tsx_usage::enabled : tsx_usage::disabled }; // Enable TSX. Forcing this on Haswell/Broadwell CPUs should be used carefully
|
cfg::_enum<tsx_usage> enable_TSX{ this, "Enable TSX", has_rtm() ? tsx_usage::enabled : tsx_usage::disabled }; // Enable TSX. Forcing this on Haswell/Broadwell CPUs should be used carefully
|
||||||
cfg::_bool spu_accurate_xfloat{ this, "Accurate xfloat", false };
|
cfg::_bool spu_accurate_xfloat{ this, "Accurate xfloat", false };
|
||||||
cfg::_bool spu_approx_xfloat{ this, "Approximate xfloat", true };
|
cfg::_bool spu_approx_xfloat{ this, "Approximate xfloat", true };
|
||||||
|
@ -29,6 +29,7 @@ enum class emu_settings_type
|
|||||||
AccurateRSXAccess,
|
AccurateRSXAccess,
|
||||||
AccurateXFloat,
|
AccurateXFloat,
|
||||||
AccuratePPU128Loop,
|
AccuratePPU128Loop,
|
||||||
|
MFCCommandsShuffling,
|
||||||
NumPPUThreads,
|
NumPPUThreads,
|
||||||
SetDAZandFTZ,
|
SetDAZandFTZ,
|
||||||
SPUBlockSize,
|
SPUBlockSize,
|
||||||
@ -188,6 +189,7 @@ inline static const QMap<emu_settings_type, cfg_location> settings_location =
|
|||||||
{ emu_settings_type::AccurateVectorNaN, { "Core", "PPU LLVM Accurate Vector NaN values"}},
|
{ emu_settings_type::AccurateVectorNaN, { "Core", "PPU LLVM Accurate Vector NaN values"}},
|
||||||
{ emu_settings_type::AccurateRSXAccess, { "Core", "Accurate RSX reservation access"}},
|
{ emu_settings_type::AccurateRSXAccess, { "Core", "Accurate RSX reservation access"}},
|
||||||
{ emu_settings_type::AccurateXFloat, { "Core", "Accurate xfloat"}},
|
{ emu_settings_type::AccurateXFloat, { "Core", "Accurate xfloat"}},
|
||||||
|
{ emu_settings_type::MFCCommandsShuffling, { "Core", "MFC Commands Shuffling Limit"}},
|
||||||
{ emu_settings_type::SetDAZandFTZ, { "Core", "Set DAZ and FTZ"}},
|
{ emu_settings_type::SetDAZandFTZ, { "Core", "Set DAZ and FTZ"}},
|
||||||
{ emu_settings_type::SPUBlockSize, { "Core", "SPU Block Size"}},
|
{ emu_settings_type::SPUBlockSize, { "Core", "SPU Block Size"}},
|
||||||
{ emu_settings_type::SPUCache, { "Core", "SPU Cache"}},
|
{ emu_settings_type::SPUCache, { "Core", "SPU Cache"}},
|
||||||
|
@ -1027,6 +1027,14 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> gui_settings, std
|
|||||||
m_emu_settings->EnhanceCheckBox(ui->disableOnDiskShaderCache, emu_settings_type::DisableOnDiskShaderCache);
|
m_emu_settings->EnhanceCheckBox(ui->disableOnDiskShaderCache, emu_settings_type::DisableOnDiskShaderCache);
|
||||||
SubscribeTooltip(ui->disableOnDiskShaderCache, tooltips.settings.disable_on_disk_shader_cache);
|
SubscribeTooltip(ui->disableOnDiskShaderCache, tooltips.settings.disable_on_disk_shader_cache);
|
||||||
|
|
||||||
|
ui->mfcDelayCommand->setChecked(m_emu_settings->GetSetting(emu_settings_type::MFCCommandsShuffling) == "1");
|
||||||
|
SubscribeTooltip(ui->mfcDelayCommand, tooltips.settings.mfc_delay_command);
|
||||||
|
connect(ui->mfcDelayCommand, &QCheckBox::stateChanged, [&](int val)
|
||||||
|
{
|
||||||
|
const std::string str = val != Qt::Unchecked ? "1" : "0";
|
||||||
|
m_emu_settings->SetSetting(emu_settings_type::MFCCommandsShuffling, str);
|
||||||
|
});
|
||||||
|
|
||||||
// Comboboxes
|
// Comboboxes
|
||||||
|
|
||||||
m_emu_settings->EnhanceComboBox(ui->maxSPURSThreads, emu_settings_type::MaxSPURSThreads, true);
|
m_emu_settings->EnhanceComboBox(ui->maxSPURSThreads, emu_settings_type::MaxSPURSThreads, true);
|
||||||
|
@ -2036,6 +2036,13 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="mfcDelayCommand">
|
||||||
|
<property name="text">
|
||||||
|
<string>Delay each odd MFC Command</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="silenceAllLogs">
|
<widget class="QCheckBox" name="silenceAllLogs">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
@ -85,6 +85,7 @@ public:
|
|||||||
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_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_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("Forces RSX pauses on SPU MFC_GETLLAR and SPU MFC_PUTLLUC operations.");
|
const QString accurate_rsx_access = tr("Forces RSX pauses on SPU MFC_GETLLAR and SPU MFC_PUTLLUC operations.");
|
||||||
|
const QString mfc_delay_command = tr("Forces delaying any odd MFC command, waits for at least 2 pending commands to execute them in a random order.\nMust be used with either SPU interpreters currently.\nSeverely degrades performance! If unsure, don't use this option.");
|
||||||
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 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 renderdoc_compatibility = tr("Enables use of classic OpenGL buffers which allows capturing tools to work with RPCS3 e.g RenderDoc.\nAlso allows vulkan to use debug markers for nicer Renderdoc captures.\nIf unsure, don't use this option.");
|
const QString renderdoc_compatibility = tr("Enables use of classic OpenGL buffers which allows capturing tools to work with RPCS3 e.g RenderDoc.\nAlso allows vulkan to use debug markers for nicer Renderdoc captures.\nIf unsure, don't use this option.");
|
||||||
const QString force_high_pz = tr("Only useful when debugging differences in GPU hardware.\nNot necessary for average users.\nIf unsure, don't use this option.");
|
const QString force_high_pz = tr("Only useful when debugging differences in GPU hardware.\nNot necessary for average users.\nIf unsure, don't use this option.");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user