Hi,
when checking your trace file it looks like it’s slow everytime a heap is allocated but not a committed resource for the pool. Committed resources are allocated when it can be suballocated (non placed resources which don’t require individual state tracking).
It would be interesting to add a profile tag around: VERIFYD3D12RESULT(Adapter->GetD3DDevice()->CreateHeap(&Desc, IID_PPV_ARGS(&Heap))); in FD3D12MemoryPool::Init() and also output the sizes of the heap to see what’s going on.
I haven’t seen this pattern before.
Kind regards,
Kenzo