diff options
author | bunnei <bunneidev@gmail.com> | 2018-04-30 16:15:27 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-30 16:15:27 +0200 |
commit | f362cf46eed346db79c15ca195d652dff8c48c21 (patch) | |
tree | ed7367dd74a937809d9501b2d848e8e981b538ba | |
parent | Merge pull request #424 from lioncash/string (diff) | |
parent | core_timing: Namespace all functions and constants in core_timing's header (diff) | |
download | yuzu-f362cf46eed346db79c15ca195d652dff8c48c21.tar yuzu-f362cf46eed346db79c15ca195d652dff8c48c21.tar.gz yuzu-f362cf46eed346db79c15ca195d652dff8c48c21.tar.bz2 yuzu-f362cf46eed346db79c15ca195d652dff8c48c21.tar.lz yuzu-f362cf46eed346db79c15ca195d652dff8c48c21.tar.xz yuzu-f362cf46eed346db79c15ca195d652dff8c48c21.tar.zst yuzu-f362cf46eed346db79c15ca195d652dff8c48c21.zip |
-rw-r--r-- | src/core/core_timing.h | 4 | ||||
-rw-r--r-- | src/core/hle/kernel/thread.cpp | 3 | ||||
-rw-r--r-- | src/core/hle/kernel/timer.cpp | 5 | ||||
-rw-r--r-- | src/core/hle/service/audio/audout_u.cpp | 2 | ||||
-rw-r--r-- | src/core/hle/service/audio/audren_u.cpp | 2 | ||||
-rw-r--r-- | src/core/hle/service/hid/hid.cpp | 6 | ||||
-rw-r--r-- | src/core/hle/service/nvflinger/nvflinger.cpp | 2 | ||||
-rw-r--r-- | src/core/hle/service/time/time.cpp | 3 | ||||
-rw-r--r-- | src/core/hle/shared_page.cpp | 5 |
9 files changed, 18 insertions, 14 deletions
diff --git a/src/core/core_timing.h b/src/core/core_timing.h index 26e4b1134..9d3c1d05c 100644 --- a/src/core/core_timing.h +++ b/src/core/core_timing.h @@ -23,6 +23,8 @@ #include "common/common_types.h" #include "common/logging/log.h" +namespace CoreTiming { + // The below clock rate is based on Switch's clockspeed being widely known as 1.020GHz // The exact value used is of course unverified. constexpr u64 BASE_CLOCK_RATE = 1019215872; // Switch clock speed is 1020MHz un/docked @@ -117,8 +119,6 @@ inline u64 cyclesToMs(s64 cycles) { return cycles * 1000 / BASE_CLOCK_RATE; } -namespace CoreTiming { - /** * CoreTiming begins at the boundary of timing slice -1. An initial call to Advance() is * required to end slice -1 and start slice 0 before the first cycle of code is executed. diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp index 63790ea00..1bd5d9ebf 100644 --- a/src/core/hle/kernel/thread.cpp +++ b/src/core/hle/kernel/thread.cpp @@ -146,7 +146,8 @@ void Thread::WakeAfterDelay(s64 nanoseconds) { if (nanoseconds == -1) return; - CoreTiming::ScheduleEvent(nsToCycles(nanoseconds), ThreadWakeupEventType, callback_handle); + CoreTiming::ScheduleEvent(CoreTiming::nsToCycles(nanoseconds), ThreadWakeupEventType, + callback_handle); } void Thread::CancelWakeupTimer() { diff --git a/src/core/hle/kernel/timer.cpp b/src/core/hle/kernel/timer.cpp index ad58bf043..661356a97 100644 --- a/src/core/hle/kernel/timer.cpp +++ b/src/core/hle/kernel/timer.cpp @@ -57,7 +57,8 @@ void Timer::Set(s64 initial, s64 interval) { // Immediately invoke the callback Signal(0); } else { - CoreTiming::ScheduleEvent(nsToCycles(initial), timer_callback_event_type, callback_handle); + CoreTiming::ScheduleEvent(CoreTiming::nsToCycles(initial), timer_callback_event_type, + callback_handle); } } @@ -86,7 +87,7 @@ void Timer::Signal(int cycles_late) { if (interval_delay != 0) { // Reschedule the timer with the interval delay - CoreTiming::ScheduleEvent(nsToCycles(interval_delay) - cycles_late, + CoreTiming::ScheduleEvent(CoreTiming::nsToCycles(interval_delay) - cycles_late, timer_callback_event_type, callback_handle); } } diff --git a/src/core/hle/service/audio/audout_u.cpp b/src/core/hle/service/audio/audout_u.cpp index 6297dc450..fa3728672 100644 --- a/src/core/hle/service/audio/audout_u.cpp +++ b/src/core/hle/service/audio/audout_u.cpp @@ -18,7 +18,7 @@ constexpr u32 sample_rate{48000}; /// to more audio channels (probably when Docked I guess) constexpr u32 audio_channels{2}; /// TODO(st4rk): find a proper value for the audio_ticks -constexpr u64 audio_ticks{static_cast<u64>(BASE_CLOCK_RATE / 500)}; +constexpr u64 audio_ticks{static_cast<u64>(CoreTiming::BASE_CLOCK_RATE / 500)}; class IAudioOut final : public ServiceFramework<IAudioOut> { public: diff --git a/src/core/hle/service/audio/audren_u.cpp b/src/core/hle/service/audio/audren_u.cpp index 291885db8..0d6eb1d51 100644 --- a/src/core/hle/service/audio/audren_u.cpp +++ b/src/core/hle/service/audio/audren_u.cpp @@ -12,7 +12,7 @@ namespace Service::Audio { /// TODO(bunnei): Find a proper value for the audio_ticks -constexpr u64 audio_ticks{static_cast<u64>(BASE_CLOCK_RATE / 200)}; +constexpr u64 audio_ticks{static_cast<u64>(CoreTiming::BASE_CLOCK_RATE / 200)}; class IAudioRenderer final : public ServiceFramework<IAudioRenderer> { public: diff --git a/src/core/hle/service/hid/hid.cpp b/src/core/hle/service/hid/hid.cpp index 736180b63..dc7ff5c31 100644 --- a/src/core/hle/service/hid/hid.cpp +++ b/src/core/hle/service/hid/hid.cpp @@ -18,9 +18,9 @@ namespace Service::HID { // Updating period for each HID device. // TODO(shinyquagsire23): These need better values. -constexpr u64 pad_update_ticks = BASE_CLOCK_RATE / 10000; -constexpr u64 accelerometer_update_ticks = BASE_CLOCK_RATE / 10000; -constexpr u64 gyroscope_update_ticks = BASE_CLOCK_RATE / 10000; +constexpr u64 pad_update_ticks = CoreTiming::BASE_CLOCK_RATE / 10000; +constexpr u64 accelerometer_update_ticks = CoreTiming::BASE_CLOCK_RATE / 10000; +constexpr u64 gyroscope_update_ticks = CoreTiming::BASE_CLOCK_RATE / 10000; class IAppletResource final : public ServiceFramework<IAppletResource> { public: diff --git a/src/core/hle/service/nvflinger/nvflinger.cpp b/src/core/hle/service/nvflinger/nvflinger.cpp index 3481e48d0..5c50ed601 100644 --- a/src/core/hle/service/nvflinger/nvflinger.cpp +++ b/src/core/hle/service/nvflinger/nvflinger.cpp @@ -19,7 +19,7 @@ namespace Service::NVFlinger { constexpr size_t SCREEN_REFRESH_RATE = 60; -constexpr u64 frame_ticks = static_cast<u64>(BASE_CLOCK_RATE / SCREEN_REFRESH_RATE); +constexpr u64 frame_ticks = static_cast<u64>(CoreTiming::BASE_CLOCK_RATE / SCREEN_REFRESH_RATE); NVFlinger::NVFlinger() { // Add the different displays to the list of displays. diff --git a/src/core/hle/service/time/time.cpp b/src/core/hle/service/time/time.cpp index 278465358..e50680356 100644 --- a/src/core/hle/service/time/time.cpp +++ b/src/core/hle/service/time/time.cpp @@ -59,7 +59,8 @@ public: private: void GetCurrentTimePoint(Kernel::HLERequestContext& ctx) { NGLOG_DEBUG(Service_Time, "called"); - SteadyClockTimePoint steady_clock_time_point{cyclesToMs(CoreTiming::GetTicks()) / 1000}; + SteadyClockTimePoint steady_clock_time_point{ + CoreTiming::cyclesToMs(CoreTiming::GetTicks()) / 1000}; IPC::ResponseBuilder rb{ctx, (sizeof(SteadyClockTimePoint) / 4) + 2}; rb.Push(RESULT_SUCCESS); rb.PushRaw(steady_clock_time_point); diff --git a/src/core/hle/shared_page.cpp b/src/core/hle/shared_page.cpp index bba4a0715..9ed8ab249 100644 --- a/src/core/hle/shared_page.cpp +++ b/src/core/hle/shared_page.cpp @@ -56,13 +56,14 @@ static void UpdateTimeCallback(u64 userdata, int cycles_late) { date_time.date_time = GetSystemTime(); date_time.update_tick = CoreTiming::GetTicks(); - date_time.tick_to_second_coefficient = BASE_CLOCK_RATE; + date_time.tick_to_second_coefficient = CoreTiming::BASE_CLOCK_RATE; date_time.tick_offset = 0; ++shared_page.date_time_counter; // system time is updated hourly - CoreTiming::ScheduleEvent(msToCycles(60 * 60 * 1000) - cycles_late, update_time_event); + CoreTiming::ScheduleEvent(CoreTiming::msToCycles(60 * 60 * 1000) - cycles_late, + update_time_event); } void Init() { |