diff options
| author | 2020-07-15 18:30:06 -0400 | |
|---|---|---|
| committer | 2020-07-15 18:54:15 -0400 | |
| commit | 8b50c660dfce50a07c2b2aa3c1b6b8642259a944 (patch) | |
| tree | 798b0427a660bf249311f3a13d96c6df69a6bcb5 /src/core/tools/freezer.cpp | |
| parent | Merge pull request #4342 from lioncash/endian (diff) | |
| download | yuzu-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.cpp | 9 |
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 @@ | |||
| 14 | namespace Tools { | 14 | namespace Tools { |
| 15 | namespace { | 15 | namespace { |
| 16 | 16 | ||
| 17 | constexpr s64 MEMORY_FREEZER_TICKS = static_cast<s64>(1000000000 / 60); | 17 | constexpr auto memory_freezer_ns = std::chrono::nanoseconds{1000000000 / 60}; |
| 18 | 18 | ||
| 19 | u64 MemoryReadWidth(Core::Memory::Memory& memory, u32 width, VAddr addr) { | 19 | u64 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 | ||
| 64 | Freezer::~Freezer() { | 64 | Freezer::~Freezer() { |
| @@ -68,7 +68,7 @@ Freezer::~Freezer() { | |||
| 68 | void Freezer::SetActive(bool active) { | 68 | void 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 | ||
| 179 | void Freezer::FillEntryReads() { | 180 | void Freezer::FillEntryReads() { |