SL-17287 Update Tracy to 0.8.1. Clean up GPU instrumentation.
parent
096ad1306d
commit
6c6d9a10f8
|
|
@ -3142,11 +3142,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>b649ee6591e67d2341e886b3fc3484a7</string>
|
||||
<string>dff3dd1db6a4cb0b73f60a5db3ee0de2</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>md5</string>
|
||||
<key>url</key>
|
||||
<string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/86974/801642/tracy-v0.7.8.563351-windows64-563351.tar.bz2</string>
|
||||
<string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/100101/882119/tracy-v0.8.1.571983-windows64-571983.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ if (USE_TRACY)
|
|||
|
||||
if (WINDOWS)
|
||||
MESSAGE(STATUS "Including Tracy for Windows: '${TRACY_INCLUDE_DIR}'")
|
||||
set(TRACY_LIBRARY "TracyClient")
|
||||
endif (WINDOWS)
|
||||
|
||||
if (DARWIN)
|
||||
|
|
|
|||
|
|
@ -30,9 +30,9 @@
|
|||
#include "llframetimer.h"
|
||||
|
||||
// We don't bother building a stand alone lib; we just need to include the one source file for Tracy support
|
||||
#if LL_PROFILER_CONFIGURATION == LL_PROFILER_CONFIG_TRACY || LL_PROFILER_CONFIGURATION == LL_PROFILER_CONFIG_TRACY_FAST_TIMER
|
||||
#include "TracyClient.cpp"
|
||||
#endif // LL_PROFILER_CONFIGURATION
|
||||
//#if LL_PROFILER_CONFIGURATION == LL_PROFILER_CONFIG_TRACY || LL_PROFILER_CONFIGURATION == LL_PROFILER_CONFIG_TRACY_FAST_TIMER
|
||||
// #include "TracyClient.cpp"
|
||||
//#endif // LL_PROFILER_CONFIGURATION
|
||||
|
||||
// Static members
|
||||
//LLTimer LLFrameTimer::sInternalTimer;
|
||||
|
|
|
|||
|
|
@ -86,8 +86,8 @@ extern thread_local bool gProfilerEnabled;
|
|||
#define TRACY_ONLY_IPV4 1
|
||||
#include "Tracy.hpp"
|
||||
|
||||
// Mutually exclusive with detailed memory tracing
|
||||
#define LL_PROFILER_ENABLE_TRACY_OPENGL 0
|
||||
// Disable memory tracing when enabled, but enabled
|
||||
#define LL_PROFILER_ENABLE_TRACY_OPENGL 1
|
||||
#endif
|
||||
|
||||
#if LL_PROFILER_CONFIGURATION == LL_PROFILER_CONFIG_TRACY
|
||||
|
|
@ -104,8 +104,6 @@ extern thread_local bool gProfilerEnabled;
|
|||
#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
|
||||
#define LL_PROFILE_ALLOC(ptr, size) TracyAlloc(ptr, size)
|
||||
#define LL_PROFILE_FREE(ptr) TracyFree(ptr)
|
||||
#endif
|
||||
#if LL_PROFILER_CONFIGURATION == LL_PROFILER_CONFIG_FAST_TIMER
|
||||
#define LL_PROFILER_FRAME_END
|
||||
|
|
@ -121,8 +119,6 @@ extern thread_local bool gProfilerEnabled;
|
|||
#define LL_PROFILE_ZONE_ERR(name) (void)(name); // Not supported
|
||||
#define LL_PROFILE_ZONE_INFO(name) (void)(name); // Not supported
|
||||
#define LL_PROFILE_ZONE_WARN(name) (void)(name); // Not supported
|
||||
#define LL_PROFILE_ALLOC(ptr, size) (void)(ptr); (void)(size);
|
||||
#define LL_PROFILE_FREE(ptr) (void)(ptr);
|
||||
#endif
|
||||
#if LL_PROFILER_CONFIGURATION == LL_PROFILER_CONFIG_TRACY_FAST_TIMER
|
||||
#define LL_PROFILER_FRAME_END FrameMark
|
||||
|
|
@ -138,14 +134,37 @@ extern thread_local bool gProfilerEnabled;
|
|||
#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
|
||||
#define LL_PROFILE_ALLOC(ptr, size) TracyAlloc(ptr, size)
|
||||
#define LL_PROFILE_FREE(ptr) TracyFree(ptr)
|
||||
#endif
|
||||
#else
|
||||
#define LL_PROFILER_FRAME_END
|
||||
#define LL_PROFILER_SET_THREAD_NAME( name ) (void)(name)
|
||||
#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
|
||||
|
||||
// disable memory tracking (incompatible with GPU tracing
|
||||
#define LL_PROFILE_ALLOC(ptr, size) (void)(ptr); (void)(size);
|
||||
#define LL_PROFILE_FREE(ptr) (void)(ptr);
|
||||
#else
|
||||
#define LL_PROFILE_GPU_ZONE(name) (void)name;
|
||||
#define LL_PROFILE_GPU_ZONEC(name,color) (void)name;(void)color;
|
||||
#define LL_PROFILER_GPU_COLLECT
|
||||
#define LL_PROFILER_GPU_CONTEXT
|
||||
|
||||
#if LL_PROFILER_CONFIG > 1
|
||||
#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);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#include "llprofilercategories.h"
|
||||
|
||||
#endif // LL_PROFILER_H
|
||||
|
|
|
|||
|
|
@ -830,14 +830,7 @@ extern void glGetBufferPointervARB (GLenum, GLenum, GLvoid* *);
|
|||
#define glGetQueryiv glGetQueryivARB
|
||||
#define glGetQueryObjectiv glGetQueryObjectivARB
|
||||
#include <tracy/TracyOpenGL.hpp>
|
||||
|
||||
#define LL_PROFILER_GPU_ZONEC(name,color) TracyGpuZoneC(name,color);
|
||||
#define LL_PROFILER_GPU_COLLECT TracyGpuCollect
|
||||
#define LL_PROFILER_GPU_CONTEXT TracyGpuContext
|
||||
#else
|
||||
#define LL_PROFILER_GPU_ZONEC(name,color) (void)name;(void)color;
|
||||
#define LL_PROFILER_GPU_COLLECT
|
||||
#define LL_PROFILER_GPU_CONTEXT
|
||||
#endif
|
||||
|
||||
|
||||
#endif // LL_LLGLHEADERS_H
|
||||
|
|
|
|||
|
|
@ -488,13 +488,11 @@ void LLRenderTarget::bindTarget()
|
|||
GL_COLOR_ATTACHMENT1,
|
||||
GL_COLOR_ATTACHMENT2,
|
||||
GL_COLOR_ATTACHMENT3};
|
||||
LL_PROFILER_GPU_ZONEC( "gl.DrawBuffersARB", 0x4000FF )
|
||||
glDrawBuffersARB(mTex.size(), drawbuffers);
|
||||
}
|
||||
|
||||
if (mTex.empty())
|
||||
{ //no color buffer to draw to
|
||||
LL_PROFILER_GPU_ZONEC( "gl.DrawBuffer", 0x0000FF )
|
||||
glDrawBuffer(GL_NONE);
|
||||
glReadBuffer(GL_NONE);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -624,7 +624,6 @@ void LLVertexBuffer::drawRange(U32 mode, U32 start, U32 end, U32 count, U32 indi
|
|||
|
||||
stop_glerror();
|
||||
LLGLSLShader::startProfile();
|
||||
LL_PROFILER_GPU_ZONEC( "gl.DrawRangeElements", 0xFFFF00 )
|
||||
glDrawRangeElements(sGLMode[mode], start, end, count, GL_UNSIGNED_SHORT,
|
||||
idx);
|
||||
LLGLSLShader::stopProfile(count, mode);
|
||||
|
|
@ -642,7 +641,6 @@ void LLVertexBuffer::drawRangeFast(U32 mode, U32 start, U32 end, U32 count, U32
|
|||
|
||||
U16* idx = ((U16*)getIndicesPointer()) + indices_offset;
|
||||
|
||||
LL_PROFILER_GPU_ZONEC("gl.DrawRangeElements", 0xFFFF00)
|
||||
glDrawRangeElements(sGLMode[mode], start, end, count, GL_UNSIGNED_SHORT,
|
||||
idx);
|
||||
}
|
||||
|
|
@ -688,8 +686,7 @@ void LLVertexBuffer::draw(U32 mode, U32 count, U32 indices_offset) const
|
|||
|
||||
stop_glerror();
|
||||
LLGLSLShader::startProfile();
|
||||
LL_PROFILER_GPU_ZONEC( "gl.DrawElements", 0xA0FFA0 )
|
||||
glDrawElements(sGLMode[mode], count, GL_UNSIGNED_SHORT,
|
||||
glDrawElements(sGLMode[mode], count, GL_UNSIGNED_SHORT,
|
||||
((U16*) getIndicesPointer()) + indices_offset);
|
||||
LLGLSLShader::stopProfile(count, mode);
|
||||
stop_glerror();
|
||||
|
|
@ -736,7 +733,6 @@ void LLVertexBuffer::drawArrays(U32 mode, U32 first, U32 count) const
|
|||
|
||||
LLGLSLShader::startProfile();
|
||||
{
|
||||
LL_PROFILER_GPU_ZONEC("gl.DrawArrays", 0xFF4040)
|
||||
glDrawArrays(sGLMode[mode], first, count);
|
||||
}
|
||||
LLGLSLShader::stopProfile(count, mode);
|
||||
|
|
|
|||
|
|
@ -1623,8 +1623,6 @@ const S32 max_format = (S32)num_formats - 1;
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
LL_PROFILER_GPU_CONTEXT
|
||||
|
||||
if (!gGLManager.initGL())
|
||||
{
|
||||
OSMessageBox(mCallbacks->translateString("MBVideoDrvErr"), mCallbacks->translateString("MBError"), OSMB_OK);
|
||||
|
|
@ -1656,6 +1654,8 @@ const S32 max_format = (S32)num_formats - 1;
|
|||
swapBuffers();
|
||||
}
|
||||
|
||||
LL_PROFILER_GPU_CONTEXT;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
@ -1809,6 +1809,7 @@ void* LLWindowWin32::createSharedContext()
|
|||
void LLWindowWin32::makeContextCurrent(void* contextPtr)
|
||||
{
|
||||
wglMakeCurrent(mhDC, (HGLRC) contextPtr);
|
||||
LL_PROFILER_GPU_CONTEXT;
|
||||
}
|
||||
|
||||
void LLWindowWin32::destroySharedContext(void* contextPtr)
|
||||
|
|
@ -3577,7 +3578,7 @@ void LLWindowWin32::swapBuffers()
|
|||
glFlush(); //superstitious flush for maybe frame stall removal?
|
||||
SwapBuffers(mhDC);
|
||||
|
||||
LL_PROFILER_GPU_COLLECT
|
||||
LL_PROFILER_GPU_COLLECT;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -587,7 +587,6 @@ void LLFace::renderSelected(LLViewerTexture *imagep, const LLColor4& color)
|
|||
glTexCoordPointer(2, GL_FLOAT, 8, vol_face.mTexCoords);
|
||||
}
|
||||
gGL.syncMatrices();
|
||||
LL_PROFILER_GPU_ZONEC( "gl.DrawElements", 0x00FF00 );
|
||||
glDrawElements(GL_TRIANGLES, vol_face.mNumIndices, GL_UNSIGNED_SHORT, vol_face.mIndices);
|
||||
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2632,14 +2632,12 @@ void renderPhysicsShape(LLDrawable* drawable, LLVOVolume* volume)
|
|||
gGL.diffuseColor4fv(line_color.mV);
|
||||
gGL.syncMatrices();
|
||||
{
|
||||
LL_PROFILER_GPU_ZONEC( "gl.DrawElements", 0x20FF20 )
|
||||
glDrawElements(GL_TRIANGLES, phys_volume->mNumHullIndices, GL_UNSIGNED_SHORT, phys_volume->mHullIndices);
|
||||
}
|
||||
|
||||
gGL.diffuseColor4fv(color.mV);
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||
{
|
||||
LL_PROFILER_GPU_ZONEC( "gl.DrawElements", 0x40FF40 )
|
||||
glDrawElements(GL_TRIANGLES, phys_volume->mNumHullIndices, GL_UNSIGNED_SHORT, phys_volume->mHullIndices);
|
||||
}
|
||||
}
|
||||
|
|
@ -3178,7 +3176,6 @@ void renderRaycast(LLDrawable* drawablep)
|
|||
gGL.diffuseColor4f(0,1,1,0.5f);
|
||||
glVertexPointer(3, GL_FLOAT, sizeof(LLVector4a), face.mPositions);
|
||||
gGL.syncMatrices();
|
||||
LL_PROFILER_GPU_ZONEC( "gl.DrawElements", 0x60FF60 );
|
||||
glDrawElements(GL_TRIANGLES, face.mNumIndices, GL_UNSIGNED_SHORT, face.mIndices);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5274,6 +5274,7 @@ BOOL LLViewerWindow::cubeSnapshot(const LLVector3& origin, LLCubeMapArray* cubea
|
|||
{
|
||||
// NOTE: implementation derived from LLFloater360Capture::capture360Images() and simpleSnapshot
|
||||
LL_PROFILE_ZONE_SCOPED_CATEGORY_APP;
|
||||
LL_PROFILE_GPU_ZONE("cubeSnapshot");
|
||||
llassert(LLPipeline::sRenderDeferred);
|
||||
llassert(!gCubeSnapshot); //assert a snapshot isn't already in progress
|
||||
|
||||
|
|
|
|||
|
|
@ -4251,7 +4251,7 @@ U32 LLPipeline::sCurRenderPoolType = 0 ;
|
|||
void LLPipeline::renderGeom(LLCamera& camera, bool forceVBOUpdate)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED_CATEGORY_PIPELINE; //LL_RECORD_BLOCK_TIME(FTM_RENDER_GEOMETRY);
|
||||
|
||||
LL_PROFILE_GPU_ZONE("renderGeom");
|
||||
assertInitialized();
|
||||
|
||||
F32 saved_modelview[16];
|
||||
|
|
@ -4501,8 +4501,9 @@ void LLPipeline::renderGeom(LLCamera& camera, bool forceVBOUpdate)
|
|||
void LLPipeline::renderGeomDeferred(LLCamera& camera)
|
||||
{
|
||||
LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderGeomDeferred");
|
||||
|
||||
LL_PROFILE_ZONE_SCOPED_CATEGORY_DRAWPOOL; //LL_RECORD_BLOCK_TIME(FTM_RENDER_GEOMETRY);
|
||||
LL_PROFILE_GPU_ZONE("renderGeomDeferred");
|
||||
|
||||
{
|
||||
LL_PROFILE_ZONE_NAMED_CATEGORY_DRAWPOOL("deferred pools"); //LL_RECORD_BLOCK_TIME(FTM_DEFERRED_POOLS);
|
||||
|
||||
|
|
@ -4601,6 +4602,8 @@ void LLPipeline::renderGeomDeferred(LLCamera& camera)
|
|||
void LLPipeline::renderGeomPostDeferred(LLCamera& camera, bool do_occlusion)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED_CATEGORY_DRAWPOOL; //LL_RECORD_BLOCK_TIME(FTM_POST_DEFERRED_POOLS);
|
||||
LL_PROFILE_GPU_ZONE("renderGeomPostDeferred");
|
||||
|
||||
U32 cur_type = 0;
|
||||
|
||||
LLGLEnable cull(GL_CULL_FACE);
|
||||
|
|
@ -4697,6 +4700,7 @@ void LLPipeline::renderGeomPostDeferred(LLCamera& camera, bool do_occlusion)
|
|||
void LLPipeline::renderGeomShadow(LLCamera& camera)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED_CATEGORY_PIPELINE;
|
||||
LL_PROFILE_GPU_ZONE("renderGeomShadow");
|
||||
U32 cur_type = 0;
|
||||
|
||||
LLGLEnable cull(GL_CULL_FACE);
|
||||
|
|
@ -9202,6 +9206,7 @@ inline float sgn(float a)
|
|||
void LLPipeline::generateWaterReflection(LLCamera& camera_in)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED_CATEGORY_PIPELINE;
|
||||
LL_PROFILE_GPU_ZONE("generateWaterReflection");
|
||||
|
||||
if (!assertInitialized() || gCubeSnapshot)
|
||||
{
|
||||
|
|
@ -10082,6 +10087,7 @@ void LLPipeline::generateSunShadow(LLCamera& camera)
|
|||
}
|
||||
|
||||
LL_PROFILE_ZONE_SCOPED_CATEGORY_PIPELINE; //LL_RECORD_BLOCK_TIME(FTM_GEN_SUN_SHADOW);
|
||||
LL_PROFILE_GPU_ZONE("generateSunShadow");
|
||||
|
||||
bool skip_avatar_update = false;
|
||||
if (!isAgentAvatarValid() || gAgentCamera.getCameraAnimating() || gAgentCamera.getCameraMode() != CAMERA_MODE_MOUSELOOK || !LLVOAvatar::sVisibleInFirstPerson)
|
||||
|
|
@ -10932,6 +10938,7 @@ static LLTrace::BlockTimerStatHandle FTM_GENERATE_IMPOSTOR("Generate Impostor");
|
|||
void LLPipeline::generateImpostor(LLVOAvatar* avatar, bool preview_avatar)
|
||||
{
|
||||
LL_RECORD_BLOCK_TIME(FTM_GENERATE_IMPOSTOR);
|
||||
LL_PROFILE_GPU_ZONE("generateImpostor");
|
||||
LLGLState::checkStates();
|
||||
LLGLState::checkTextureChannels();
|
||||
|
||||
|
|
@ -11175,7 +11182,6 @@ void LLPipeline::generateImpostor(LLVOAvatar* avatar, bool preview_avatar)
|
|||
if (LLPipeline::sRenderDeferred)
|
||||
{
|
||||
GLuint buff = GL_COLOR_ATTACHMENT0;
|
||||
LL_PROFILER_GPU_ZONEC( "gl.DrawBuffersARB", 0x8000FF );
|
||||
glDrawBuffersARB(1, &buff);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue