mirror of
https://github.com/wolfpld/tracy.git
synced 2026-10-01 22:45:21 +00:00
View's m_wasActive is used concurrently.
This commit is contained in:
@@ -758,7 +758,7 @@ bool View::DrawImpl()
|
||||
}
|
||||
|
||||
const auto& io = ImGui::GetIO();
|
||||
m_wasActive = false;
|
||||
m_wasActive.store( false, std::memory_order_release );
|
||||
|
||||
assert( m_shortcut == ShortcutAction::None );
|
||||
if( io.KeyCtrl )
|
||||
@@ -1254,14 +1254,18 @@ bool View::DrawImpl()
|
||||
}
|
||||
}
|
||||
|
||||
m_wasActive |= m_callstackBuzzAnim.Update( io.DeltaTime );
|
||||
m_wasActive |= m_sampleParentBuzzAnim.Update( io.DeltaTime );
|
||||
m_wasActive |= m_callstackTreeBuzzAnim.Update( io.DeltaTime );
|
||||
m_wasActive |= m_zoneinfoBuzzAnim.Update( io.DeltaTime );
|
||||
m_wasActive |= m_findZoneBuzzAnim.Update( io.DeltaTime );
|
||||
m_wasActive |= m_optionsLockBuzzAnim.Update( io.DeltaTime );
|
||||
m_wasActive |= m_lockInfoAnim.Update( io.DeltaTime );
|
||||
m_wasActive |= m_statBuzzAnim.Update( io.DeltaTime );
|
||||
bool active = m_wasActive.load( std::memory_order_acquire );
|
||||
|
||||
active |= m_callstackBuzzAnim.Update( io.DeltaTime );
|
||||
active |= m_sampleParentBuzzAnim.Update( io.DeltaTime );
|
||||
active |= m_callstackTreeBuzzAnim.Update( io.DeltaTime );
|
||||
active |= m_zoneinfoBuzzAnim.Update( io.DeltaTime );
|
||||
active |= m_findZoneBuzzAnim.Update( io.DeltaTime );
|
||||
active |= m_optionsLockBuzzAnim.Update( io.DeltaTime );
|
||||
active |= m_lockInfoAnim.Update( io.DeltaTime );
|
||||
active |= m_statBuzzAnim.Update( io.DeltaTime );
|
||||
|
||||
m_wasActive.store( active, std::memory_order_release );
|
||||
|
||||
if( m_firstFrame )
|
||||
{
|
||||
@@ -1494,7 +1498,7 @@ void View::SelectThread( uint64_t thread )
|
||||
|
||||
bool View::WasActive() const
|
||||
{
|
||||
return m_wasActive ||
|
||||
return m_wasActive.load( std::memory_order_acquire ) ||
|
||||
m_zoomAnim.active ||
|
||||
m_notificationTime > 0 ||
|
||||
!m_playback.pause ||
|
||||
|
||||
@@ -658,7 +658,7 @@ private:
|
||||
std::vector<std::unique_ptr<Annotation>> m_annotations;
|
||||
UserData m_userData;
|
||||
|
||||
bool m_wasActive = false;
|
||||
alignas(64) std::atomic<bool> m_wasActive { false };
|
||||
bool m_reconnectRequested = false;
|
||||
bool m_firstFrame = true;
|
||||
std::chrono::time_point<std::chrono::high_resolution_clock> m_firstFrameTime;
|
||||
|
||||
@@ -1410,7 +1410,7 @@ void View::DrawFindZone()
|
||||
const auto c = uint32_t( ( sin( s_time * 10 ) * 0.25 + 0.75 ) * 255 );
|
||||
const auto color = 0xFF000000 | ( c << 16 ) | ( c << 8 ) | c;
|
||||
DrawLine( draw, ImVec2( dpos.x + zonePos, dpos.y ), ImVec2( dpos.x + zonePos, dpos.y+Height-2 ), color );
|
||||
m_wasActive = true;
|
||||
m_wasActive.store( true, std::memory_order_release );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -454,7 +454,7 @@ int View::DrawLocks( const TimelineContext& ctx, const std::vector<std::unique_p
|
||||
{
|
||||
const auto t = uint8_t( ( sin( std::chrono::duration_cast<std::chrono::milliseconds>( std::chrono::system_clock::now().time_since_epoch() ).count() * 0.01 ) * 0.5 + 0.5 ) * 255 );
|
||||
draw->AddRect( wpos + ImVec2( std::max( px0, -10.0 ), offset ), wpos + ImVec2( std::min( px1, double( w + 10 ) ), offset + ty ), 0x00FFFFFF | ( t << 24 ), 0.f, -1, 2.f );
|
||||
m_wasActive = true;
|
||||
m_wasActive.store( true, std::memory_order_release );
|
||||
}
|
||||
else if( v.condensed == 0 )
|
||||
{
|
||||
|
||||
@@ -676,7 +676,7 @@ void View::DrawInfo()
|
||||
const auto c = uint32_t( ( sin( s_time * 10 ) * 0.25 + 0.75 ) * 255 );
|
||||
const auto color = 0xFF000000 | ( c << 16 ) | ( c << 8 ) | c;
|
||||
DrawLine( draw, ImVec2( dpos.x + framePos, dpos.y ), ImVec2( dpos.x + framePos, dpos.y+Height-2 ), color );
|
||||
m_wasActive = true;
|
||||
m_wasActive.store( true, std::memory_order_release );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -130,7 +130,7 @@ void View::DrawThreadMessagesList( const TimelineContext& ctx, const std::vector
|
||||
if( !isMsgHovered )
|
||||
{
|
||||
animOff = -fabs( sin( s_time * 8 ) ) * th;
|
||||
m_wasActive = true;
|
||||
m_wasActive.store( true, std::memory_order_release );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user