|
|
|
@ -289,10 +289,12 @@ struct System::Impl { |
|
|
|
exit_locked = false; |
|
|
|
exit_requested = false; |
|
|
|
|
|
|
|
#if MICROPROFILE_ENABLED
|
|
|
|
microprofile_cpu[0] = MICROPROFILE_TOKEN(ARM_CPU0); |
|
|
|
microprofile_cpu[1] = MICROPROFILE_TOKEN(ARM_CPU1); |
|
|
|
microprofile_cpu[2] = MICROPROFILE_TOKEN(ARM_CPU2); |
|
|
|
microprofile_cpu[3] = MICROPROFILE_TOKEN(ARM_CPU3); |
|
|
|
#endif
|
|
|
|
|
|
|
|
if (Settings::values.enable_renderdoc_hotkey) { |
|
|
|
renderdoc_api = std::make_unique<Tools::RenderdocAPI>(); |
|
|
|
@ -573,7 +575,9 @@ struct System::Impl { |
|
|
|
std::stop_source stop_event; |
|
|
|
|
|
|
|
std::array<u64, Core::Hardware::NUM_CPU_CORES> dynarmic_ticks{}; |
|
|
|
#if MICROPROFILE_ENABLED
|
|
|
|
std::array<MicroProfileToken, Core::Hardware::NUM_CPU_CORES> microprofile_cpu{}; |
|
|
|
#endif
|
|
|
|
|
|
|
|
std::array<Core::GPUDirtyMemoryManager, Core::Hardware::NUM_CPU_CORES> |
|
|
|
gpu_dirty_memory_managers; |
|
|
|
@ -953,13 +957,17 @@ void System::RegisterHostThread() { |
|
|
|
} |
|
|
|
|
|
|
|
void System::EnterCPUProfile() { |
|
|
|
#if MICROPROFILE_ENABLED
|
|
|
|
std::size_t core = impl->kernel.GetCurrentHostThreadID(); |
|
|
|
impl->dynarmic_ticks[core] = MicroProfileEnter(impl->microprofile_cpu[core]); |
|
|
|
#endif
|
|
|
|
} |
|
|
|
|
|
|
|
void System::ExitCPUProfile() { |
|
|
|
#if MICROPROFILE_ENABLED
|
|
|
|
std::size_t core = impl->kernel.GetCurrentHostThreadID(); |
|
|
|
MicroProfileLeave(impl->microprofile_cpu[core], impl->dynarmic_ticks[core]); |
|
|
|
#endif
|
|
|
|
} |
|
|
|
|
|
|
|
bool System::IsMulticore() const { |
|
|
|
|