A lot of DX12 articles talk about implementing the descriptor heap entries as a ring buffer (notably the nVidia Do's and Don'ts). I've also read in these forums that some people prefer a stack-allocated scheme. I don't see why these methods would be the preferred way of solving this problem. A ring buffer of descriptors is great if you're always adding new descriptors while deleting the oldest ones. But what happens when you want to remove a descriptor from the middle of the active set? And as for a stack-allocated scheme, wouldn't that involve copying in the descriptors every frame? Why wouldn't something like a free-list or buddy allocator be preferable to either of these setups?
↧