Skip to content

Latest commit

 

History

History
41 lines (35 loc) · 1.02 KB

optimize-resource-usage.md

File metadata and controls

41 lines (35 loc) · 1.02 KB

bool WrappedVulkan::Serialise_vkCmdBlitImage

if(IsReplayingAndReading())
{
    if(IsActiveReplaying(m_State))
    {
        ....
    }
    else
    {
        AddAction(action);

        VulkanActionTreeNode &actionNode = GetActionStack().back()->children.back();

        if(srcImage == destImage)
        {
          actionNode.resourceUsage.push_back(make_rdcpair(
              GetResID(srcImage), EventUsage(actionNode.action.eventId, ResourceUsage::Resolve)));
        }
        else
        {
          actionNode.resourceUsage.push_back(make_rdcpair(
              GetResID(srcImage), EventUsage(actionNode.action.eventId, ResourceUsage::ResolveSrc)));
          actionNode.resourceUsage.push_back(make_rdcpair(
              GetResID(destImage), EventUsage(actionNode.action.eventId, ResourceUsage::ResolveDst)));
        }
    }
}

What about a linked list for each resourceId

uint32_t StartEID
uint16_t DeltaEID
uint16_t ResourceUsage

A million resources => 8MB for the heads 5 stage changes per resource -> 40MB