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