diff --git a/server/TracyWorker.cpp b/server/TracyWorker.cpp index 90dac69c10..a57c8d386d 100644 --- a/server/TracyWorker.cpp +++ b/server/TracyWorker.cpp @@ -2756,6 +2756,7 @@ void Worker::Exec() m_captureTime = welcome.epoch; m_executableTime = welcome.exectime; m_ignoreMemFreeFaults = ( welcome.flags & WelcomeFlag::OnDemand ) || ( welcome.flags & WelcomeFlag::IsApple ); + m_ignoreFrameEndFaults = welcome.flags & WelcomeFlag::OnDemand; m_data.cpuArch = (CpuArchitecture)welcome.cpuArch; m_codeTransfer = welcome.flags & WelcomeFlag::CodeTransfer; m_combineSamples = welcome.flags & WelcomeFlag::CombineSamples; @@ -5076,12 +5077,12 @@ void Worker::ProcessFrameMarkEnd( const QueueFrameMark& ev ) } ); assert( fd->continuous == 0 ); - const auto time = TscTime( ev.time ); if( fd->frames.empty() ) { - FrameEndFailure(); + if( !m_ignoreFrameEndFaults ) FrameEndFailure(); return; } + const auto time = TscTime( ev.time ); assert( fd->frames.back().end == -1 ); fd->frames.back().end = time; if( m_data.lastTime < time ) m_data.lastTime = time; diff --git a/server/TracyWorker.hpp b/server/TracyWorker.hpp index 6ef503c9ee..b84b3ec941 100644 --- a/server/TracyWorker.hpp +++ b/server/TracyWorker.hpp @@ -980,6 +980,7 @@ class Worker int m_bufferOffset; bool m_onDemand; bool m_ignoreMemFreeFaults; + bool m_ignoreFrameEndFaults; bool m_codeTransfer; bool m_combineSamples; bool m_identifySamples = false;