diff options
| author | 2021-12-02 14:20:43 -0500 | |
|---|---|---|
| committer | 2021-12-02 14:20:43 -0500 | |
| commit | 762b8ad448369cc770beae4d8368a6258b13709e (patch) | |
| tree | cff2c5d404b77e93e875fbf40cf78ea6d30d32b0 /src/common/x64/native_clock.cpp | |
| parent | Merge pull request #7483 from zhaobot/tx-update-20211201022129 (diff) | |
| download | yuzu-762b8ad448369cc770beae4d8368a6258b13709e.tar.gz yuzu-762b8ad448369cc770beae4d8368a6258b13709e.tar.xz yuzu-762b8ad448369cc770beae4d8368a6258b13709e.zip | |
general: Replace high_resolution_clock with steady_clock
On some OSes, high_resolution_clock is an alias to system_clock and is not monotonic in nature. Replace this with steady_clock.
Diffstat (limited to 'src/common/x64/native_clock.cpp')
| -rw-r--r-- | src/common/x64/native_clock.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/common/x64/native_clock.cpp b/src/common/x64/native_clock.cpp index 87de40624..28f834443 100644 --- a/src/common/x64/native_clock.cpp +++ b/src/common/x64/native_clock.cpp | |||
| @@ -19,16 +19,16 @@ u64 EstimateRDTSCFrequency() { | |||
| 19 | // get current time | 19 | // get current time |
| 20 | _mm_mfence(); | 20 | _mm_mfence(); |
| 21 | const u64 tscStart = __rdtsc(); | 21 | const u64 tscStart = __rdtsc(); |
| 22 | const auto startTime = std::chrono::high_resolution_clock::now(); | 22 | const auto startTime = std::chrono::steady_clock::now(); |
| 23 | // wait roughly 3 seconds | 23 | // wait roughly 3 seconds |
| 24 | while (true) { | 24 | while (true) { |
| 25 | auto milli = std::chrono::duration_cast<std::chrono::milliseconds>( | 25 | auto milli = std::chrono::duration_cast<std::chrono::milliseconds>( |
| 26 | std::chrono::high_resolution_clock::now() - startTime); | 26 | std::chrono::steady_clock::now() - startTime); |
| 27 | if (milli.count() >= 3000) | 27 | if (milli.count() >= 3000) |
| 28 | break; | 28 | break; |
| 29 | std::this_thread::sleep_for(milli_10); | 29 | std::this_thread::sleep_for(milli_10); |
| 30 | } | 30 | } |
| 31 | const auto endTime = std::chrono::high_resolution_clock::now(); | 31 | const auto endTime = std::chrono::steady_clock::now(); |
| 32 | _mm_mfence(); | 32 | _mm_mfence(); |
| 33 | const u64 tscEnd = __rdtsc(); | 33 | const u64 tscEnd = __rdtsc(); |
| 34 | // calculate difference | 34 | // calculate difference |