Fixed the issues encountered when trying to capture Dilan frames

This commit is contained in:
Yifei Li
2018-03-09 11:28:31 +00:00
committed by baldurk
parent 11b2baf83d
commit ad0678a886
3 changed files with 14 additions and 0 deletions
@@ -178,6 +178,7 @@ WrappedID3D12CommandQueue::WrappedID3D12CommandQueue(ID3D12CommandQueue *real,
WrappedID3D12CommandQueue::~WrappedID3D12CommandQueue()
{
m_pDevice->GetResourceManager()->ReleaseCurrentResource(GetResourceID());
m_pDevice->RemoveQueue(this);
for(size_t i = 0; i < m_Cmd.m_IndirectBuffers.size(); i++)
SAFE_RELEASE(m_Cmd.m_IndirectBuffers[i]);
+11
View File
@@ -39,6 +39,17 @@
WRAPPED_POOL_INST(WrappedID3D12Device);
void WrappedID3D12Device::RemoveQueue(WrappedID3D12CommandQueue *queue)
{
auto it = std::remove_if(m_Queues.begin(), m_Queues.end(),
[queue](const WrappedID3D12CommandQueue *q) { return q == queue; });
if(it != m_Queues.end())
m_Queues.erase(it);
else
RDCERR("Unknown wrapped queue %p being remvoed", queue);
}
std::string WrappedID3D12Device::GetChunkName(uint32_t idx)
{
if((SystemChunk)idx < SystemChunk::FirstDriverChunk)
+2
View File
@@ -374,6 +374,8 @@ public:
return m_DescriptorIncrements[type];
}
void RemoveQueue(WrappedID3D12CommandQueue *queue);
////////////////////////////////////////////////////////////////
// non wrapping interface