diff options
| author | 2020-07-15 19:14:21 -0400 | |
|---|---|---|
| committer | 2020-07-15 19:41:22 -0400 | |
| commit | bef1844a51a37c1c8dc531e67069ef00821ffa9c (patch) | |
| tree | 2e46f404c3f0baf1b854e1bea916c19469fe424a /src/core/tools/freezer.cpp | |
| parent | core_timing: Make use of std::chrono with ScheduleEvent (diff) | |
| download | yuzu-bef1844a51a37c1c8dc531e67069ef00821ffa9c.tar.gz yuzu-bef1844a51a37c1c8dc531e67069ef00821ffa9c.tar.xz yuzu-bef1844a51a37c1c8dc531e67069ef00821ffa9c.zip | |
core_timing: Make TimedCallback take std::chrono::nanoseconds
Enforces our desired time units directly with a concrete type.
Diffstat (limited to 'src/core/tools/freezer.cpp')
| -rw-r--r-- | src/core/tools/freezer.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/core/tools/freezer.cpp b/src/core/tools/freezer.cpp index 5dc52d1c1..27b894b51 100644 --- a/src/core/tools/freezer.cpp +++ b/src/core/tools/freezer.cpp | |||
| @@ -55,9 +55,10 @@ void MemoryWriteWidth(Core::Memory::Memory& memory, u32 width, VAddr addr, u64 v | |||
| 55 | 55 | ||
| 56 | Freezer::Freezer(Core::Timing::CoreTiming& core_timing_, Core::Memory::Memory& memory_) | 56 | Freezer::Freezer(Core::Timing::CoreTiming& core_timing_, Core::Memory::Memory& memory_) |
| 57 | : core_timing{core_timing_}, memory{memory_} { | 57 | : core_timing{core_timing_}, memory{memory_} { |
| 58 | event = Core::Timing::CreateEvent( | 58 | event = Core::Timing::CreateEvent("MemoryFreezer::FrameCallback", |
| 59 | "MemoryFreezer::FrameCallback", | 59 | [this](u64 userdata, std::chrono::nanoseconds ns_late) { |
| 60 | [this](u64 userdata, s64 ns_late) { FrameCallback(userdata, ns_late); }); | 60 | FrameCallback(userdata, ns_late); |
| 61 | }); | ||
| 61 | core_timing.ScheduleEvent(memory_freezer_ns, event); | 62 | core_timing.ScheduleEvent(memory_freezer_ns, event); |
| 62 | } | 63 | } |
| 63 | 64 | ||
| @@ -158,7 +159,7 @@ std::vector<Freezer::Entry> Freezer::GetEntries() const { | |||
| 158 | return entries; | 159 | return entries; |
| 159 | } | 160 | } |
| 160 | 161 | ||
| 161 | void Freezer::FrameCallback(u64 userdata, s64 ns_late) { | 162 | void Freezer::FrameCallback(u64, std::chrono::nanoseconds ns_late) { |
| 162 | if (!IsActive()) { | 163 | if (!IsActive()) { |
| 163 | LOG_DEBUG(Common_Memory, "Memory freezer has been deactivated, ending callback events."); | 164 | LOG_DEBUG(Common_Memory, "Memory freezer has been deactivated, ending callback events."); |
| 164 | return; | 165 | return; |
| @@ -173,8 +174,7 @@ void Freezer::FrameCallback(u64 userdata, s64 ns_late) { | |||
| 173 | MemoryWriteWidth(memory, entry.width, entry.address, entry.value); | 174 | MemoryWriteWidth(memory, entry.width, entry.address, entry.value); |
| 174 | } | 175 | } |
| 175 | 176 | ||
| 176 | const auto future_ns = memory_freezer_ns - std::chrono::nanoseconds{ns_late}; | 177 | core_timing.ScheduleEvent(memory_freezer_ns - ns_late, event); |
| 177 | core_timing.ScheduleEvent(future_ns, event); | ||
| 178 | } | 178 | } |
| 179 | 179 | ||
| 180 | void Freezer::FillEntryReads() { | 180 | void Freezer::FillEntryReads() { |