diff --git a/client/TracyCallstack.h b/client/TracyCallstack.h index 4145421f..06c9a595 100644 --- a/client/TracyCallstack.h +++ b/client/TracyCallstack.h @@ -6,7 +6,11 @@ #endif #if defined _WIN32 -# define TRACY_HAS_CALLSTACK 1 +# if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) && \ + !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) +# else +# define TRACY_HAS_CALLSTACK 1 +# endif #elif defined __ANDROID__ # if !defined __arm__ || __ANDROID_API__ >= 21 # define TRACY_HAS_CALLSTACK 2 diff --git a/client/TracyProfiler.cpp b/client/TracyProfiler.cpp index ff9ce9c7..fc3c3b8c 100644 --- a/client/TracyProfiler.cpp +++ b/client/TracyProfiler.cpp @@ -9,6 +9,11 @@ # include # include # include + +# if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) && \ + !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) +# define TRACY_ON_UWP +# endif #else # include # include @@ -314,7 +319,9 @@ static void InitFailure( const char* msg ) } else { +# if !defined TRACY_ON_UWP MessageBoxA( nullptr, msg, "Tracy Profiler initialization failure", MB_ICONSTOP ); +# endif } #else fprintf( stderr, "Tracy Profiler initialization failure: %s\n", msg ); @@ -440,26 +447,30 @@ static const char* GetHostInfo() static char buf[1024]; auto ptr = buf; #if defined _WIN32 +# if defined TRACY_ON_UWP + ptr += sprintf(ptr, "OS: Windows 10\n"); +# else t_RtlGetVersion RtlGetVersion = (t_RtlGetVersion)GetProcAddress( GetModuleHandleA( "ntdll.dll" ), "RtlGetVersion" ); if( !RtlGetVersion ) { -# ifdef __MINGW32__ +# ifdef __MINGW32__ ptr += sprintf( ptr, "OS: Windows (MingW)\n" ); -# else +# else ptr += sprintf( ptr, "OS: Windows\n" ); -# endif +# endif } else { RTL_OSVERSIONINFOW ver = { sizeof( RTL_OSVERSIONINFOW ) }; RtlGetVersion( &ver ); -# ifdef __MINGW32__ +# ifdef __MINGW32__ ptr += sprintf( ptr, "OS: Windows %i.%i.%i (MingW)\n", (int)ver.dwMajorVersion, (int)ver.dwMinorVersion, (int)ver.dwBuildNumber ); -# else +# else ptr += sprintf( ptr, "OS: Windows %i.%i.%i\n", ver.dwMajorVersion, ver.dwMinorVersion, ver.dwBuildNumber ); -# endif +# endif } +# endif #elif defined __linux__ struct utsname utsName; uname( &utsName ); @@ -508,11 +519,15 @@ static const char* GetHostInfo() char hostname[512]; gethostname( hostname, 512 ); +# if defined TRACY_ON_UWP + ptr += sprintf(ptr, "Hostname: %s\n", hostname); +# else DWORD userSz = UNLEN+1; char user[UNLEN+1]; GetUserNameA( user, &userSz ); ptr += sprintf( ptr, "User: %s@%s\n", user, hostname ); +# endif #else char hostname[_POSIX_HOST_NAME_MAX]{}; char user[_POSIX_LOGIN_NAME_MAX]{}; @@ -707,7 +722,7 @@ static BroadcastMessage& GetBroadcastMessage( const char* procname, size_t pnsz, return msg; } -#if defined _WIN32 +#if defined _WIN32 && !defined TRACY_ON_UWP static DWORD s_profilerThreadId = 0; static char s_crashText[1024]; @@ -1382,7 +1397,7 @@ void Profiler::SpawnWorkerThreads() new(s_symbolThread) Thread( LaunchSymbolWorker, this ); #endif -#if defined _WIN32 +#if defined _WIN32 && !defined TRACY_ON_UWP s_profilerThreadId = GetThreadId( s_thread->Handle() ); m_exceptionHandler = AddVectoredExceptionHandler( 1, CrashFilter ); #endif @@ -1416,7 +1431,7 @@ Profiler::~Profiler() { m_shutdown.store( true, std::memory_order_relaxed ); -#if defined _WIN32 +#if defined _WIN32 && !defined TRACY_ON_UWP if( m_crashHandlerInstalled ) RemoveVectoredExceptionHandler( m_exceptionHandler ); #endif @@ -3534,7 +3549,11 @@ void Profiler::ReportTopology() }; #if defined _WIN32 +# if defined TRACY_ON_UWP + t_GetLogicalProcessorInformationEx _GetLogicalProcessorInformationEx = &::GetLogicalProcessorInformationEx; +# else t_GetLogicalProcessorInformationEx _GetLogicalProcessorInformationEx = (t_GetLogicalProcessorInformationEx)GetProcAddress( GetModuleHandleA( "kernel32.dll" ), "GetLogicalProcessorInformationEx" ); +# endif if( !_GetLogicalProcessorInformationEx ) return; DWORD psz = 0; diff --git a/client/TracySysTrace.hpp b/client/TracySysTrace.hpp index d21d4338..e1b50bee 100644 --- a/client/TracySysTrace.hpp +++ b/client/TracySysTrace.hpp @@ -2,7 +2,11 @@ #define __TRACYSYSTRACE_HPP__ #if !defined TRACY_NO_SYSTEM_TRACING && ( defined _WIN32 || defined __linux__ ) -# define TRACY_HAS_SYSTEM_TRACING +# if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) && \ + !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) +# else +# define TRACY_HAS_SYSTEM_TRACING +# endif #endif #ifdef TRACY_HAS_SYSTEM_TRACING