1
0
mirror of https://github.com/wolfpld/tracy.git synced 2025-03-20 07:40:02 +08:00

GPU context registration.

This commit is contained in:
Bartosz Taudul
2017-11-11 19:44:09 +01:00
parent ce35009c63
commit 3c00ce0958
7 changed files with 79 additions and 0 deletions
+5
View File
@@ -112,6 +112,11 @@ struct ThreadData
Vector<MessageData*> messages;
};
struct GpuCtxData
{
int64_t timeDiff;
};
struct LockMap
{
uint32_t srcloc;
+12
View File
@@ -588,6 +588,9 @@ void View::Process( const QueueItem& ev )
case QueueType::MessageLiteral:
ProcessMessageLiteral( ev.message );
break;
case QueueType::GpuNewContext:
ProcessGpuNewContext( ev.gpuNewContext );
break;
case QueueType::Terminate:
m_terminate = true;
break;
@@ -844,6 +847,15 @@ void View::ProcessMessageLiteral( const QueueMessage& ev )
InsertMessageData( msg, ev.thread );
}
void View::ProcessGpuNewContext( const QueueGpuNewContext& ev )
{
assert( ev.context == m_gpuData.size() );
auto gpu = m_slab.Alloc<GpuCtxData>();
gpu->timeDiff = int64_t( ev.cputime * m_timerMul - ev.gputime );
std::lock_guard<std::mutex> lock( m_lock );
m_gpuData.push_back( gpu );
}
void View::CheckString( uint64_t ptr )
{
if( m_strings.find( ptr ) != m_strings.end() ) return;
+2
View File
@@ -67,6 +67,7 @@ private:
void ProcessPlotData( const QueuePlotData& ev );
void ProcessMessage( const QueueMessage& ev );
void ProcessMessageLiteral( const QueueMessage& ev );
void ProcessGpuNewContext( const QueueGpuNewContext& ev );
void CheckString( uint64_t ptr );
void CheckThreadString( uint64_t id );
@@ -158,6 +159,7 @@ private:
Vector<PlotData*> m_plots;
Vector<MessageData*> m_messages;
Vector<TextData*> m_textData;
Vector<GpuCtxData*> m_gpuData;
std::unordered_map<uint64_t, const char*> m_strings;
std::unordered_map<uint64_t, const char*> m_threadNames;
std::unordered_map<uint64_t, SourceLocation> m_sourceLocation;