GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator

Easy to integrate memory allocation library for Direct3D 12

Owned by AMD

View on GitHub ↗Jump to charts ↓Open shareable report →

GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator has 1k+ stars and 100+ forks on GitHub, is written in C++, and was last pushed on Oct 11, 2026. Data as of . Signed-in members get hourly updates — create a free account.

Summary Information

Updated 50 minutes ago
Added to GitGenius on October 12th, 2026
Created on June 14th, 2019
Open Issues & Pull Requests: 1 (+0)
GitHub issues: Enabled
Number of forks: 122
Total Stargazers: 1,044 (+0)
Total Subscribers: 26 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 16.8 hours
Mean response time: 37.5 days
90th percentile: 66.1 days
Tracked items: 15

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 0
New in 7 days: 0
Closed in 7 days: 3
Avg open age: N/A days
Stale 30+ days: 0
Stale 90+ days: 0

Recent activity

Opened in 7 days: 0
Closed in 7 days: 3
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • next release (4)
  • bug (3)
  • quality (1)
  • question (1)

Most active issues this week

Sign in to see which issues are moving.
Sign in

Detailed Description

D3D12 Memory Allocator is a memory allocation library for Direct3D 12.

The library addresses the complexity of memory management in explicit graphics APIs like Direct3D 12, where best practices recommend allocating large memory blocks and assigning portions to individual resources rather than creating committed resources directly. Direct3D 12 leaves these allocation strategies to developers, making manual management error-prone and inefficient. The allocator solves this by providing a wrapper function, Allocator::CreateResource, that handles heap allocation, fragmentation tracking, and resource placement internally. It automatically respects size and alignment requirements, manages resource heap tiers to accommodate different GPU capabilities, and maintains bookkeeping for used and unused memory ranges within allocated heaps.

Developers working on Direct3D 12 applications should adopt this library if they want to reduce boilerplate memory management code and improve resource allocation efficiency. It is particularly suited for projects that create many resources dynamically or need predictable memory behavior. The library is designed as a single-header integration, making it straightforward to add to existing codebases. The README positions this tool as the Direct3D 12 equivalent of an established Vulkan memory allocation library that has seen adoption in AAA game studios and other production software.

The project maintains comprehensive Doxygen-style documentation embedded in its header file and published online. Development activity shows consistent attention to the codebase with regular updates to the changelog, indicating ongoing maintenance and refinement of the library's functionality and stability.