Files
eden/src/common/x64/native_clock.h
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

39 lines
808 B
C++
Raw Normal View History

// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include "common/wall_clock.h"
2023-04-22 23:08:28 -04:00
namespace Common::X64 {
2020-09-29 16:19:37 -03:00
class NativeClock final : public WallClock {
public:
2023-04-22 23:08:28 -04:00
explicit NativeClock(u64 rdtsc_frequency_);
2023-04-22 23:08:28 -04:00
std::chrono::nanoseconds GetTimeNS() const override;
2023-04-22 23:08:28 -04:00
std::chrono::microseconds GetTimeUS() const override;
2023-04-22 23:08:28 -04:00
std::chrono::milliseconds GetTimeMS() const override;
s64 GetCNTPCT() const override;
s64 GetGPUTick() const override;
2023-05-28 17:45:47 -04:00
s64 GetUptime() const override;
2023-04-22 23:08:28 -04:00
bool IsNative() const override;
2022-06-28 22:42:00 +02:00
2023-04-22 23:08:28 -04:00
private:
u64 rdtsc_frequency;
2023-03-04 21:44:31 -05:00
2023-04-22 23:08:28 -04:00
u64 ns_rdtsc_factor;
u64 us_rdtsc_factor;
u64 ms_rdtsc_factor;
u64 cntpct_rdtsc_factor;
2023-05-28 17:45:47 -04:00
u64 gputick_rdtsc_factor;
};
2023-04-22 23:08:28 -04:00
} // namespace Common::X64