diff options
author | David Marcec <dmarcecguzman@gmail.com> | 2019-09-22 08:41:34 +0200 |
---|---|---|
committer | David Marcec <dmarcecguzman@gmail.com> | 2019-09-22 08:41:34 +0200 |
commit | bd1c4ec9a008af9654385ce4f7a96b81a52c9ff6 (patch) | |
tree | b432d1cdfe0c5d40af58717f126c91a5d7fd2ab4 /src/core/hle/service/nvflinger | |
parent | Rebase (diff) | |
download | yuzu-bd1c4ec9a008af9654385ce4f7a96b81a52c9ff6.tar yuzu-bd1c4ec9a008af9654385ce4f7a96b81a52c9ff6.tar.gz yuzu-bd1c4ec9a008af9654385ce4f7a96b81a52c9ff6.tar.bz2 yuzu-bd1c4ec9a008af9654385ce4f7a96b81a52c9ff6.tar.lz yuzu-bd1c4ec9a008af9654385ce4f7a96b81a52c9ff6.tar.xz yuzu-bd1c4ec9a008af9654385ce4f7a96b81a52c9ff6.tar.zst yuzu-bd1c4ec9a008af9654385ce4f7a96b81a52c9ff6.zip |
Diffstat (limited to 'src/core/hle/service/nvflinger')
-rw-r--r-- | src/core/hle/service/nvflinger/nvflinger.cpp | 23 | ||||
-rw-r--r-- | src/core/hle/service/nvflinger/nvflinger.h | 5 |
2 files changed, 13 insertions, 15 deletions
diff --git a/src/core/hle/service/nvflinger/nvflinger.cpp b/src/core/hle/service/nvflinger/nvflinger.cpp index 9217ef040..2e4d707b9 100644 --- a/src/core/hle/service/nvflinger/nvflinger.cpp +++ b/src/core/hle/service/nvflinger/nvflinger.cpp @@ -29,8 +29,7 @@ namespace Service::NVFlinger { constexpr s64 frame_ticks = static_cast<s64>(Core::Timing::BASE_CLOCK_RATE / 60); constexpr s64 frame_ticks_30fps = static_cast<s64>(Core::Timing::BASE_CLOCK_RATE / 30); -NVFlinger::NVFlinger(Core::Timing::CoreTiming& core_timing, Core::System& system) - : core_timing{core_timing}, system(system) { +NVFlinger::NVFlinger(Core::System& system) : system(system) { displays.emplace_back(0, "Default", system); displays.emplace_back(1, "External", system); displays.emplace_back(2, "Edid", system); @@ -38,18 +37,20 @@ NVFlinger::NVFlinger(Core::Timing::CoreTiming& core_timing, Core::System& system displays.emplace_back(4, "Null", system); // Schedule the screen composition events - composition_event = core_timing.RegisterEvent("ScreenComposition", [this](u64 userdata, - s64 cycles_late) { - Compose(); - const auto ticks = Settings::values.force_30fps_mode ? frame_ticks_30fps : GetNextTicks(); - this->core_timing.ScheduleEvent(std::max<s64>(0LL, ticks - cycles_late), composition_event); - }); - - core_timing.ScheduleEvent(frame_ticks, composition_event); + composition_event = system.CoreTiming().RegisterEvent( + "ScreenComposition", [this](u64 userdata, s64 cycles_late) { + Compose(); + const auto ticks = + Settings::values.force_30fps_mode ? frame_ticks_30fps : GetNextTicks(); + this->system.CoreTiming().ScheduleEvent(std::max<s64>(0LL, ticks - cycles_late), + composition_event); + }); + + system.CoreTiming().ScheduleEvent(frame_ticks, composition_event); } NVFlinger::~NVFlinger() { - core_timing.UnscheduleEvent(composition_event, 0); + system.CoreTiming().UnscheduleEvent(composition_event, 0); } void NVFlinger::SetNVDrvInstance(std::shared_ptr<Nvidia::Module> instance) { diff --git a/src/core/hle/service/nvflinger/nvflinger.h b/src/core/hle/service/nvflinger/nvflinger.h index 85aae725c..5d7e3bfb8 100644 --- a/src/core/hle/service/nvflinger/nvflinger.h +++ b/src/core/hle/service/nvflinger/nvflinger.h @@ -38,7 +38,7 @@ class BufferQueue; class NVFlinger final { public: - explicit NVFlinger(Core::Timing::CoreTiming& core_timing, Core::System& system); + explicit NVFlinger(Core::System& system); ~NVFlinger(); /// Sets the NVDrv module instance to use to send buffers to the GPU. @@ -105,9 +105,6 @@ private: /// Event that handles screen composition. Core::Timing::EventType* composition_event; - /// Core timing instance for registering/unregistering the composition event. - Core::Timing::CoreTiming& core_timing; - Core::System& system; }; |