[idd] transport: publish frame routes after ready

This commit is contained in:
Geoffrey McRae
2026-10-01 08:32:24 +10:00
parent 437e19c13b
commit 70bbf180be

View File

@@ -713,7 +713,11 @@ bool CTransportManager::AddServices(Entry& entry)
if (frameBound)
{
m_tex.Rebind(id, epoch);
BumpFrameRev();
CSRWSharedLock entryLock(entry.lock);
// A newly initialized entry is published after AddServices returns.
// Bumping earlier can let the frame graph permanently omit the route.
if (entry.state == State::READY)
BumpFrameRev();
}
const bool servicesReady =
@@ -902,8 +906,14 @@ bool CTransportManager::SetupEntry(Entry& entry, size_t alignment)
return false;
}
CSRWExclusiveLock entryLock(entry.lock);
entry.state = State::READY;
bool frameReady;
{
CSRWExclusiveLock entryLock(entry.lock);
frameReady = entry.state != State::READY && entry.frameAdded;
entry.state = State::READY;
}
if (frameReady)
BumpFrameRev();
return true;
}