1
0
mirror of https://github.com/wolfpld/tracy synced 2025-04-28 20:23:51 +00:00

Add system tracing skeleton.

This commit is contained in:
Bartosz Taudul 2019-08-12 20:08:15 +02:00
parent 8aa0be39d5
commit fe0f1aea07
5 changed files with 69 additions and 0 deletions

View File

@ -19,6 +19,7 @@
#include "client/TracyProfiler.cpp"
#include "client/TracyCallstack.cpp"
#include "client/TracySysTime.cpp"
#include "client/TracySysTrace.cpp"
#include "common/TracySocket.cpp"
#include "client/tracy_rpmalloc.cpp"
#include "client/TracyDxt1.cpp"

View File

@ -931,6 +931,10 @@ static Profiler* s_instance;
static Thread* s_thread;
static Thread* s_compressThread;
#ifdef TRACY_HAS_SYSTEM_TRACING
static Thread* s_sysTraceThread = nullptr;
#endif
#ifdef TRACY_DELAYED_INIT
struct ThreadNameData;
TRACY_API moodycamel::ConcurrentQueue<QueueItem>& GetQueue();
@ -1138,6 +1142,15 @@ Profiler::Profiler()
new(s_compressThread) Thread( LaunchCompressWorker, this );
SetThreadName( s_compressThread->Handle(), "Tracy Profiler DXT1" );
#ifdef TRACY_HAS_SYSTEM_TRACING
if( SysTraceStart() )
{
s_sysTraceThread = (Thread*)tracy_malloc( sizeof( Thread ) );
new(s_sysTraceThread) Thread( SysTraceWorker, nullptr );
SetThreadName( s_sysTraceThread->Handle(), "Tracy Profiler system trace" );
}
#endif
#if defined PTW32_VERSION
s_profilerThreadId = pthread_getw32threadid_np( s_thread->Handle() );
#elif defined __WINPTHREADS_VERSION
@ -1174,6 +1187,16 @@ Profiler::Profiler()
Profiler::~Profiler()
{
m_shutdown.store( true, std::memory_order_relaxed );
#ifdef TRACY_HAS_SYSTEM_TRACING
if( s_sysTraceThread )
{
SysTraceStop();
s_sysTraceThread->~Thread();
tracy_free( s_sysTraceThread );
}
#endif
s_compressThread->~Thread();
tracy_free( s_compressThread );
s_thread->~Thread();

View File

@ -10,6 +10,7 @@
#include "tracy_concurrentqueue.h"
#include "TracyCallstack.hpp"
#include "TracySysTime.hpp"
#include "TracySysTrace.hpp"
#include "TracyFastVector.hpp"
#include "../common/TracyQueue.hpp"
#include "../common/TracyAlign.hpp"

23
client/TracySysTrace.cpp Normal file
View File

@ -0,0 +1,23 @@
#include "TracySysTrace.hpp"
#ifdef TRACY_HAS_SYSTEM_TRACING
namespace tracy
{
bool SysTraceStart()
{
return true;
}
void SysTraceStop()
{
}
void SysTraceWorker( void* ptr )
{
}
}
#endif

21
client/TracySysTrace.hpp Normal file
View File

@ -0,0 +1,21 @@
#ifndef __TRACYSYSTRACE_HPP__
#define __TRACYSYSTRACE_HPP__
#if defined _WIN32 || defined __CYGWIN__
# define TRACY_HAS_SYSTEM_TRACING
#endif
#ifdef TRACY_HAS_SYSTEM_TRACING
namespace tracy
{
bool SysTraceStart();
void SysTraceStop();
void SysTraceWorker( void* ptr );
}
#endif
#endif