summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2020-04-23 18:58:41 +0200
committerFernando Sahmkow <fsahmkow27@gmail.com>2020-06-27 17:36:11 +0200
commit71f1c0f9f9aa92200fbc6c173a3305fcb5a0c85d (patch)
treef97dfc365975933a79bd7e06510942270931f9fe
parentCore: Split Microprofile Dynarmic timing per Core (diff)
downloadyuzu-71f1c0f9f9aa92200fbc6c173a3305fcb5a0c85d.tar
yuzu-71f1c0f9f9aa92200fbc6c173a3305fcb5a0c85d.tar.gz
yuzu-71f1c0f9f9aa92200fbc6c173a3305fcb5a0c85d.tar.bz2
yuzu-71f1c0f9f9aa92200fbc6c173a3305fcb5a0c85d.tar.lz
yuzu-71f1c0f9f9aa92200fbc6c173a3305fcb5a0c85d.tar.xz
yuzu-71f1c0f9f9aa92200fbc6c173a3305fcb5a0c85d.tar.zst
yuzu-71f1c0f9f9aa92200fbc6c173a3305fcb5a0c85d.zip
-rw-r--r--src/core/core_timing.cpp2
-rw-r--r--src/tests/core/core_timing.cpp10
2 files changed, 8 insertions, 4 deletions
diff --git a/src/core/core_timing.cpp b/src/core/core_timing.cpp
index 032b29e33..1aa89a1cc 100644
--- a/src/core/core_timing.cpp
+++ b/src/core/core_timing.cpp
@@ -56,6 +56,7 @@ void CoreTiming::ThreadEntry(CoreTiming& instance) {
void CoreTiming::Initialize(std::function<void(void)>&& on_thread_init_) {
on_thread_init = std::move(on_thread_init_);
event_fifo_id = 0;
+ shutting_down = false;
ticks = 0;
const auto empty_timed_callback = [](u64, s64) {};
ev_lost = CreateEvent("_lost_event", empty_timed_callback);
@@ -79,6 +80,7 @@ void CoreTiming::Shutdown() {
void CoreTiming::Pause(bool is_paused) {
paused = is_paused;
+ pause_event.Set();
}
void CoreTiming::SyncPause(bool is_paused) {
diff --git a/src/tests/core/core_timing.cpp b/src/tests/core/core_timing.cpp
index 21a5840fb..5aa339731 100644
--- a/src/tests/core/core_timing.cpp
+++ b/src/tests/core/core_timing.cpp
@@ -16,10 +16,10 @@
namespace {
// Numbers are chosen randomly to make sure the correct one is given.
-static constexpr std::array<u64, 5> CB_IDS{{42, 144, 93, 1026, UINT64_C(0xFFFF7FFFF7FFFF)}};
-static constexpr int MAX_SLICE_LENGTH = 10000; // Copied from CoreTiming internals
-static constexpr std::array<u64, 5> calls_order{{2, 0, 1, 4, 3}};
-static std::array<s64, 5> delays{};
+constexpr std::array<u64, 5> CB_IDS{{42, 144, 93, 1026, UINT64_C(0xFFFF7FFFF7FFFF)}};
+constexpr int MAX_SLICE_LENGTH = 10000; // Copied from CoreTiming internals
+constexpr std::array<u64, 5> calls_order{{2, 0, 1, 4, 3}};
+std::array<s64, 5> delays{};
std::bitset<CB_IDS.size()> callbacks_ran_flags;
u64 expected_callback = 0;
@@ -49,6 +49,8 @@ struct ScopeInit final {
Core::Timing::CoreTiming core_timing;
};
+} // Anonymous namespace
+
TEST_CASE("CoreTiming[BasicOrder]", "[core]") {
ScopeInit guard;
auto& core_timing = guard.core_timing;