Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge pull request #9596 from Minty-Meeo/apply-moar-RunAsCPUThread
Apply More Core::RunAsCPUThread
  • Loading branch information
leoetlino committed Mar 27, 2021
2 parents cd6ee13 + db7f3f8 commit c915b78
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 48 deletions.
20 changes: 4 additions & 16 deletions Source/Core/Core/Core.cpp
Expand Up @@ -734,26 +734,14 @@ static std::string GenerateScreenshotName()

void SaveScreenShot()
{
const bool bPaused = GetState() == State::Paused;

SetState(State::Paused);

g_renderer->SaveScreenshot(GenerateScreenshotName());

if (!bPaused)
SetState(State::Running);
Core::RunAsCPUThread([] { g_renderer->SaveScreenshot(GenerateScreenshotName()); });
}

void SaveScreenShot(std::string_view name)
{
const bool bPaused = GetState() == State::Paused;

SetState(State::Paused);

g_renderer->SaveScreenshot(fmt::format("{}{}.png", GenerateScreenshotFolderPath(), name));

if (!bPaused)
SetState(State::Running);
Core::RunAsCPUThread([&name] {
g_renderer->SaveScreenshot(fmt::format("{}{}.png", GenerateScreenshotFolderPath(), name));
});
}

void RequestRefreshInfo()
Expand Down
34 changes: 15 additions & 19 deletions Source/Core/Core/PowerPC/JitInterface.cpp
Expand Up @@ -131,26 +131,22 @@ void GetProfileResults(Profiler::ProfileStats* prof_stats)
prof_stats->timecost_sum = 0;
prof_stats->block_stats.clear();

Core::State old_state = Core::GetState();
if (old_state == Core::State::Running)
Core::SetState(Core::State::Paused);

QueryPerformanceFrequency((LARGE_INTEGER*)&prof_stats->countsPerSec);
g_jit->GetBlockCache()->RunOnBlocks([&prof_stats](const JitBlock& block) {
const auto& data = block.profile_data;
u64 cost = data.downcountCounter;
u64 timecost = data.ticCounter;
// Todo: tweak.
if (data.runCount >= 1)
prof_stats->block_stats.emplace_back(block.effectiveAddress, cost, timecost, data.runCount,
block.codeSize);
prof_stats->cost_sum += cost;
prof_stats->timecost_sum += timecost;
Core::RunAsCPUThread([&prof_stats] {
QueryPerformanceFrequency((LARGE_INTEGER*)&prof_stats->countsPerSec);
g_jit->GetBlockCache()->RunOnBlocks([&prof_stats](const JitBlock& block) {
const auto& data = block.profile_data;
u64 cost = data.downcountCounter;
u64 timecost = data.ticCounter;
// Todo: tweak.
if (data.runCount >= 1)
prof_stats->block_stats.emplace_back(block.effectiveAddress, cost, timecost, data.runCount,
block.codeSize);
prof_stats->cost_sum += cost;
prof_stats->timecost_sum += timecost;
});

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)
Expand Down
19 changes: 6 additions & 13 deletions Source/Core/DolphinQt/MainWindow.cpp
Expand Up @@ -1675,19 +1675,12 @@ void MainWindow::OnStopRecording()

void MainWindow::OnExportRecording()
{
bool was_paused = Core::GetState() == Core::State::Paused;

if (!was_paused)
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())
Movie::SaveRecording(dtm_file.toStdString());

if (!was_paused)
Core::SetState(Core::State::Running);
Core::RunAsCPUThread([this] {
QString dtm_file = QFileDialog::getSaveFileName(this, tr("Select the Recording File"),
QString(), tr("Dolphin TAS Movies (*.dtm)"));
if (!dtm_file.isEmpty())
Movie::SaveRecording(dtm_file.toStdString());
});
}

void MainWindow::OnActivateChat()
Expand Down

0 comments on commit c915b78

Please sign in to comment.