diff options
author | Liam <byteslice@airmail.cc> | 2023-10-08 17:32:32 +0200 |
---|---|---|
committer | Liam <byteslice@airmail.cc> | 2023-10-08 18:54:23 +0200 |
commit | 21bc2c14bc7408427a8b4851a7a3f15251f2afa8 (patch) | |
tree | 69597208c660a1af323b7e6dc5ff8e804e555682 /src/common/arm64/native_clock.h | |
parent | Merge pull request #11656 from liamwhite/recreate-surface-automatically (diff) | |
download | yuzu-21bc2c14bc7408427a8b4851a7a3f15251f2afa8.tar yuzu-21bc2c14bc7408427a8b4851a7a3f15251f2afa8.tar.gz yuzu-21bc2c14bc7408427a8b4851a7a3f15251f2afa8.tar.bz2 yuzu-21bc2c14bc7408427a8b4851a7a3f15251f2afa8.tar.lz yuzu-21bc2c14bc7408427a8b4851a7a3f15251f2afa8.tar.xz yuzu-21bc2c14bc7408427a8b4851a7a3f15251f2afa8.tar.zst yuzu-21bc2c14bc7408427a8b4851a7a3f15251f2afa8.zip |
Diffstat (limited to 'src/common/arm64/native_clock.h')
-rw-r--r-- | src/common/arm64/native_clock.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/common/arm64/native_clock.h b/src/common/arm64/native_clock.h new file mode 100644 index 000000000..a28b419f2 --- /dev/null +++ b/src/common/arm64/native_clock.h @@ -0,0 +1,47 @@ +// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "common/wall_clock.h" + +namespace Common::Arm64 { + +class NativeClock final : public WallClock { +public: + explicit NativeClock(); + + std::chrono::nanoseconds GetTimeNS() const override; + + std::chrono::microseconds GetTimeUS() const override; + + std::chrono::milliseconds GetTimeMS() const override; + + u64 GetCNTPCT() const override; + + u64 GetGPUTick() const override; + + u64 GetHostTicksNow() const override; + + u64 GetHostTicksElapsed() const override; + + bool IsNative() const override; + + static u64 GetHostCNTFRQ(); + +public: + using FactorType = unsigned __int128; + + FactorType GetGuestCNTFRQFactor() const { + return guest_cntfrq_factor; + } + +private: + FactorType ns_cntfrq_factor; + FactorType us_cntfrq_factor; + FactorType ms_cntfrq_factor; + FactorType guest_cntfrq_factor; + FactorType gputick_cntfrq_factor; +}; + +} // namespace Common::Arm64 |