Use CLI argument for Linux perf JIT support
This commit is contained in:
parent
9722ae2a5d
commit
5b9aeaa686
|
@ -5,7 +5,6 @@
|
||||||
#include <cinttypes>
|
#include <cinttypes>
|
||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
#include <cstdlib>
|
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
@ -13,6 +12,7 @@
|
||||||
#include "Common/FileUtil.h"
|
#include "Common/FileUtil.h"
|
||||||
#include "Common/JitRegister.h"
|
#include "Common/JitRegister.h"
|
||||||
#include "Common/StringUtil.h"
|
#include "Common/StringUtil.h"
|
||||||
|
#include "Core/ConfigManager.h"
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#include <process.h>
|
#include <process.h>
|
||||||
|
@ -45,10 +45,10 @@ void Init()
|
||||||
s_agent = op_open_agent();
|
s_agent = op_open_agent();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char* perf_dir = getenv("DOLPHIN_PERF_DIR");
|
const std::string& perf_dir = SConfig::GetInstance().m_LocalCoreStartupParameter.m_perfDir;
|
||||||
if (perf_dir && perf_dir[0])
|
if (!perf_dir.empty())
|
||||||
{
|
{
|
||||||
std::string filename = StringFromFormat("%s/perf-%d.map", perf_dir, getpid());
|
std::string filename = StringFromFormat("%s/perf-%d.map", perf_dir.data(), getpid());
|
||||||
s_perf_map_file.Open(filename, "w");
|
s_perf_map_file.Open(filename, "w");
|
||||||
// Disable buffering in order to avoid missing some mappings
|
// Disable buffering in order to avoid missing some mappings
|
||||||
// if the event of a crash:
|
// if the event of a crash:
|
||||||
|
|
|
@ -243,6 +243,8 @@ struct SCoreStartupParameter
|
||||||
std::string m_strGameIniDefaultRevisionSpecific;
|
std::string m_strGameIniDefaultRevisionSpecific;
|
||||||
std::string m_strGameIniLocal;
|
std::string m_strGameIniLocal;
|
||||||
|
|
||||||
|
std::string m_perfDir;
|
||||||
|
|
||||||
// Constructor just calls LoadDefaults
|
// Constructor just calls LoadDefaults
|
||||||
SCoreStartupParameter();
|
SCoreStartupParameter();
|
||||||
|
|
||||||
|
|
|
@ -142,10 +142,12 @@ bool DolphinApp::OnInit()
|
||||||
bool UseLogger = false;
|
bool UseLogger = false;
|
||||||
bool selectVideoBackend = false;
|
bool selectVideoBackend = false;
|
||||||
bool selectAudioEmulation = false;
|
bool selectAudioEmulation = false;
|
||||||
|
bool selectPerfDir = false;
|
||||||
|
|
||||||
wxString videoBackendName;
|
wxString videoBackendName;
|
||||||
wxString audioEmulationName;
|
wxString audioEmulationName;
|
||||||
wxString userPath;
|
wxString userPath;
|
||||||
|
wxString perfDir;
|
||||||
|
|
||||||
#if wxUSE_CMDLINE_PARSER // Parse command lines
|
#if wxUSE_CMDLINE_PARSER // Parse command lines
|
||||||
wxCmdLineEntryDesc cmdLineDesc[] =
|
wxCmdLineEntryDesc cmdLineDesc[] =
|
||||||
|
@ -195,6 +197,11 @@ bool DolphinApp::OnInit()
|
||||||
"User folder path",
|
"User folder path",
|
||||||
wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL
|
wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
wxCMD_LINE_OPTION, "P", "perf_dir",
|
||||||
|
"Directory for Lionux perf perf-$pid.map file",
|
||||||
|
wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL
|
||||||
|
},
|
||||||
{
|
{
|
||||||
wxCMD_LINE_NONE, nullptr, nullptr, nullptr, wxCMD_LINE_VAL_NONE, 0
|
wxCMD_LINE_NONE, nullptr, nullptr, nullptr, wxCMD_LINE_VAL_NONE, 0
|
||||||
}
|
}
|
||||||
|
@ -219,6 +226,7 @@ bool DolphinApp::OnInit()
|
||||||
BatchMode = parser.Found("batch");
|
BatchMode = parser.Found("batch");
|
||||||
selectVideoBackend = parser.Found("video_backend", &videoBackendName);
|
selectVideoBackend = parser.Found("video_backend", &videoBackendName);
|
||||||
selectAudioEmulation = parser.Found("audio_emulation", &audioEmulationName);
|
selectAudioEmulation = parser.Found("audio_emulation", &audioEmulationName);
|
||||||
|
selectPerfDir = parser.Found("perf_dir", &perfDir);
|
||||||
playMovie = parser.Found("movie", &movieFile);
|
playMovie = parser.Found("movie", &movieFile);
|
||||||
|
|
||||||
if (parser.Found("user", &userPath))
|
if (parser.Found("user", &userPath))
|
||||||
|
@ -255,6 +263,12 @@ bool DolphinApp::OnInit()
|
||||||
UICommon::CreateDirectories();
|
UICommon::CreateDirectories();
|
||||||
UICommon::Init();
|
UICommon::Init();
|
||||||
|
|
||||||
|
if (selectPerfDir)
|
||||||
|
{
|
||||||
|
SConfig::GetInstance().m_LocalCoreStartupParameter.m_perfDir =
|
||||||
|
WxStrToStr(perfDir);
|
||||||
|
}
|
||||||
|
|
||||||
if (selectVideoBackend && videoBackendName != wxEmptyString)
|
if (selectVideoBackend && videoBackendName != wxEmptyString)
|
||||||
SConfig::GetInstance().m_LocalCoreStartupParameter.m_strVideoBackend =
|
SConfig::GetInstance().m_LocalCoreStartupParameter.m_strVideoBackend =
|
||||||
WxStrToStr(videoBackendName);
|
WxStrToStr(videoBackendName);
|
||||||
|
|
Loading…
Reference in New Issue