mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-28 12:51:03 +00:00
Avoid allocating/deleting array during capture when it's not needed
This commit is contained in:
@@ -1057,21 +1057,26 @@ bool WrappedVulkan::Serialise_vkCmdBindDescriptorSets(
|
||||
if(m_State < WRITING)
|
||||
m_LastCmdBufferID = cmdid;
|
||||
|
||||
ResourceId *descriptorIDs = new ResourceId[numSets];
|
||||
ResourceId *descriptorIDs = NULL;
|
||||
|
||||
VkDescriptorSet *sets = (VkDescriptorSet *)pDescriptorSets;
|
||||
if(m_State < WRITING)
|
||||
{
|
||||
descriptorIDs = new ResourceId[numSets];
|
||||
sets = new VkDescriptorSet[numSets];
|
||||
}
|
||||
|
||||
for(uint32_t i=0; i < numSets; i++)
|
||||
{
|
||||
ResourceId id;
|
||||
if(m_State >= WRITING)
|
||||
descriptorIDs[i] = GetResID(sets[i]);
|
||||
id = GetResID(sets[i]);
|
||||
|
||||
localSerialiser->Serialise("DescriptorSet", descriptorIDs[i]);
|
||||
localSerialiser->Serialise("DescriptorSet", id);
|
||||
|
||||
if(m_State < WRITING)
|
||||
{
|
||||
descriptorIDs[i] = id;
|
||||
sets[i] = GetResourceManager()->GetLiveHandle<VkDescriptorSet>(descriptorIDs[i]);
|
||||
descriptorIDs[i] = GetResID(sets[i]);
|
||||
sets[i] = Unwrap(sets[i]);
|
||||
@@ -1179,9 +1184,11 @@ bool WrappedVulkan::Serialise_vkCmdBindDescriptorSets(
|
||||
}
|
||||
|
||||
if(m_State < WRITING)
|
||||
{
|
||||
SAFE_DELETE_ARRAY(sets);
|
||||
SAFE_DELETE_ARRAY(descriptorIDs);
|
||||
}
|
||||
|
||||
SAFE_DELETE_ARRAY(descriptorIDs);
|
||||
SAFE_DELETE_ARRAY(offs);
|
||||
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user