Merge pull request #9596 from Minty-Meeo/apply-moar-RunAsCPUThread

Apply More Core::RunAsCPUThread
This commit is contained in:
Léo Lam 2021-03-27 01:11:34 +01:00 committed by GitHub
commit c915b780cf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 24 additions and 47 deletions

View file

@ -734,26 +734,14 @@ static std::string GenerateScreenshotName()
void SaveScreenShot() void SaveScreenShot()
{ {
const bool bPaused = GetState() == State::Paused; Core::RunAsCPUThread([] { g_renderer->SaveScreenshot(GenerateScreenshotName()); });
SetState(State::Paused);
g_renderer->SaveScreenshot(GenerateScreenshotName());
if (!bPaused)
SetState(State::Running);
} }
void SaveScreenShot(std::string_view name) void SaveScreenShot(std::string_view name)
{ {
const bool bPaused = GetState() == State::Paused; Core::RunAsCPUThread([&name] {
SetState(State::Paused);
g_renderer->SaveScreenshot(fmt::format("{}{}.png", GenerateScreenshotFolderPath(), name)); g_renderer->SaveScreenshot(fmt::format("{}{}.png", GenerateScreenshotFolderPath(), name));
});
if (!bPaused)
SetState(State::Running);
} }
void RequestRefreshInfo() void RequestRefreshInfo()

View file

@ -131,10 +131,7 @@ void GetProfileResults(Profiler::ProfileStats* prof_stats)
prof_stats->timecost_sum = 0; prof_stats->timecost_sum = 0;
prof_stats->block_stats.clear(); prof_stats->block_stats.clear();
Core::State old_state = Core::GetState(); Core::RunAsCPUThread([&prof_stats] {
if (old_state == Core::State::Running)
Core::SetState(Core::State::Paused);
QueryPerformanceFrequency((LARGE_INTEGER*)&prof_stats->countsPerSec); QueryPerformanceFrequency((LARGE_INTEGER*)&prof_stats->countsPerSec);
g_jit->GetBlockCache()->RunOnBlocks([&prof_stats](const JitBlock& block) { g_jit->GetBlockCache()->RunOnBlocks([&prof_stats](const JitBlock& block) {
const auto& data = block.profile_data; const auto& data = block.profile_data;
@ -149,8 +146,7 @@ void GetProfileResults(Profiler::ProfileStats* prof_stats)
}); });
sort(prof_stats->block_stats.begin(), prof_stats->block_stats.end()); sort(prof_stats->block_stats.begin(), prof_stats->block_stats.end());
if (old_state == Core::State::Running) });
Core::SetState(Core::State::Running);
} }
int GetHostCode(u32* address, const u8** code, u32* code_size) int GetHostCode(u32* address, const u8** code, u32* code_size)

View file

@ -1675,19 +1675,12 @@ void MainWindow::OnStopRecording()
void MainWindow::OnExportRecording() void MainWindow::OnExportRecording()
{ {
bool was_paused = Core::GetState() == Core::State::Paused; Core::RunAsCPUThread([this] {
QString dtm_file = QFileDialog::getSaveFileName(this, tr("Select the Recording File"),
if (!was_paused) QString(), tr("Dolphin TAS Movies (*.dtm)"));
Core::SetState(Core::State::Paused);
QString dtm_file = QFileDialog::getSaveFileName(this, tr("Select the Recording File"), QString(),
tr("Dolphin TAS Movies (*.dtm)"));
if (!dtm_file.isEmpty()) if (!dtm_file.isEmpty())
Movie::SaveRecording(dtm_file.toStdString()); Movie::SaveRecording(dtm_file.toStdString());
});
if (!was_paused)
Core::SetState(Core::State::Running);
} }
void MainWindow::OnActivateChat() void MainWindow::OnActivateChat()