Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# 3.1.0 (2026-02-23)

- Added supported for resource tight alignment (feature added in Agility SDK 1.618.1). It is used automatically when available.
- Added function `Allocator::IsTightAlignmentSupported`.
- Added `ALLOCATOR_FLAG_DONT_USE_TIGHT_ALIGNMENT`.
- Fixes and improvements in the internal function `AllocatorPimpl::GetResourceAllocationInfo` (which decides when to use small alignment or tight alignment), including:
- Added support for 1D and 3D textures when `D3D12MA_USE_SMALL_RESOURCE_PLACEMENT_ALIGNMENT = 2` (#78, #79).
- Fix for cases when `D3D12_TEXTURE_LAYOUT_64KB_*_SWIZZLE` is used (#86).
- Fixes for build errors in MinGW (#77).
- Fixes and improvements in documentation and tests.

# 3.0.1 (2025-05-08)

- Fixed macros `D3D12MA_RECOMMENDED_ALLOCATOR_FLAGS`, `D3D12MA_RECOMMENDED_POOL_FLAGS` (#73).
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.25)

project(D3D12MemoryAllocator VERSION 3.0.2)
project(D3D12MemoryAllocator VERSION 3.1.0)

set_property(GLOBAL PROPERTY USE_FOLDERS ON)

Expand Down
2 changes: 1 addition & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2019-2025 Advanced Micro Devices, Inc. All rights reserved.
Copyright (c) 2019-2026 Advanced Micro Devices, Inc. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
Binary file modified bin/D3D12Sample.exe
Binary file not shown.
112 changes: 56 additions & 56 deletions docs/html/_d3_d12_mem_alloc_8h.html

Large diffs are not rendered by default.

54 changes: 27 additions & 27 deletions docs/html/annotated.html

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions docs/html/class_d3_d12_m_a_1_1_allocation-members.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="generator" content="Doxygen 1.16.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>D3D12 Memory Allocator: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
Expand Down Expand Up @@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<!-- Generated by Doxygen 1.16.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
Expand Down Expand Up @@ -104,7 +104,7 @@
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.16.1
</small></address>
</div><!-- doc-content -->
</body>
Expand Down
32 changes: 16 additions & 16 deletions docs/html/class_d3_d12_m_a_1_1_allocation.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="generator" content="Doxygen 1.16.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>D3D12 Memory Allocator: D3D12MA::Allocation Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
Expand Down Expand Up @@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<!-- Generated by Doxygen 1.16.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
Expand Down Expand Up @@ -95,25 +95,25 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-pub-methods" class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a47be9557d441797b65de177a3d5cdf60" id="r_a47be9557d441797b65de177a3d5cdf60"><td class="memItemLeft" align="right" valign="top">UINT64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a47be9557d441797b65de177a3d5cdf60">GetOffset</a> () const</td></tr>
<tr class="memitem:a47be9557d441797b65de177a3d5cdf60" id="r_a47be9557d441797b65de177a3d5cdf60"><td class="memItemLeft">UINT64&#160;</td><td class="memItemRight"><a class="el" href="#a47be9557d441797b65de177a3d5cdf60">GetOffset</a> () const</td></tr>
<tr class="memdesc:a47be9557d441797b65de177a3d5cdf60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns offset in bytes from the start of memory heap. <br /></td></tr>
<tr class="memitem:a0acdc6b31e957b6d83762bdaace6d255" id="r_a0acdc6b31e957b6d83762bdaace6d255"><td class="memItemLeft" align="right" valign="top">UINT64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0acdc6b31e957b6d83762bdaace6d255">GetAlignment</a> () const</td></tr>
<tr class="memitem:a0acdc6b31e957b6d83762bdaace6d255" id="r_a0acdc6b31e957b6d83762bdaace6d255"><td class="memItemLeft">UINT64&#160;</td><td class="memItemRight"><a class="el" href="#a0acdc6b31e957b6d83762bdaace6d255">GetAlignment</a> () const</td></tr>
<tr class="memdesc:a0acdc6b31e957b6d83762bdaace6d255"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns alignment that resource was created with. <br /></td></tr>
<tr class="memitem:a92c2fb6f22b28817eb83a59407d7dd30" id="r_a92c2fb6f22b28817eb83a59407d7dd30"><td class="memItemLeft" align="right" valign="top">UINT64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a92c2fb6f22b28817eb83a59407d7dd30">GetSize</a> () const</td></tr>
<tr class="memitem:a92c2fb6f22b28817eb83a59407d7dd30" id="r_a92c2fb6f22b28817eb83a59407d7dd30"><td class="memItemLeft">UINT64&#160;</td><td class="memItemRight"><a class="el" href="#a92c2fb6f22b28817eb83a59407d7dd30">GetSize</a> () const</td></tr>
<tr class="memdesc:a92c2fb6f22b28817eb83a59407d7dd30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns size in bytes of the allocation. <br /></td></tr>
<tr class="memitem:ad00308118252f82d8f803c623c67bf18" id="r_ad00308118252f82d8f803c623c67bf18"><td class="memItemLeft" align="right" valign="top">ID3D12Resource *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad00308118252f82d8f803c623c67bf18">GetResource</a> () const</td></tr>
<tr class="memitem:ad00308118252f82d8f803c623c67bf18" id="r_ad00308118252f82d8f803c623c67bf18"><td class="memItemLeft">ID3D12Resource *&#160;</td><td class="memItemRight"><a class="el" href="#ad00308118252f82d8f803c623c67bf18">GetResource</a> () const</td></tr>
<tr class="memdesc:ad00308118252f82d8f803c623c67bf18"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns D3D12 resource associated with this object. <br /></td></tr>
<tr class="memitem:a414a088c22bae0f29b1038f5f9346d14" id="r_a414a088c22bae0f29b1038f5f9346d14"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a414a088c22bae0f29b1038f5f9346d14">SetResource</a> (ID3D12Resource *pResource)</td></tr>
<tr class="memitem:a414a088c22bae0f29b1038f5f9346d14" id="r_a414a088c22bae0f29b1038f5f9346d14"><td class="memItemLeft">void&#160;</td><td class="memItemRight"><a class="el" href="#a414a088c22bae0f29b1038f5f9346d14">SetResource</a> (ID3D12Resource *pResource)</td></tr>
<tr class="memdesc:a414a088c22bae0f29b1038f5f9346d14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Releases the resource currently pointed by the allocation (if not null), sets it to new one, incrementing its reference counter (if not null). <br /></td></tr>
<tr class="memitem:adca8d5a82bed492fe7265fcda6e53da2" id="r_adca8d5a82bed492fe7265fcda6e53da2"><td class="memItemLeft" align="right" valign="top">ID3D12Heap *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#adca8d5a82bed492fe7265fcda6e53da2">GetHeap</a> () const</td></tr>
<tr class="memitem:adca8d5a82bed492fe7265fcda6e53da2" id="r_adca8d5a82bed492fe7265fcda6e53da2"><td class="memItemLeft">ID3D12Heap *&#160;</td><td class="memItemRight"><a class="el" href="#adca8d5a82bed492fe7265fcda6e53da2">GetHeap</a> () const</td></tr>
<tr class="memdesc:adca8d5a82bed492fe7265fcda6e53da2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns memory heap that the resource is created in. <br /></td></tr>
<tr class="memitem:a6f209094455dd876b6d9f84076ee1436" id="r_a6f209094455dd876b6d9f84076ee1436"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6f209094455dd876b6d9f84076ee1436">SetPrivateData</a> (void *pPrivateData)</td></tr>
<tr class="memitem:a6f209094455dd876b6d9f84076ee1436" id="r_a6f209094455dd876b6d9f84076ee1436"><td class="memItemLeft">void&#160;</td><td class="memItemRight"><a class="el" href="#a6f209094455dd876b6d9f84076ee1436">SetPrivateData</a> (void *pPrivateData)</td></tr>
<tr class="memdesc:a6f209094455dd876b6d9f84076ee1436"><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes custom pointer for an allocation to a new value. <br /></td></tr>
<tr class="memitem:ae45eed901de5d16afe179f883028c5ee" id="r_ae45eed901de5d16afe179f883028c5ee"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae45eed901de5d16afe179f883028c5ee">GetPrivateData</a> () const</td></tr>
<tr class="memitem:ae45eed901de5d16afe179f883028c5ee" id="r_ae45eed901de5d16afe179f883028c5ee"><td class="memItemLeft">void *&#160;</td><td class="memItemRight"><a class="el" href="#ae45eed901de5d16afe179f883028c5ee">GetPrivateData</a> () const</td></tr>
<tr class="memdesc:ae45eed901de5d16afe179f883028c5ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get custom pointer associated with the allocation. <br /></td></tr>
<tr class="memitem:af9e643276b577aa7f21937f75d4b82ac" id="r_af9e643276b577aa7f21937f75d4b82ac"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af9e643276b577aa7f21937f75d4b82ac">SetName</a> (LPCWSTR Name)</td></tr>
<tr class="memitem:af9e643276b577aa7f21937f75d4b82ac" id="r_af9e643276b577aa7f21937f75d4b82ac"><td class="memItemLeft">void&#160;</td><td class="memItemRight"><a class="el" href="#af9e643276b577aa7f21937f75d4b82ac">SetName</a> (LPCWSTR Name)</td></tr>
<tr class="memdesc:af9e643276b577aa7f21937f75d4b82ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Associates a name with the allocation object. This name is for use in debug diagnostics and tools. <br /></td></tr>
<tr class="memitem:a65fab0c479df1b6b72c9300e68dc6770" id="r_a65fab0c479df1b6b72c9300e68dc6770"><td class="memItemLeft" align="right" valign="top">LPCWSTR&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a65fab0c479df1b6b72c9300e68dc6770">GetName</a> () const</td></tr>
<tr class="memitem:a65fab0c479df1b6b72c9300e68dc6770" id="r_a65fab0c479df1b6b72c9300e68dc6770"><td class="memItemLeft">LPCWSTR&#160;</td><td class="memItemRight"><a class="el" href="#a65fab0c479df1b6b72c9300e68dc6770">GetName</a> () const</td></tr>
<tr class="memdesc:a65fab0c479df1b6b72c9300e68dc6770"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the name associated with the allocation object. <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
Expand Down Expand Up @@ -371,7 +371,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#a414a088c22bae0f29b1038f5
</div><div class="memdoc">

<p>Releases the resource currently pointed by the allocation (if not null), sets it to new one, incrementing its reference counter (if not null). </p>
<dl class="section warning"><dt>Warning</dt><dd>This is an advanced feature that should be used only in special cases, e.g. during <a class="el" href="defragmentation.html">Defragmentation</a>. Typically, an allocation object should reference the resource that was created together with it. If you swap it to another resource of different size, <a class="el" href="statistics.html">Statistics</a> and budgets can be calculated incorrectly. </dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>This is an advanced feature that should be used only in special cases, e.g. during <a class="el" href="defragmentation.html" title="Defragmentation">Defragmentation</a>. Typically, an allocation object should reference the resource that was created together with it. If you swap it to another resource of different size, <a class="el" href="statistics.html" title="Statistics">Statistics</a> and budgets can be calculated incorrectly. </dd></dl>

</div>
</div>
Expand Down Expand Up @@ -481,7 +481,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#a6f31560bc71451410a2a907b
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="class_d3_d12_m_a_1_1_allocation.html">Allocation</a>* D3D12MA::Allocation::next</td>
<td class="memname">Allocation* D3D12MA::Allocation::next</td>
</tr>
</table>
</div><div class="memdoc">
Expand All @@ -495,7 +495,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#adc3ac89758a915a409e047f9
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="class_d3_d12_m_a_1_1_allocation.html">Allocation</a>* D3D12MA::Allocation::prev</td>
<td class="memname">Allocation* D3D12MA::Allocation::prev</td>
</tr>
</table>
</div><div class="memdoc">
Expand All @@ -508,7 +508,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#adc3ac89758a915a409e047f9
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.16.1
</small></address>
</div><!-- doc-content -->
</body>
Expand Down
6 changes: 3 additions & 3 deletions docs/html/class_d3_d12_m_a_1_1_allocator-members.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="generator" content="Doxygen 1.16.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>D3D12 Memory Allocator: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
Expand Down Expand Up @@ -31,7 +31,7 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<!-- Generated by Doxygen 1.16.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
Expand Down Expand Up @@ -106,7 +106,7 @@
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.16.1
</small></address>
</div><!-- doc-content -->
</body>
Expand Down
Loading