Merge pull request #12380 from JosJuice/large-entry-points-map
Add "large entry points map" setting
This commit is contained in:
commit
003872d7dd
|
@ -15,6 +15,7 @@ enum class BooleanSetting(
|
|||
MAIN_DSP_HLE(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "DSPHLE", true),
|
||||
MAIN_FASTMEM(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "Fastmem", true),
|
||||
MAIN_FASTMEM_ARENA(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "FastmemArena", true),
|
||||
MAIN_LARGE_ENTRY_POINTS_MAP(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "LargeEntryPointsMap", true),
|
||||
MAIN_CPU_THREAD(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "CPUThread", true),
|
||||
MAIN_SYNC_ON_SKIP_IDLE(
|
||||
Settings.FILE_DOLPHIN,
|
||||
|
@ -899,6 +900,7 @@ enum class BooleanSetting(
|
|||
private val NOT_RUNTIME_EDITABLE_ARRAY = arrayOf(
|
||||
MAIN_DSP_HLE,
|
||||
MAIN_FASTMEM_ARENA,
|
||||
MAIN_LARGE_ENTRY_POINTS_MAP,
|
||||
MAIN_CPU_THREAD,
|
||||
MAIN_ENABLE_CHEATS,
|
||||
MAIN_OVERRIDE_REGION_SETTINGS,
|
||||
|
|
|
@ -1949,6 +1949,14 @@ class SettingsFragmentPresenter(
|
|||
0
|
||||
)
|
||||
)
|
||||
sl.add(
|
||||
InvertedSwitchSetting(
|
||||
context,
|
||||
BooleanSetting.MAIN_LARGE_ENTRY_POINTS_MAP,
|
||||
R.string.debug_large_entry_points_map,
|
||||
0
|
||||
)
|
||||
)
|
||||
|
||||
sl.add(HeaderSetting(context, R.string.debug_jit_header, 0))
|
||||
sl.add(
|
||||
|
|
|
@ -401,6 +401,7 @@
|
|||
<string name="debug_warning">Warning: Debug settings will slow emulation</string>
|
||||
<string name="debug_fastmem">Disable Fastmem</string>
|
||||
<string name="debug_fastmem_arena">Disable Fastmem Arena</string>
|
||||
<string name="debug_large_entry_points_map">Disable Large Entry Points Map</string>
|
||||
<string name="debug_jit_header">Jit</string>
|
||||
<string name="debug_jitoff">Jit Disabled</string>
|
||||
<string name="debug_jitloadstoreoff">Jit Load Store Disabled</string>
|
||||
|
|
|
@ -40,6 +40,7 @@ const Info<PowerPC::CPUCore> MAIN_CPU_CORE{{System::Main, "Core", "CPUCore"},
|
|||
const Info<bool> MAIN_JIT_FOLLOW_BRANCH{{System::Main, "Core", "JITFollowBranch"}, true};
|
||||
const Info<bool> MAIN_FASTMEM{{System::Main, "Core", "Fastmem"}, true};
|
||||
const Info<bool> MAIN_FASTMEM_ARENA{{System::Main, "Core", "FastmemArena"}, true};
|
||||
const Info<bool> MAIN_LARGE_ENTRY_POINTS_MAP{{System::Main, "Core", "LargeEntryPointsMap"}, true};
|
||||
const Info<bool> MAIN_ACCURATE_CPU_CACHE{{System::Main, "Core", "AccurateCPUCache"}, false};
|
||||
const Info<bool> MAIN_DSP_HLE{{System::Main, "Core", "DSPHLE"}, true};
|
||||
const Info<int> MAIN_MAX_FALLBACK{{System::Main, "Core", "MaxFallback"}, 100};
|
||||
|
|
|
@ -57,6 +57,7 @@ extern const Info<PowerPC::CPUCore> MAIN_CPU_CORE;
|
|||
extern const Info<bool> MAIN_JIT_FOLLOW_BRANCH;
|
||||
extern const Info<bool> MAIN_FASTMEM;
|
||||
extern const Info<bool> MAIN_FASTMEM_ARENA;
|
||||
extern const Info<bool> MAIN_LARGE_ENTRY_POINTS_MAP;
|
||||
extern const Info<bool> MAIN_ACCURATE_CPU_CACHE;
|
||||
// Should really be in the DSP section, but we're kind of stuck with bad decisions made in the past.
|
||||
extern const Info<bool> MAIN_DSP_HLE;
|
||||
|
|
|
@ -42,10 +42,10 @@ void JitBaseBlockCache::Init()
|
|||
{
|
||||
Common::JitRegister::Init(Config::Get(Config::MAIN_PERF_MAP_DIR));
|
||||
|
||||
#ifdef _ARCH_64
|
||||
m_entry_points_ptr = reinterpret_cast<u8**>(m_entry_points_arena.Create(FAST_BLOCK_MAP_SIZE));
|
||||
#else
|
||||
m_entry_points_ptr = nullptr;
|
||||
#ifdef _ARCH_64
|
||||
if (Config::Get(Config::MAIN_LARGE_ENTRY_POINTS_MAP))
|
||||
m_entry_points_ptr = reinterpret_cast<u8**>(m_entry_points_arena.Create(FAST_BLOCK_MAP_SIZE));
|
||||
#endif
|
||||
|
||||
Clear();
|
||||
|
|
|
@ -153,6 +153,7 @@ void MenuBar::OnEmulationStateChanged(Core::State state)
|
|||
m_jit_block_linking->setEnabled(!running);
|
||||
m_jit_disable_cache->setEnabled(!running);
|
||||
m_jit_disable_fastmem_arena->setEnabled(!running);
|
||||
m_jit_disable_large_entry_points_map->setEnabled(!running);
|
||||
m_jit_clear_cache->setEnabled(running);
|
||||
m_jit_log_coverage->setEnabled(!running);
|
||||
m_jit_search_instruction->setEnabled(running);
|
||||
|
@ -867,6 +868,14 @@ void MenuBar::AddJITMenu()
|
|||
connect(m_jit_disable_fastmem_arena, &QAction::toggled,
|
||||
[](bool enabled) { Config::SetBaseOrCurrent(Config::MAIN_FASTMEM_ARENA, !enabled); });
|
||||
|
||||
m_jit_disable_large_entry_points_map = m_jit->addAction(tr("Disable Large Entry Points Map"));
|
||||
m_jit_disable_large_entry_points_map->setCheckable(true);
|
||||
m_jit_disable_large_entry_points_map->setChecked(
|
||||
!Config::Get(Config::MAIN_LARGE_ENTRY_POINTS_MAP));
|
||||
connect(m_jit_disable_large_entry_points_map, &QAction::toggled, [](bool enabled) {
|
||||
Config::SetBaseOrCurrent(Config::MAIN_LARGE_ENTRY_POINTS_MAP, !enabled);
|
||||
});
|
||||
|
||||
m_jit_clear_cache = m_jit->addAction(tr("Clear Cache"), this, &MenuBar::ClearCache);
|
||||
|
||||
m_jit->addSeparator();
|
||||
|
|
|
@ -265,6 +265,7 @@ private:
|
|||
QAction* m_jit_disable_cache;
|
||||
QAction* m_jit_disable_fastmem;
|
||||
QAction* m_jit_disable_fastmem_arena;
|
||||
QAction* m_jit_disable_large_entry_points_map;
|
||||
QAction* m_jit_clear_cache;
|
||||
QAction* m_jit_log_coverage;
|
||||
QAction* m_jit_search_instruction;
|
||||
|
|
Loading…
Reference in New Issue