I am working on making a DX12, Vulkan framework run on CPU and GPU in parallel.
Decided to finish the Vulkan implementation before DX12. (Eat the veggies before having the steak XDD)
I have a few questions about the usage of ID3D12CommandAllocator:
Different sized command lists should use different allocators so the allocators dont grow to worst size
Does this mean that I need to know the size of the command list before calling CreateCommandList and pass the appropriate allocator?
Try to keep number of allocators to a minimum
What are the pitfalls if I create a command allocator per list? This way each allocator will never grow too large for the list. In addition, there will be no need for synchronization.
Most of the examples I have seen just use a pool of allocators and do fence based synchronization. I can modify that to also consider command list size but before that any advice on this will really help me to understand the internal workings of the ID3D12CommandAllocator in a better way.
↧