summaryrefslogtreecommitdiff
path: root/src/core/tools/freezer.cpp
diff options
context:
space:
mode:
authorGravatar Narr the Reg2024-01-01 13:56:31 -0600
committerGravatar GitHub2024-01-01 13:56:31 -0600
commitaa9ff2ffc2d9c3c1b7d6f4f6a7170acda7e17e9c (patch)
tree3f7ca8e93b7bc523b8dd357ec43d302fd794b37c /src/core/tools/freezer.cpp
parentMerge pull request #12466 from liamwhite/sh2 (diff)
parentcore_timing: block advance thread while clearing and signal after (diff)
downloadyuzu-aa9ff2ffc2d9c3c1b7d6f4f6a7170acda7e17e9c.tar.gz
yuzu-aa9ff2ffc2d9c3c1b7d6f4f6a7170acda7e17e9c.tar.xz
yuzu-aa9ff2ffc2d9c3c1b7d6f4f6a7170acda7e17e9c.zip
Merge pull request #12454 from liamwhite/ct-stuff
core_timing: minor refactors
Diffstat (limited to 'src/core/tools/freezer.cpp')
-rw-r--r--src/core/tools/freezer.cpp17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/core/tools/freezer.cpp b/src/core/tools/freezer.cpp
index 98ebbbf32..9d42c726e 100644
--- a/src/core/tools/freezer.cpp
+++ b/src/core/tools/freezer.cpp
@@ -51,18 +51,17 @@ void MemoryWriteWidth(Core::Memory::Memory& memory, u32 width, VAddr addr, u64 v
51 51
52Freezer::Freezer(Core::Timing::CoreTiming& core_timing_, Core::Memory::Memory& memory_) 52Freezer::Freezer(Core::Timing::CoreTiming& core_timing_, Core::Memory::Memory& memory_)
53 : core_timing{core_timing_}, memory{memory_} { 53 : core_timing{core_timing_}, memory{memory_} {
54 event = Core::Timing::CreateEvent( 54 event = Core::Timing::CreateEvent("MemoryFreezer::FrameCallback",
55 "MemoryFreezer::FrameCallback", 55 [this](s64 time, std::chrono::nanoseconds ns_late)
56 [this](std::uintptr_t user_data, s64 time, 56 -> std::optional<std::chrono::nanoseconds> {
57 std::chrono::nanoseconds ns_late) -> std::optional<std::chrono::nanoseconds> { 57 FrameCallback(ns_late);
58 FrameCallback(user_data, ns_late); 58 return std::nullopt;
59 return std::nullopt; 59 });
60 });
61 core_timing.ScheduleEvent(memory_freezer_ns, event); 60 core_timing.ScheduleEvent(memory_freezer_ns, event);
62} 61}
63 62
64Freezer::~Freezer() { 63Freezer::~Freezer() {
65 core_timing.UnscheduleEvent(event, 0); 64 core_timing.UnscheduleEvent(event);
66} 65}
67 66
68void Freezer::SetActive(bool is_active) { 67void Freezer::SetActive(bool is_active) {
@@ -159,7 +158,7 @@ Freezer::Entries::const_iterator Freezer::FindEntry(VAddr address) const {
159 [address](const Entry& entry) { return entry.address == address; }); 158 [address](const Entry& entry) { return entry.address == address; });
160} 159}
161 160
162void Freezer::FrameCallback(std::uintptr_t, std::chrono::nanoseconds ns_late) { 161void Freezer::FrameCallback(std::chrono::nanoseconds ns_late) {
163 if (!IsActive()) { 162 if (!IsActive()) {
164 LOG_DEBUG(Common_Memory, "Memory freezer has been deactivated, ending callback events."); 163 LOG_DEBUG(Common_Memory, "Memory freezer has been deactivated, ending callback events.");
165 return; 164 return;