diff options
| author | 2020-03-12 16:48:43 -0400 | |
|---|---|---|
| committer | 2020-06-27 11:35:48 -0400 | |
| commit | 7020d498c5aef7c1180bfc57031cdd7fbfecdf0f (patch) | |
| tree | f2508e39a02966cdd4d9acda1e14ed93cdc150cd /src/core/hle/kernel/kernel.cpp | |
| parent | General: Fix Stop function (diff) | |
| download | yuzu-7020d498c5aef7c1180bfc57031cdd7fbfecdf0f.tar.gz yuzu-7020d498c5aef7c1180bfc57031cdd7fbfecdf0f.tar.xz yuzu-7020d498c5aef7c1180bfc57031cdd7fbfecdf0f.zip | |
General: Fix microprofile on dynarmic/svc, fix wait tree showing which threads were running.
Diffstat (limited to 'src/core/hle/kernel/kernel.cpp')
| -rw-r--r-- | src/core/hle/kernel/kernel.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp index 24da4367e..d2f5f9bf2 100644 --- a/src/core/hle/kernel/kernel.cpp +++ b/src/core/hle/kernel/kernel.cpp | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | 13 | ||
| 14 | #include "common/assert.h" | 14 | #include "common/assert.h" |
| 15 | #include "common/logging/log.h" | 15 | #include "common/logging/log.h" |
| 16 | #include "common/microprofile.h" | ||
| 16 | #include "common/thread.h" | 17 | #include "common/thread.h" |
| 17 | #include "core/arm/arm_interface.h" | 18 | #include "core/arm/arm_interface.h" |
| 18 | #include "core/arm/exclusive_monitor.h" | 19 | #include "core/arm/exclusive_monitor.h" |
| @@ -41,6 +42,8 @@ | |||
| 41 | #include "core/hle/result.h" | 42 | #include "core/hle/result.h" |
| 42 | #include "core/memory.h" | 43 | #include "core/memory.h" |
| 43 | 44 | ||
| 45 | MICROPROFILE_DEFINE(Kernel_SVC, "Kernel", "SVC", MP_RGB(70, 200, 70)); | ||
| 46 | |||
| 44 | namespace Kernel { | 47 | namespace Kernel { |
| 45 | 48 | ||
| 46 | /** | 49 | /** |
| @@ -408,6 +411,8 @@ struct KernelCore::Impl { | |||
| 408 | bool is_multicore{}; | 411 | bool is_multicore{}; |
| 409 | std::thread::id single_core_thread_id{}; | 412 | std::thread::id single_core_thread_id{}; |
| 410 | 413 | ||
| 414 | std::array<u64, Core::Hardware::NUM_CPU_CORES> svc_ticks{}; | ||
| 415 | |||
| 411 | // System context | 416 | // System context |
| 412 | Core::System& system; | 417 | Core::System& system; |
| 413 | }; | 418 | }; |
| @@ -666,4 +671,14 @@ void KernelCore::ExceptionalExit() { | |||
| 666 | Suspend(true); | 671 | Suspend(true); |
| 667 | } | 672 | } |
| 668 | 673 | ||
| 674 | void KernelCore::EnterSVCProfile() { | ||
| 675 | std::size_t core = impl->GetCurrentHostThreadID(); | ||
| 676 | impl->svc_ticks[core] = MicroProfileEnter(MICROPROFILE_TOKEN(Kernel_SVC)); | ||
| 677 | } | ||
| 678 | |||
| 679 | void KernelCore::ExitSVCProfile() { | ||
| 680 | std::size_t core = impl->GetCurrentHostThreadID(); | ||
| 681 | MicroProfileLeave(MICROPROFILE_TOKEN(Kernel_SVC), impl->svc_ticks[core]); | ||
| 682 | } | ||
| 683 | |||
| 669 | } // namespace Kernel | 684 | } // namespace Kernel |