Merge branch 'Tracy010Updates'

meow-7.2.2
Beq 2024-05-30 13:33:18 +01:00
commit ab677cbb2b
16 changed files with 127 additions and 72 deletions

View File

@ -2817,51 +2817,37 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<map>
<key>platforms</key>
<map>
<key>darwin64</key>
<key>windows</key>
<map>
<key>archive</key>
<map>
<key>hash</key>
<string>49650353442698c3e05102676fe427d0ebe02f0b</string>
<string>fc67514183e7dbbb96bebb9970e1431c</string>
<key>hash_algorithm</key>
<string>sha1</string>
<string>md5</string>
<key>url</key>
<string>https://github.com/secondlife/3p-tracy/releases/download/v0.8.1-eecbf72/tracy-v0.8.1-eecbf72-darwin64-eecbf72.tar.zst</string>
<string>https://3p.firestormviewer.org/tracy-v0.10.241491433-windows-241491433.tar.bz2</string>
</map>
<key>name</key>
<string>darwin64</string>
</map>
<key>windows64</key>
<map>
<key>archive</key>
<map>
<key>hash</key>
<string>2b80e7407e4f3e82eff3879add0e9ad63e7fcace</string>
<key>hash_algorithm</key>
<string>sha1</string>
<key>url</key>
<string>https://github.com/secondlife/3p-tracy/releases/download/v0.8.1-eecbf72/tracy-v0.8.1-eecbf72-windows64-eecbf72.tar.zst</string>
</map>
<key>name</key>
<string>windows64</string>
<string>windows</string>
</map>
</map>
<key>license</key>
<string>bsd</string>
<key>license_file</key>
<string>LICENSES/tracy_license.txt</string>
<string>LICENSES/Tracy.txt</string>
<key>copyright</key>
<string>Copyright (c) 2017-2022, Bartosz Taudul (wolf@nereid.pl)</string>
<key>version</key>
<string>v0.8.1-eecbf72</string>
<string>v0.10.241491433</string>
<key>name</key>
<string>tracy</string>
<key>canonical_repo</key>
<string>https://bitbucket.org/lindenlab/3p-tracy</string>
<string>https://github.com/beqjanus/3p-tracy</string>
<key>description</key>
<string>Tracy Profiler Library</string>
<key>source</key>
<string>https://bitbucket.org/lindenlab/3p-tracy</string>
<string>https://github.com/beqjanus/3p-tracy</string>
<key>source_type</key>
<string>git</string>
</map>

View File

@ -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)

View File

@ -268,8 +268,12 @@ if (DARWIN)
list(APPEND llcommon_SOURCE_FILES llsys_objc.mm)
endif (DARWIN)
# <FS:Beq/> Tracy Profiler support
# <FS:Beq> Tracy Profiler support
list(APPEND llcommon_SOURCE_FILES llprofiler.cpp)
if (USE_TRACY)
list(APPEND llcommon_SOURCE_FILES fstracyclient.cpp)
endif()
# </FS:Beq>
# <FS:ND> Add all nd* files. memory pool, intrinsics, ...

View File

@ -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

View File

@ -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"
// <FS:Beq> 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
@ -104,37 +104,37 @@ namespace LLProfiler
#endif
#if LL_PROFILER_CONFIGURATION == LL_PROFILER_CONFIG_TRACY
#define LL_PROFILER_FRAME_END FrameMark
#define LL_PROFILER_FRAME_END FrameMark;
// <FS:Beq> Note: this threadlocal forces memory colelction enabled from the start. It conflicts with deferred profiling.
#define LL_PROFILER_SET_THREAD_NAME( name ) tracy::SetThreadName( name ); gProfilerEnabled = true;
// </FS:Beq>
#define LL_PROFILER_THREAD_BEGIN(name) FrameMarkStart( name ) // C string
#define LL_PROFILER_THREAD_END(name) FrameMarkEnd( name ) // C string
#define LL_PROFILER_THREAD_BEGIN(name) FrameMarkStart( name ); // C string
#define LL_PROFILER_THREAD_END(name) FrameMarkEnd( name ); // C string
// <FS:Beq> revert change that obscures custom FTM zones. We may want to may FTM Zones unique in future.
// #define LL_RECORD_BLOCK_TIME(name) ZoneScoped // Want descriptive names; was: ZoneNamedN( ___tracy_scoped_zone, #name, LLProfiler::active );
#define LL_RECORD_BLOCK_TIME(name) ZoneNamedN( ___tracy_scoped_zone, #name, LLProfiler::active )
#define LL_RECORD_BLOCK_TIME(name) ZoneNamedN( ___tracy_scoped_zone, #name, LLProfiler::active );
// </FS:Beq>
// <FS:Beq>
// #define LL_PROFILE_ZONE_NAMED(name) ZoneNamedN( ___tracy_scoped_zone, name, true )
// #define LL_PROFILE_ZONE_NAMED_COLOR(name,color) ZoneNamedNC( ___tracy_scopped_zone, name, color, true ) // RGB
// #define LL_PROFILE_ZONE_SCOPED ZoneScoped
#define LL_PROFILE_ZONE_NAMED(name) ZoneNamedN( ___tracy_scoped_zone, name, LLProfiler::active )
#define LL_PROFILE_ZONE_NAMED_COLOR(name,color) ZoneNamedNC( ___tracy_scopped_zone, name, color, LLProfiler::active ) // RGB
#define LL_PROFILE_ZONE_SCOPED ZoneNamed( ___tracy_scoped_zone, LLProfiler::active ) // <FS:Beq/> Enable deferred collection through filters
#define LL_PROFILE_ZONE_NAMED(name) ZoneNamedN( ___tracy_scoped_zone, name, LLProfiler::active );
#define LL_PROFILE_ZONE_NAMED_COLOR(name,color) ZoneNamedNC( ___tracy_scopped_zone, name, color, LLProfiler::active ); // RGB
#define LL_PROFILE_ZONE_SCOPED ZoneNamed( ___tracy_scoped_zone, LLProfiler::active ); // <FS:Beq/> Enable deferred collection through filters
// </FS:Beq>
#define LL_PROFILE_ZONE_NUM( val ) ZoneValue( val )
#define LL_PROFILE_ZONE_TEXT( text, size ) ZoneText( text, size )
#define LL_PROFILE_ZONE_NUM( val ) ZoneValue( val );
#define LL_PROFILE_ZONE_TEXT( text, size ) ZoneText( text, size );
#define LL_PROFILE_ZONE_ERR(name) LL_PROFILE_ZONE_NAMED_COLOR( name, 0XFF0000 ) // RGB yellow
#define LL_PROFILE_ZONE_INFO(name) LL_PROFILE_ZONE_NAMED_COLOR( name, 0X00FFFF ) // RGB cyan
#define LL_PROFILE_ZONE_WARN(name) LL_PROFILE_ZONE_NAMED_COLOR( name, 0x0FFFF00 ) // RGB red
// <FS:Beq> Additional FS Tracy macros
#define LL_PROFILE_ZONE_COLOR(color) ZoneNamedC( ___tracy_scoped_zone, color, LLProfiler::active ) // <FS:Beq/> 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
// </FS:Beq>
#endif
@ -158,15 +158,15 @@ namespace LLProfiler
// <FS:Beq> 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
// </FS:Beq>
#endif
#if LL_PROFILER_CONFIGURATION == LL_PROFILER_CONFIG_TRACY_FAST_TIMER
#define LL_PROFILER_FRAME_END FrameMark
#define LL_PROFILER_FRAME_END FrameMark;
#define LL_PROFILER_SET_THREAD_NAME( name ) tracy::SetThreadName( name ); gProfilerEnabled = true;
#define LL_PROFILER_THREAD_BEGIN(name) FrameMarkStart( name ) // C string
#define LL_PROFILER_THREAD_END(name) FrameMarkEnd( name ) // C string
#define LL_PROFILER_THREAD_BEGIN(name) FrameMarkStart( name ); // C string
#define LL_PROFILER_THREAD_END(name) FrameMarkEnd( name ); // C string
// <FS:Beq> revert change that obscures custom FTM zones.
// #define LL_RECORD_BLOCK_TIME(name) ZoneScoped const LLTrace::BlockTimer& LL_GLUE_TOKENS(block_time_recorder, __LINE__)(LLTrace::timeThisBlock(name)); (void)LL_GLUE_TOKENS(block_time_recorder, __LINE__);
@ -177,20 +177,20 @@ namespace LLProfiler
// #define LL_PROFILE_ZONE_NAMED_COLOR(name,color) ZoneNamedNC( ___tracy_scopped_zone, name, color, true ) // RGB
// #define LL_PROFILE_ZONE_SCOPED ZoneScoped
#define LL_PROFILE_ZONE_NAMED(name) ZoneNamedN( ___tracy_scoped_zone, name, LLProfiler::active );
#define LL_PROFILE_ZONE_NAMED_COLOR(name,color) ZoneNamedNC( ___tracy_scopped_zone, name, color, LLProfiler::active ) // RGB
#define LL_PROFILE_ZONE_SCOPED ZoneNamed( ___tracy_scoped_zone, LLProfiler::active ) // <FS:Beq/> Enable deferred collection through filters
#define LL_PROFILE_ZONE_NAMED_COLOR(name,color) ZoneNamedNC( ___tracy_scopped_zone, name, color, LLProfiler::active ); // RGB
#define LL_PROFILE_ZONE_SCOPED ZoneNamed( ___tracy_scoped_zone, LLProfiler::active ); // <FS:Beq/> Enable deferred collection through filters
// </FS:Beq>
#define LL_PROFILE_ZONE_NUM( val ) ZoneValue( val )
#define LL_PROFILE_ZONE_TEXT( text, size ) ZoneText( text, size )
#define LL_PROFILE_ZONE_NUM( val ) ZoneValue( val );
#define LL_PROFILE_ZONE_TEXT( text, size ) ZoneText( text, size );
#define LL_PROFILE_ZONE_ERR(name) LL_PROFILE_ZONE_NAMED_COLOR( name, 0XFF0000 ) // RGB yellow
#define LL_PROFILE_ZONE_INFO(name) LL_PROFILE_ZONE_NAMED_COLOR( name, 0X00FFFF ) // RGB cyan
#define LL_PROFILE_ZONE_WARN(name) LL_PROFILE_ZONE_NAMED_COLOR( name, 0x0FFFF00 ) // RGB red
// <FS:Beq> 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_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
// </FS:Beq>
#endif
@ -215,16 +215,17 @@ namespace LLProfiler
// <FS:Ansariel> 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
// </FS:Ansariel>
#endif // LL_PROFILER
#if LL_PROFILER_ENABLE_TRACY_OPENGL
#define LL_PROFILE_GPU_ZONE(name) TracyGpuZone(name)
#define LL_PROFILE_GPU_ZONEC(name,color) TracyGpuZoneC(name,color)
#define LL_PROFILER_GPU_COLLECT TracyGpuCollect
#define LL_PROFILER_GPU_CONTEXT TracyGpuContext
#define LL_PROFILE_GPU_ZONE(name) TracyGpuZone(name);
#define LL_PROFILE_GPU_ZONEC(name,color) TracyGpuZoneC(name,color);
#define LL_PROFILER_GPU_COLLECT TracyGpuCollect;
#define LL_PROFILER_GPU_CONTEXT TracyGpuContext;
#define LL_PROFILER_GPU_CONTEXT_NS(name, size) TracyGpuContext;TracyGpuContextName(name,size);
// disable memory tracking (incompatible with GPU tracing
#define LL_PROFILE_ALLOC(ptr, size) (void)(ptr); (void)(size);
@ -234,12 +235,13 @@ namespace LLProfiler
#define LL_PROFILE_GPU_ZONEC(name,color) (void)name;(void)color;
#define LL_PROFILER_GPU_COLLECT
#define LL_PROFILER_GPU_CONTEXT
#define LL_PROFILER_GPU_CONTEXT_NS(name, size) (void)name;(void)size;
#define LL_LABEL_OBJECT_GL(type, name, length, label)
#if LL_PROFILER_CONFIGURATION > 1
#define LL_PROFILE_ALLOC(ptr, size) TracyAlloc(ptr, size)
#define LL_PROFILE_FREE(ptr) TracyFree(ptr)
#define LL_PROFILE_ALLOC(ptr, size) TracyAlloc(ptr, size);
#define LL_PROFILE_FREE(ptr) TracyFree(ptr);
#else
#define LL_PROFILE_ALLOC(ptr, size) (void)(ptr); (void)(size);
#define LL_PROFILE_FREE(ptr) (void)(ptr);
@ -248,7 +250,7 @@ namespace LLProfiler
#endif
#if LL_PROFILER_ENABLE_RENDER_DOC
#define LL_LABEL_OBJECT_GL(type, name, length, label) glObjectLabel(type, name, length, label)
#define LL_LABEL_OBJECT_GL(type, name, length, label) glObjectLabel(type, name, length, label);
#else
#define LL_LABEL_OBJECT_GL(type, name, length, label)
#endif

View File

@ -122,6 +122,7 @@ void LLSDSerialize::serialize(const LLSD& sd, std::ostream& str, ELLSD_Serialize
// static
bool LLSDSerialize::deserialize(LLSD& sd, std::istream& str, llssize max_bytes)
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_LLSD;
char hdr_buf[MAX_HDR_LEN + 1] = ""; /* Flawfinder: ignore */
bool fail_if_not_legacy = false;

View File

@ -70,7 +70,7 @@ LLTimer* LLTimer::sTimer = NULL;
#if 0
void ms_sleep(U32 ms)
{
LL_PROFILE_ZONE_SCOPED;
// LL_PROFILE_ZONE_SCOPED;
using TimePoint = std::chrono::steady_clock::time_point;
auto resume_time = TimePoint::clock::now() + std::chrono::milliseconds(ms);
while (TimePoint::clock::now() < resume_time)

View File

@ -213,6 +213,7 @@ void HttpPolicy::retryOp(const HttpOpRequest::ptr_t &op)
//
HttpService::ELoopSpeed HttpPolicy::processReadyQueue()
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_NETWORK;// <FS:Beq/> missing http trace
const HttpTime now(totalTime());
HttpService::ELoopSpeed result(HttpService::REQUEST_SLEEP);
HttpLibcurl & transport(mService->getTransport());

View File

@ -365,6 +365,7 @@ public:
BOOL callHandlerFunc(LLMessageSystem *msgsystem) const
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_NETWORK;
if (mHandlerFunc)
{

View File

@ -541,6 +541,11 @@ BOOL LLTemplateMessageReader::decodeData(const U8* buffer, const LLHost& sender
llassert( mCurrentRMessageTemplate);
llassert( !mCurrentRMessageData );
delete mCurrentRMessageData; // just to make sure
// <FS:Beq> storage for Tracy tag
#ifdef TRACY_ENABLE
static char msgstr[36];
#endif
// </FS:Beq>
// The offset tells us how may bytes to skip after the end of the
// message name.
@ -556,6 +561,7 @@ BOOL LLTemplateMessageReader::decodeData(const U8* buffer, const LLHost& sender
iter != mCurrentRMessageTemplate->mMemberBlocks.end();
++iter)
{
LL_PROFILE_ZONE_NAMED_CATEGORY_NETWORK("BuildFromTemplate");
LLMessageBlock* mbci = *iter;
U8 repeat_number;
S32 i;
@ -598,6 +604,13 @@ BOOL LLTemplateMessageReader::decodeData(const U8* buffer, const LLHost& sender
}
LLMsgBlkData* cur_data_block = NULL;
// <FS:Beq> Tracy Message processing
LL_DEBUGS("LLMessage") << "Processing " << mbci->mName << " with " << repeat_number << " repetitions" << LL_ENDL;
#ifdef TRACY_ENABLE
strncpy(msgstr, mbci->mName, 35);
LL_PROFILE_ZONE_TEXT(msgstr, 35);
#endif
// </FS:Beq>
// now loop through the block
for (i = 0; i < repeat_number; i++)
@ -622,6 +635,7 @@ BOOL LLTemplateMessageReader::decodeData(const U8* buffer, const LLHost& sender
mbci->mMemberVariables.begin();
iter != mbci->mMemberVariables.end(); iter++)
{
LL_PROFILE_ZONE_NAMED_CATEGORY_NETWORK("AddVariables");
const LLMessageVariable& mvci = **iter;
// ok, build out the variables
@ -704,6 +718,12 @@ BOOL LLTemplateMessageReader::decodeData(const U8* buffer, const LLHost& sender
}
{
// <FS:Beq> Tracy Message processing
LL_PROFILE_ZONE_NAMED_CATEGORY_NETWORK("ProcessMessage");
#ifdef TRACY_ENABLE
LL_PROFILE_ZONE_TEXT(msgstr, 35);
#endif
// </FS:Beq>
static LLTimer decode_timer;
if(LLMessageReader::getTimeDecodes() || gMessageSystem->getTimingCallback())
@ -742,7 +762,7 @@ BOOL LLTemplateMessageReader::decodeData(const U8* buffer, const LLHost& sender
if(decode_time > LLMessageReader::getTimeDecodesSpamThreshold())
{
LL_DEBUGS() << "--------- Message " << mCurrentRMessageTemplate->mName << " decode took " << decode_time << " seconds. (" <<
LL_DEBUGS("LLMessage") << "--------- Message " << mCurrentRMessageTemplate->mName << " decode took " << decode_time << " seconds. (" <<
mCurrentRMessageTemplate->mMaxDecodeTimePerMsg << " max, " <<
(mCurrentRMessageTemplate->mTotalDecodeTime / mCurrentRMessageTemplate->mTotalDecoded) << " avg)" << LL_ENDL;
}

View File

@ -2547,6 +2547,7 @@ void LLImageGLThread::run()
// WorkQueue, likewise cleanup afterwards.
mWindow->makeContextCurrent(mContext);
gGL.init(false);
LL_PROFILER_GPU_CONTEXT_NS("LLImageGL Context", 17);
LL::ThreadPool::run();
gGL.shutdown();
mWindow->destroySharedContext(mContext);

View File

@ -237,6 +237,7 @@ public:
{
mWindow->makeContextCurrent(mContext);
gGL.init(false);
LL_PROFILER_GPU_CONTEXT_NS("LLGLWorker Context", 18);
mQueue->runUntilClose();
gGL.shutdown();
mWindow->destroySharedContext(mContext);

View File

@ -1686,6 +1686,7 @@ const S32 max_format = (S32)num_formats - 1;
close();
return FALSE;
}
//LL_PROFILER_GPU_CONTEXT; <FS:Beq/> TODO(Beq) review this
LL_PROFILER_GPU_CONTEXT
@ -1720,7 +1721,7 @@ const S32 max_format = (S32)num_formats - 1;
swapBuffers();
}
LL_PROFILER_GPU_CONTEXT;
LL_PROFILER_GPU_CONTEXT_NS("MainGL Context", 14);
return TRUE;
}
@ -1890,7 +1891,7 @@ void* LLWindowWin32::createSharedContext()
void LLWindowWin32::makeContextCurrent(void* contextPtr)
{
wglMakeCurrent(mhDC, (HGLRC) contextPtr);
LL_PROFILER_GPU_CONTEXT;
}
void LLWindowWin32::destroySharedContext(void* contextPtr)

View File

@ -279,13 +279,16 @@ namespace LLPerfStats
auto ot{upd.objType};
auto& key{upd.objID};
auto& avKey{upd.avID};
auto type {upd.statType};
auto val {upd.time};
// <FS:Beq> markup to support coverage testing on stats collection
#ifdef TRACY_ENABLE
//LL_PROFILE_ZONE_TEXT(key.toStringFast(obstr), 36);
//LL_PROFILE_ZONE_TEXT(avKey.toStringFast(avstr), 36);
//LL_PROFILE_ZONE_NUM(val);
static char obstr[36];
static char avstr[36];
LL_PROFILE_ZONE_TEXT(key.toStringFast(obstr), 36);
LL_PROFILE_ZONE_TEXT(avKey.toStringFast(avstr), 36);
LL_PROFILE_ZONE_NUM(val);
#endif
// </FS:Beq>
@ -295,6 +298,14 @@ namespace LLPerfStats
doUpd(key, ot, type,val);
return;
}
if (ot == ObjType_t::OT_AVATAR)
{
// LL_INFOS("perfstats") << "Avatar update:" << LL_ENDL;
doUpd(avKey, ot, type, val);
return;
}
}
static inline void doUpd(const LLUUID& key, ObjType_t ot, StatType_t type, uint64_t val)
@ -429,13 +440,13 @@ namespace LLPerfStats
// </FS:Beq>
stat.time = LLTrace::BlockTimer::getCPUClockCount64() - start;
// <FS:Beq> extra profiling coverage tracking
#ifdef ATTACHMENT_TRACKING
static char obstr[36];
static char avstr[36];
LL_PROFILE_ZONE_NUM(static_cast<U64>(stat.objType));
LL_PROFILE_ZONE_TEXT(stat.avID.toStringFast(avstr), 36);
LL_PROFILE_ZONE_TEXT(stat.objID.toStringFast(obstr), 36);
LL_PROFILE_ZONE_NUM(stat.time);
#if TRACY_ENABLE && defined(ATTACHMENT_TRACKING)
// static char obstr[36];
// static char avstr[36];
// LL_PROFILE_ZONE_NUM(static_cast<U64>(stat.objType));
// LL_PROFILE_ZONE_TEXT(stat.avID.toStringFast(avstr), 36);
// LL_PROFILE_ZONE_TEXT(stat.objID.toStringFast(obstr), 36);
// LL_PROFILE_ZONE_NUM(stat.time);
#endif
// </FS:Beq>
StatsRecorder::send(std::move(stat));

View File

@ -834,6 +834,7 @@ void LLViewerRegion::setRegionID(const LLUUID& region_id)
void LLViewerRegion::loadObjectCache()
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_NETWORK;
if (mCacheLoaded)
{
return;
@ -3126,6 +3127,7 @@ void LLViewerRegion::clearVOCacheFromMemory()
void LLViewerRegion::unpackRegionHandshake()
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_NETWORK;
LLMessageSystem *msg = gMessageSystem;
U64 region_flags = 0;

View File

@ -1541,6 +1541,7 @@ BOOL LLVOCache::updateEntry(const HeaderEntryInfo* entry)
bool LLVOCache::readFromCache(U64 handle, const LLUUID& id, LLVOCacheEntry::vocache_entry_map_t& cache_entry_map)
// </FS:Beq>
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_NETWORK;
if(!mEnabled)
{
LL_WARNS() << "Not reading cache for handle " << handle << "): Cache is currently disabled." << LL_ENDL;
@ -1559,6 +1560,7 @@ bool LLVOCache::readFromCache(U64 handle, const LLUUID& id, LLVOCacheEntry::voca
S32 num_entries=0; // <FS:Beq/> FIRE-33808 - Material Override Cache causes long delays
std::string filename;
{
LL_PROFILE_ZONE_NAMED_CATEGORY_NETWORK("VOCache:loadRegionObjectCache");
LLUUID cache_id;
getObjectCacheFilename(handle, filename);
LLAPRFile apr_file(filename, APR_READ|APR_BINARY, mLocalAPRFilePoolp);
@ -1567,6 +1569,7 @@ bool LLVOCache::readFromCache(U64 handle, const LLUUID& id, LLVOCacheEntry::voca
if(success)
{
LL_PROFILE_ZONE_NAMED_CATEGORY_NETWORK("VOCache:loadCacheForRegion");
if(cache_id != id)
{
LL_INFOS() << "Cache ID doesn't match for this region, discarding"<< LL_ENDL;
@ -1615,6 +1618,7 @@ bool LLVOCache::readFromCache(U64 handle, const LLUUID& id, LLVOCacheEntry::voca
// void LLVOCache::readGenericExtrasFromCache(U64 handle, const LLUUID& id, LLVOCacheEntry::vocache_gltf_overrides_map_t& cache_extras_entry_map)
void LLVOCache::readGenericExtrasFromCache(U64 handle, const LLUUID& id, LLVOCacheEntry::vocache_gltf_overrides_map_t& cache_extras_entry_map, const LLVOCacheEntry::vocache_entry_map_t& cache_entry_map)
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_NETWORK;
int loaded= 0;
int discarded = 0;
// get ViewerRegion pointer from handle
@ -1635,6 +1639,13 @@ void LLVOCache::readGenericExtrasFromCache(U64 handle, const LLUUID& id, LLVOCac
}
std::string filename(getObjectCacheExtrasFilename(handle));
// <FS:Beq> Material Override Cache caused long delays
#ifdef TRACY_ENABLE
static char extra_filename[256];
strncpy(extra_filename, filename.c_str(), 256);
LL_PROFILE_ZONE_TEXT(extra_filename,256);
#endif
// </FS:Beq>
llifstream in(filename, std::ios::in | std::ios::binary);
std::string line;
@ -1714,8 +1725,10 @@ void LLVOCache::readGenericExtrasFromCache(U64 handle, const LLUUID& id, LLVOCac
LL_DEBUGS("GLTF") << "Beginning reading extras cache for handle " << handle << " from " << getObjectCacheExtrasFilename(handle) << LL_ENDL;
LLSD entry_llsd;
LL_PROFILE_ZONE_NUM(num_entries);
for (U32 i = 0; i < num_entries && !in.eof(); i++)
{
LL_PROFILE_ZONE_NAMED_CATEGORY_NETWORK("RegionExtrasReadEntries");
static const U32 max_size = 4096;
bool success = LLSDSerialize::deserialize(entry_llsd, in, max_size);
// check bool(in) this time since eof is not a failure condition here
@ -1756,6 +1769,7 @@ void LLVOCache::readGenericExtrasFromCache(U64 handle, const LLUUID& id, LLVOCac
void LLVOCache::purgeEntries(U32 size)
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_NETWORK;
// <FS:Beq/> FIRE-33808 - Material Override Cache causes long delays
LL_DEBUGS("VOCache","GLTF") << "Purging " << size << " entries from cache" << LL_ENDL;
while(mHeaderEntryQueue.size() > size)
@ -1775,6 +1789,7 @@ void LLVOCache::purgeEntries(U32 size)
void LLVOCache::writeToCache(U64 handle, const LLUUID& id, const LLVOCacheEntry::vocache_entry_map_t& cache_entry_map, BOOL dirty_cache, bool removal_enabled)
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_NETWORK;
// <FS:Beq> FIRE-33808 - Material Override Cache causes long delays
std::string filename;
getObjectCacheFilename(handle, filename);
@ -1942,6 +1957,7 @@ void LLVOCache::removeGenericExtrasForHandle(U64 handle)
void LLVOCache::writeGenericExtrasToCache(U64 handle, const LLUUID& id, const LLVOCacheEntry::vocache_gltf_overrides_map_t& cache_extras_entry_map, BOOL dirty_cache, bool removal_enabled)
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_NETWORK;
if(!mEnabled)
{
LL_WARNS() << "Not writing extras cache for handle " << handle << "): Cache is currently disabled." << LL_ENDL;