From c0c9832713f5a29d1f02b661e89faf98e9d2a4b7 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Thu, 13 Aug 2020 01:40:18 +0200 Subject: [PATCH] Implement TSC conversion and caps checking in ring buffer. --- client/TracyRingBuffer.hpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/client/TracyRingBuffer.hpp b/client/TracyRingBuffer.hpp index c1415485..f9bd8763 100644 --- a/client/TracyRingBuffer.hpp +++ b/client/TracyRingBuffer.hpp @@ -81,6 +81,20 @@ public: StoreTail( m_metadata->data_tail + cnt ); } + bool CheckTscCaps() const + { + return m_metadata->cap_user_time_zero; + } + + int64_t ConvertTimeToTsc( int64_t timestamp ) const + { + assert( m_metadata->cap_user_time_zero ); + const auto time = timestamp - m_metadata->time_zero; + const auto quot = time / m_metadata->time_mult; + const auto rem = time % m_metadata->time_mult; + return ( quot << m_metadata->time_shift ) + ( rem << m_metadata->time_shift ) / m_metadata->time_mult; + } + private: uint64_t LoadHead() const {