mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-07-09 01:00:51 +00:00
Use more efficient storage for forced references on D3D12
This commit is contained in:
@@ -3346,7 +3346,7 @@ void WrappedID3D12Device::AddForcedReference(D3D12ResourceRecord *record)
|
||||
{
|
||||
{
|
||||
SCOPED_LOCK(m_ForcedReferencesLock);
|
||||
m_ForcedReferences.push_back(record);
|
||||
m_ForcedReferences.insert(record);
|
||||
}
|
||||
|
||||
// in case we're currently capturing, immediately consider the resource as referenced. If we're
|
||||
@@ -3368,7 +3368,7 @@ void WrappedID3D12Device::ReleaseResource(ID3D12DeviceChild *res)
|
||||
|
||||
{
|
||||
SCOPED_LOCK(m_ForcedReferencesLock);
|
||||
m_ForcedReferences.removeOne(GetRecord(res));
|
||||
m_ForcedReferences.erase(GetRecord(res));
|
||||
}
|
||||
|
||||
{
|
||||
|
||||
@@ -585,7 +585,7 @@ private:
|
||||
rdcarray<WrappedID3D12CommandQueue *> m_RefQueues;
|
||||
rdcarray<ID3D12Resource *> m_RefBuffers;
|
||||
|
||||
rdcarray<D3D12ResourceRecord *> m_ForcedReferences;
|
||||
std::unordered_set<D3D12ResourceRecord *> m_ForcedReferences;
|
||||
Threading::CriticalSection m_ForcedReferencesLock;
|
||||
bool m_HaveSeenASBuild = false;
|
||||
Intervals<ResourceId> m_ASDebugTracking;
|
||||
@@ -598,7 +598,9 @@ private:
|
||||
|
||||
{
|
||||
SCOPED_LOCK(m_ForcedReferencesLock);
|
||||
ret = m_ForcedReferences;
|
||||
ret.reserve(m_ForcedReferences.size());
|
||||
for(auto it = m_ForcedReferences.begin(); it != m_ForcedReferences.end(); ++it)
|
||||
ret.push_back(*it);
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
||||
Reference in New Issue
Block a user