From b254e49ddcfd4ba7cc754616c5bd9dd73f9f153b Mon Sep 17 00:00:00 2001 From: Beq Date: Tue, 28 May 2024 18:16:00 +0100 Subject: [PATCH] Minimalist changes for Tracy010 --- indra/cmake/Tracy.cmake | 2 +- indra/llcommon/CMakeLists.txt | 6 +++++- indra/llcommon/fstracyclient.cpp | 8 ++++++++ indra/llcommon/llprofiler.h | 16 ++++++++-------- 4 files changed, 22 insertions(+), 10 deletions(-) create mode 100644 indra/llcommon/fstracyclient.cpp diff --git a/indra/cmake/Tracy.cmake b/indra/cmake/Tracy.cmake index 00b4844fca..5092e050f9 100644 --- a/indra/cmake/Tracy.cmake +++ b/indra/cmake/Tracy.cmake @@ -10,7 +10,7 @@ if (USE_TRACY) use_prebuilt_binary(tracy) target_include_directories( ll::tracy SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/tracy) - target_link_libraries( ll::tracy INTERFACE TracyClient ) + # target_link_libraries( ll::tracy INTERFACE TracyClient ) # See: indra/llcommon/llprofiler.h add_compile_definitions(LL_PROFILER_CONFIGURATION=3) diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt index 43946ba62c..8c861f5faa 100644 --- a/indra/llcommon/CMakeLists.txt +++ b/indra/llcommon/CMakeLists.txt @@ -268,8 +268,12 @@ if (DARWIN) list(APPEND llcommon_SOURCE_FILES llsys_objc.mm) endif (DARWIN) -# Tracy Profiler support +# Tracy Profiler support list(APPEND llcommon_SOURCE_FILES llprofiler.cpp) +if (USE_TRACY) +list(APPEND llcommon_SOURCE_FILES fstracyclient.cpp) +endif() +# # Add all nd* files. memory pool, intrinsics, ... diff --git a/indra/llcommon/fstracyclient.cpp b/indra/llcommon/fstracyclient.cpp new file mode 100644 index 0000000000..c367657804 --- /dev/null +++ b/indra/llcommon/fstracyclient.cpp @@ -0,0 +1,8 @@ +// Just a simple wrapper to easily import the single tracy source file and save +// all the pain of cross platform libraries in the Tracy 3p build. +#include "linden_common.h" + +#if LL_PROFILER_CONFIGURATION == LL_PROFILER_CONFIG_TRACY || LL_PROFILER_CONFIGURATION == LL_PROFILER_CONFIG_TRACY_FAST_TIMER + #include "TracyClient.cpp" +#endif // LL_PROFILER_CONFIGURATION + diff --git a/indra/llcommon/llprofiler.h b/indra/llcommon/llprofiler.h index 428702e0e7..9229479ae7 100644 --- a/indra/llcommon/llprofiler.h +++ b/indra/llcommon/llprofiler.h @@ -91,12 +91,12 @@ namespace LLProfiler // #define TRACY_NO_BROADCAST 1 // #define TRACY_ONLY_LOCALHOST 1 #define TRACY_ONLY_IPV4 1 - #include "Tracy.hpp" + #include "tracy/Tracy.hpp" // Fixed mutual exclusion issues with RAM and GPU. NOTE: This might still break on Apple in which case we'll need to restrict that platform //// GPU Mutually exclusive with detailed memory tracing // #define LL_PROFILER_ENABLE_TRACY_OPENGL 0 #define LL_PROFILER_ENABLE_TRACY_MEMORY 0 - #define LL_PROFILER_ENABLE_TRACY_OPENGL 0 + #define LL_PROFILER_ENABLE_TRACY_OPENGL 1 // Enable RenderDoc labeling #define LL_PROFILER_ENABLE_RENDER_DOC 0 @@ -132,9 +132,9 @@ namespace LLProfiler #define LL_PROFILE_ZONE_WARN(name) LL_PROFILE_ZONE_NAMED_COLOR( name, 0x0FFFF00 ) // RGB red // Additional FS Tracy macros - #define LL_PROFILE_ZONE_COLOR(color) ZoneNamedC( ___tracy_scoped_zone, color, LLProfiler::active ) // Additional Tracy macro - #define LL_PROFILE_PLOT( name, value ) TracyPlot( name, value) - #define LL_PROFILE_PLOT_SQ( name, prev, value ) TracyPlot(name,prev);TracyPlot( name, value) + #define LL_PROFILE_ZONE_COLOR(color) ZoneNamedC( ___tracy_scoped_zone, color, LLProfiler::active ); + #define LL_PROFILE_PLOT( name, value ) TracyPlot( name, value); + #define LL_PROFILE_PLOT_CONFIG_SQUARE(name) TracyPlotConfig(name, tracy::PlotFormatType::Number, true, false, 0); #define LL_PROFILE_IS_CONNECTED TracyIsConnected // #endif @@ -158,7 +158,7 @@ namespace LLProfiler // Additional FS Tracy macros #define LL_PROFILE_ZONE_COLOR(color) #define LL_PROFILE_PLOT( name, value ) - #define LL_PROFILE_PLOT_SQ( name, prev, value ) + #define LL_PROFILE_PLOT_CONFIG_SQUARE(name) #define LL_PROFILE_IS_CONNECTED // #endif @@ -190,7 +190,7 @@ namespace LLProfiler // Additional FS Tracy macros #define LL_PROFILE_ZONE_COLOR(color) ZoneNamedC( ___tracy_scoped_zone, color, LLProfiler::active ) #define LL_PROFILE_PLOT( name, value ) TracyPlot( name, value) - #define LL_PROFILE_PLOT_SQ( name, prev, value ) TracyPlot( name, prev );TracyPlot( name, value ) + #define LL_PROFILE_PLOT_CONFIG_SQUARE(name) TracyPlotConfig(name, tracy::PlotFormatType::Number, true, false, 0) #define LL_PROFILE_IS_CONNECTED TracyIsConnected // #endif @@ -215,7 +215,7 @@ namespace LLProfiler // Additional FS Tracy macros #define LL_PROFILE_ZONE_COLOR(color) #define LL_PROFILE_PLOT( name, value ) - #define LL_PROFILE_PLOT_SQ( name, prev, value ) + #define LL_PROFILE_PLOT_CONFIG_SQUARE(name) #define LL_PROFILE_IS_CONNECTED // #endif // LL_PROFILER