summaryrefslogtreecommitdiff
path: root/src/core/tools/freezer.cpp
diff options
context:
space:
mode:
authorGravatar Lioncash2020-07-15 18:30:06 -0400
committerGravatar Lioncash2020-07-15 18:54:15 -0400
commit8b50c660dfce50a07c2b2aa3c1b6b8642259a944 (patch)
tree798b0427a660bf249311f3a13d96c6df69a6bcb5 /src/core/tools/freezer.cpp
parentMerge pull request #4342 from lioncash/endian (diff)
downloadyuzu-8b50c660dfce50a07c2b2aa3c1b6b8642259a944.tar.gz
yuzu-8b50c660dfce50a07c2b2aa3c1b6b8642259a944.tar.xz
yuzu-8b50c660dfce50a07c2b2aa3c1b6b8642259a944.zip
core_timing: Make use of std::chrono with ScheduleEvent
Diffstat (limited to 'src/core/tools/freezer.cpp')
-rw-r--r--src/core/tools/freezer.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/core/tools/freezer.cpp b/src/core/tools/freezer.cpp
index 8b0c50d11..5dc52d1c1 100644
--- a/src/core/tools/freezer.cpp
+++ b/src/core/tools/freezer.cpp
@@ -14,7 +14,7 @@
14namespace Tools { 14namespace Tools {
15namespace { 15namespace {
16 16
17constexpr s64 MEMORY_FREEZER_TICKS = static_cast<s64>(1000000000 / 60); 17constexpr auto memory_freezer_ns = std::chrono::nanoseconds{1000000000 / 60};
18 18
19u64 MemoryReadWidth(Core::Memory::Memory& memory, u32 width, VAddr addr) { 19u64 MemoryReadWidth(Core::Memory::Memory& memory, u32 width, VAddr addr) {
20 switch (width) { 20 switch (width) {
@@ -58,7 +58,7 @@ Freezer::Freezer(Core::Timing::CoreTiming& core_timing_, Core::Memory::Memory& m
58 event = Core::Timing::CreateEvent( 58 event = Core::Timing::CreateEvent(
59 "MemoryFreezer::FrameCallback", 59 "MemoryFreezer::FrameCallback",
60 [this](u64 userdata, s64 ns_late) { FrameCallback(userdata, ns_late); }); 60 [this](u64 userdata, s64 ns_late) { FrameCallback(userdata, ns_late); });
61 core_timing.ScheduleEvent(MEMORY_FREEZER_TICKS, event); 61 core_timing.ScheduleEvent(memory_freezer_ns, event);
62} 62}
63 63
64Freezer::~Freezer() { 64Freezer::~Freezer() {
@@ -68,7 +68,7 @@ Freezer::~Freezer() {
68void Freezer::SetActive(bool active) { 68void Freezer::SetActive(bool active) {
69 if (!this->active.exchange(active)) { 69 if (!this->active.exchange(active)) {
70 FillEntryReads(); 70 FillEntryReads();
71 core_timing.ScheduleEvent(MEMORY_FREEZER_TICKS, event); 71 core_timing.ScheduleEvent(memory_freezer_ns, event);
72 LOG_DEBUG(Common_Memory, "Memory freezer activated!"); 72 LOG_DEBUG(Common_Memory, "Memory freezer activated!");
73 } else { 73 } else {
74 LOG_DEBUG(Common_Memory, "Memory freezer deactivated!"); 74 LOG_DEBUG(Common_Memory, "Memory freezer deactivated!");
@@ -173,7 +173,8 @@ void Freezer::FrameCallback(u64 userdata, s64 ns_late) {
173 MemoryWriteWidth(memory, entry.width, entry.address, entry.value); 173 MemoryWriteWidth(memory, entry.width, entry.address, entry.value);
174 } 174 }
175 175
176 core_timing.ScheduleEvent(MEMORY_FREEZER_TICKS - ns_late, event); 176 const auto future_ns = memory_freezer_ns - std::chrono::nanoseconds{ns_late};
177 core_timing.ScheduleEvent(future_ns, event);
177} 178}
178 179
179void Freezer::FillEntryReads() { 180void Freezer::FillEntryReads() {