{"adoption": {"forks": 117, "observed_at": "2026-08-28T04:03:16.140964+00:00", "stars": 1023}, "canonical_url": "https://ross.abutalabs.com/products/d3d12memoryallocator", "card": {"archived": false, "artifact_type": "library", "description": "Easy to integrate memory allocation library for Direct3D 12", "domain": ["graphics", "developer-tools"], "enriched": true, "function": ["graphics", "simulation"], "health_score": 90, "homepage": null, "language": "C++", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator"], "name": "GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator", "platform": ["windows", "cpp", "cross-platform"], "pushed_at": "2026-06-04T22:56:30+00:00", "repo": "GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator", "stars": 1023, "tags": ["d3d12", "directx12", "memory-management", "gpu-memory", "vram", "game-engine", "c++", "game-development"], "topics": ["memory-management", "direct3d12", "d3d12", "directx12", "directx", "directx-12"], "urls": [], "use_cases": ["manage GPU memory allocation in a D3D12 renderer", "suballocate buffers and textures from large heaps in DirectX 12", "handle resource heap tiers automatically in D3D12", "create custom memory pools for GPU resources", "support resource aliasing in a custom game engine", "allocate GPU upload heaps with the Agility SDK"], "what_it_is": "A C++ library from AMD GPUOpen that simplifies memory allocation and resource creation in Direct3D 12 by suballocating large memory heaps into placed resources. It is the D3D12 equivalent of the widely used Vulkan Memory Allocator library.", "when_to_avoid": ["your project targets older APIs like Direct3D 11 or OpenGL", "you use Vulkan or another graphics API instead of D3D12", "you rely on committed resources exclusively and don't need suballocation"], "when_to_choose": ["you are writing a Direct3D 12 renderer or engine and need efficient VRAM suballocation", "you want a drop-in replacement for ID3D12Device::CreateCommittedResource with better memory reuse", "you already use Vulkan Memory Allocator and want a consistent API on D3D12", "you need thread-safe, well-documented memory management for multithreaded rendering"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/d3d12memoryallocator", "repo": "GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator", "role": "main", "score": 80}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:16.140964+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:08:16.760729+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37f4e1649273653a707c30bd08ce2a2c9517f8e018a3a857004a4dbb1be5c546", "fetched_at": "2026-08-28T04:03:16.140964+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:16.140964+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:08:16.760729+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37f4e1649273653a707c30bd08ce2a2c9517f8e018a3a857004a4dbb1be5c546", "fetched_at": "2026-08-28T04:03:16.140964+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:08:16.760729+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37f4e1649273653a707c30bd08ce2a2c9517f8e018a3a857004a4dbb1be5c546", "fetched_at": "2026-08-28T04:03:16.140964+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:16.140964+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:16.140964+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:16.140964+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:08:16.760729+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37f4e1649273653a707c30bd08ce2a2c9517f8e018a3a857004a4dbb1be5c546", "fetched_at": "2026-08-28T04:03:16.140964+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:16.140964+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:16.140964+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:08:16.760729+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37f4e1649273653a707c30bd08ce2a2c9517f8e018a3a857004a4dbb1be5c546", "fetched_at": "2026-08-28T04:03:16.140964+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:16.140964+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:16.140964+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:16.140964+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:08:16.760729+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37f4e1649273653a707c30bd08ce2a2c9517f8e018a3a857004a4dbb1be5c546", "fetched_at": "2026-08-28T04:03:16.140964+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:16.140964+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:16.140964+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:08:16.760729+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37f4e1649273653a707c30bd08ce2a2c9517f8e018a3a857004a4dbb1be5c546", "fetched_at": "2026-08-28T04:03:16.140964+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:08:16.760729+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37f4e1649273653a707c30bd08ce2a2c9517f8e018a3a857004a4dbb1be5c546", "fetched_at": "2026-08-28T04:03:16.140964+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:08:16.760729+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37f4e1649273653a707c30bd08ce2a2c9517f8e018a3a857004a4dbb1be5c546", "fetched_at": "2026-08-28T04:03:16.140964+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:08:16.760729+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37f4e1649273653a707c30bd08ce2a2c9517f8e018a3a857004a4dbb1be5c546", "fetched_at": "2026-08-28T04:03:16.140964+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 85, "longevity": 100, "rhythm": 63}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2637, "days_push": 90, "days_rel": 90, "gap_med": 100, "n_releases_24m": 4}, "score": 80, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}