PatriotEngine icon indicating copy to clipboard operation
PatriotEngine copied to clipboard

Develop the MemoryAllocator for Direct3D12 / Vulkan / Metal

Open HanetakaChou opened this issue 4 years ago • 5 comments

  • 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

HanetakaChou avatar Dec 13 '20 12:12 HanetakaChou

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

HanetakaChou avatar Dec 13 '20 13:12 HanetakaChou

// 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.

HanetakaChou avatar Dec 23 '20 02:12 HanetakaChou

Development Notes at docs/malloc.md

HanetakaChou avatar Dec 23 '20 08:12 HanetakaChou

Have done with the SLOB //pt_gfx_malloc_test

vkDeviceMemory <=> ID3D12Heap <=> MTLHeap
vkBindXXMemory <=> ID3D12Device::CreatePlacedResource <=> MTLHeap::makeXXX

HanetakaChou avatar Jan 02 '21 13:01 HanetakaChou