PatriotEngine
PatriotEngine copied to clipboard
Develop the MemoryAllocator for Direct3D12 / Vulkan / Metal
- 3.Develop the MemoryAllocator for Direct3D12 / Vulkan / Metal
Reference:
- Intel TBB
[Hudson 2006] Richard L. Hudson, Bratin Saha, Ali-Reza Adl-Tabatabai, Benjamin C. Hertzberg. "McRT-Malloc: a scalable transactional memory allocator". ISMM 2006.
[Kukanov 2007] Alexey Kukanov, Michael J.Voss. "The Foundations for Scalable Multi-core Software in Intel Threading Building Blocks." Intel Technology Journal, Volume11, Issue 4 2007.- Vulkan Memory Allocator
- D3D12 Memory Allocator
The solution may depend on whether the device has another queue for transfer in addition to the queue for graphics and present. vk_async_resources https://github.com/YuqiaoZhang/vk_async_resources https://github.com/nvpro-samples/vk_async_resources
// SLOB // kernel 3.5 // https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/mm/slob.c?h=v3.5&id=28a33cbc24e4256c143dce96c7d93bf423229f92 // [Rosenberg 2012] Dan Rosenberg. "A Heap of Trouble: Breaking the Linux Kernel SLOB Allocator." Virtual Security Research 2012.
- We may be inspired by the following paper:
Development Notes at docs/malloc.md
Have done with the SLOB //pt_gfx_malloc_test
vkDeviceMemory <=> ID3D12Heap <=> MTLHeap
vkBindXXMemory <=> ID3D12Device::CreatePlacedResource <=> MTLHeap::makeXXX