Skip to content

Commit 1f7e3c6

Browse files
Added helper structs: CALLOCATION_DESC, CPOOL_DESC, CVIRTUAL_BLOCK_DESC, CVIRTUAL_ALLOCATION_DESC
Used them throughout the sample app, tests, and some parts of the documentation. Added documentation section about them. Other improvements in the documentation. Also added macros D3D12MA_RECOMMENDED_ALLOCATOR_FLAGS, D3D12MA_RECOMMENDED_HEAP_FLAGS, D3D12MA_RECOMMENDED_POOL_FLAGS. Rebuilt the documentation.
1 parent d2b7c36 commit 1f7e3c6

File tree

59 files changed

+2549
-559
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+2549
-559
lines changed

docs/html/_d3_d12_mem_alloc_8h.html

Lines changed: 87 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,18 @@
166166
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_d3_d12_m_a_1_1_virtual_block.html">D3D12MA::VirtualBlock</a></td></tr>
167167
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Represents pure allocation algorithm and a data structure with allocations in some memory block, without actually allocating any GPU memory. <a href="class_d3_d12_m_a_1_1_virtual_block.html#details">More...</a><br /></td></tr>
168168
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
169+
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_d3_d12_m_a_1_1_c_a_l_l_o_c_a_t_i_o_n___d_e_s_c.html">D3D12MA::CALLOCATION_DESC</a></td></tr>
170+
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper structure that helps with complete and conscise initialization of the <a class="el" href="struct_d3_d12_m_a_1_1_a_l_l_o_c_a_t_i_o_n___d_e_s_c.html" title="Parameters of created D3D12MA::Allocation object. To be used with Allocator::CreateResource.">D3D12MA::ALLOCATION_DESC</a> structure. <a href="struct_d3_d12_m_a_1_1_c_a_l_l_o_c_a_t_i_o_n___d_e_s_c.html#details">More...</a><br /></td></tr>
171+
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
172+
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_d3_d12_m_a_1_1_c_p_o_o_l___d_e_s_c.html">D3D12MA::CPOOL_DESC</a></td></tr>
173+
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper structure that helps with complete and conscise initialization of the <a class="el" href="struct_d3_d12_m_a_1_1_p_o_o_l___d_e_s_c.html" title="Parameters of created D3D12MA::Pool object. To be used with D3D12MA::Allocator::CreatePool.">D3D12MA::POOL_DESC</a> structure. <a href="struct_d3_d12_m_a_1_1_c_p_o_o_l___d_e_s_c.html#details">More...</a><br /></td></tr>
174+
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
175+
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_d3_d12_m_a_1_1_c_v_i_r_t_u_a_l___b_l_o_c_k___d_e_s_c.html">D3D12MA::CVIRTUAL_BLOCK_DESC</a></td></tr>
176+
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper structure that helps with complete and conscise initialization of the <a class="el" href="struct_d3_d12_m_a_1_1_v_i_r_t_u_a_l___b_l_o_c_k___d_e_s_c.html" title="Parameters of created D3D12MA::VirtualBlock object to be passed to CreateVirtualBlock().">D3D12MA::VIRTUAL_BLOCK_DESC</a> structure. <a href="struct_d3_d12_m_a_1_1_c_v_i_r_t_u_a_l___b_l_o_c_k___d_e_s_c.html#details">More...</a><br /></td></tr>
177+
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
178+
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_d3_d12_m_a_1_1_c_v_i_r_t_u_a_l___a_l_l_o_c_a_t_i_o_n___d_e_s_c.html">D3D12MA::CVIRTUAL_ALLOCATION_DESC</a></td></tr>
179+
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper structure that helps with complete and conscise initialization of the <a class="el" href="struct_d3_d12_m_a_1_1_v_i_r_t_u_a_l___a_l_l_o_c_a_t_i_o_n___d_e_s_c.html" title="Parameters of created virtual allocation to be passed to VirtualBlock::Allocate().">D3D12MA::VIRTUAL_ALLOCATION_DESC</a> structure. <a href="struct_d3_d12_m_a_1_1_c_v_i_r_t_u_a_l___a_l_l_o_c_a_t_i_o_n___d_e_s_c.html#details">More...</a><br /></td></tr>
180+
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
169181
</table><table class="memberdecls">
170182
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
171183
Namespaces</h2></td></tr>
@@ -174,11 +186,22 @@
174186
</table><table class="memberdecls">
175187
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
176188
Macros</h2></td></tr>
177-
<tr class="memitem:aa623643886b8481adb32017e5c748b50" id="r_aa623643886b8481adb32017e5c748b50"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa623643886b8481adb32017e5c748b50">D3D12MA_DXGI_1_4</a>&#160;&#160;&#160;0</td></tr>
189+
<tr class="memitem:aa623643886b8481adb32017e5c748b50" id="r_aa623643886b8481adb32017e5c748b50"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa623643886b8481adb32017e5c748b50">D3D12MA_DXGI_1_4</a>&#160;&#160;&#160;1</td></tr>
190+
<tr class="memdesc:aa623643886b8481adb32017e5c748b50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define this macro to 0 to disable usage of DXGI 1.4 (which is used for IDXGIAdapter3 and query for memory budget). <br /></td></tr>
178191
<tr class="separator:aa623643886b8481adb32017e5c748b50"><td class="memSeparator" colspan="2">&#160;</td></tr>
192+
<tr class="memitem:a6df70df4d9e792713418dd4062b07c3a" id="r_a6df70df4d9e792713418dd4062b07c3a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6df70df4d9e792713418dd4062b07c3a">D3D12MA_CREATE_NOT_ZEROED_AVAILABLE</a>&#160;&#160;&#160;1</td></tr>
193+
<tr class="separator:a6df70df4d9e792713418dd4062b07c3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
179194
<tr class="memitem:ad04069a2e2bbc53b7d65f85a04a2dcbc" id="r_ad04069a2e2bbc53b7d65f85a04a2dcbc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad04069a2e2bbc53b7d65f85a04a2dcbc">D3D12MA_USE_SMALL_RESOURCE_PLACEMENT_ALIGNMENT</a>&#160;&#160;&#160;1</td></tr>
180195
<tr class="memdesc:ad04069a2e2bbc53b7d65f85a04a2dcbc"><td class="mdescLeft">&#160;</td><td class="mdescRight">When defined to value other than 0, the library will try to use <code>D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT</code> or <code>D3D12_SMALL_MSAA_RESOURCE_PLACEMENT_ALIGNMENT</code> for created textures when possible, which can save memory because some small textures may get their alignment 4 KB and their size a multiply of 4 KB instead of 64 KB. <br /></td></tr>
181196
<tr class="separator:ad04069a2e2bbc53b7d65f85a04a2dcbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
197+
<tr class="memitem:accfbeae642feeacf353ce695e91a5e73" id="r_accfbeae642feeacf353ce695e91a5e73"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#accfbeae642feeacf353ce695e91a5e73">D3D12MA_RECOMMENDED_ALLOCATOR_FLAGS</a>&#160;&#160;&#160;(ALLOCATOR_FLAG_DEFAULT_POOLS_NOT_ZEROED | ALLOCATOR_FLAG_MSAA_TEXTURES_ALWAYS_COMMITTED)</td></tr>
198+
<tr class="memdesc:accfbeae642feeacf353ce695e91a5e73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set of flags recommended for use in <a class="el" href="struct_d3_d12_m_a_1_1_a_l_l_o_c_a_t_o_r___d_e_s_c.html#ad8abad7c80ea0d8df27c85243ce720f3" title="Flags for the entire allocator.">D3D12MA::ALLOCATOR_DESC::Flags</a> for optimal performance. <br /></td></tr>
199+
<tr class="separator:accfbeae642feeacf353ce695e91a5e73"><td class="memSeparator" colspan="2">&#160;</td></tr>
200+
<tr class="memitem:ac3d50f134ad24c58df4a934b87847653" id="r_ac3d50f134ad24c58df4a934b87847653"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac3d50f134ad24c58df4a934b87847653">D3D12MA_RECOMMENDED_HEAP_FLAGS</a>&#160;&#160;&#160;(D3D12_HEAP_FLAG_NONE)</td></tr>
201+
<tr class="separator:ac3d50f134ad24c58df4a934b87847653"><td class="memSeparator" colspan="2">&#160;</td></tr>
202+
<tr class="memitem:a2679d8c9f6d900168bb45450bc88998b" id="r_a2679d8c9f6d900168bb45450bc88998b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2679d8c9f6d900168bb45450bc88998b">D3D12MA_RECOMMENDED_POOL_FLAGS</a>&#160;&#160;&#160;(POOL_FLAG_MSAA_TEXTURES_ALWAYS_COMMITTED)</td></tr>
203+
<tr class="memdesc:a2679d8c9f6d900168bb45450bc88998b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set of flags recommended for use in <a class="el" href="struct_d3_d12_m_a_1_1_p_o_o_l___d_e_s_c.html#ac4ed93b0191344d68c0b4ac1a4822ff4" title="Flags for the heap.">D3D12MA::POOL_DESC::Flags</a> for optimal performance. <br /></td></tr>
204+
<tr class="separator:a2679d8c9f6d900168bb45450bc88998b"><td class="memSeparator" colspan="2">&#160;</td></tr>
182205
</table><table class="memberdecls">
183206
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
184207
Typedefs</h2></td></tr>
@@ -278,18 +301,80 @@
278301
<tr class="separator:ab024647ae85ee63e2fa2c1c4beac6d98"><td class="memSeparator" colspan="2">&#160;</td></tr>
279302
</table>
280303
<h2 class="groupheader">Macro Definition Documentation</h2>
304+
<a id="a6df70df4d9e792713418dd4062b07c3a" name="a6df70df4d9e792713418dd4062b07c3a"></a>
305+
<h2 class="memtitle"><span class="permalink"><a href="#a6df70df4d9e792713418dd4062b07c3a">&#9670;&#160;</a></span>D3D12MA_CREATE_NOT_ZEROED_AVAILABLE</h2>
306+
307+
<div class="memitem">
308+
<div class="memproto">
309+
<table class="memname">
310+
<tr>
311+
<td class="memname">#define D3D12MA_CREATE_NOT_ZEROED_AVAILABLE&#160;&#160;&#160;1</td>
312+
</tr>
313+
</table>
314+
</div><div class="memdoc">
315+
316+
</div>
317+
</div>
281318
<a id="aa623643886b8481adb32017e5c748b50" name="aa623643886b8481adb32017e5c748b50"></a>
282319
<h2 class="memtitle"><span class="permalink"><a href="#aa623643886b8481adb32017e5c748b50">&#9670;&#160;</a></span>D3D12MA_DXGI_1_4</h2>
283320

284321
<div class="memitem">
285322
<div class="memproto">
286323
<table class="memname">
287324
<tr>
288-
<td class="memname">#define D3D12MA_DXGI_1_4&#160;&#160;&#160;0</td>
325+
<td class="memname">#define D3D12MA_DXGI_1_4&#160;&#160;&#160;1</td>
289326
</tr>
290327
</table>
291328
</div><div class="memdoc">
292329

330+
<p>Define this macro to 0 to disable usage of DXGI 1.4 (which is used for IDXGIAdapter3 and query for memory budget). </p>
331+
332+
</div>
333+
</div>
334+
<a id="accfbeae642feeacf353ce695e91a5e73" name="accfbeae642feeacf353ce695e91a5e73"></a>
335+
<h2 class="memtitle"><span class="permalink"><a href="#accfbeae642feeacf353ce695e91a5e73">&#9670;&#160;</a></span>D3D12MA_RECOMMENDED_ALLOCATOR_FLAGS</h2>
336+
337+
<div class="memitem">
338+
<div class="memproto">
339+
<table class="memname">
340+
<tr>
341+
<td class="memname">#define D3D12MA_RECOMMENDED_ALLOCATOR_FLAGS&#160;&#160;&#160;(ALLOCATOR_FLAG_DEFAULT_POOLS_NOT_ZEROED | ALLOCATOR_FLAG_MSAA_TEXTURES_ALWAYS_COMMITTED)</td>
342+
</tr>
343+
</table>
344+
</div><div class="memdoc">
345+
346+
<p>Set of flags recommended for use in <a class="el" href="struct_d3_d12_m_a_1_1_a_l_l_o_c_a_t_o_r___d_e_s_c.html#ad8abad7c80ea0d8df27c85243ce720f3" title="Flags for the entire allocator.">D3D12MA::ALLOCATOR_DESC::Flags</a> for optimal performance. </p>
347+
348+
</div>
349+
</div>
350+
<a id="ac3d50f134ad24c58df4a934b87847653" name="ac3d50f134ad24c58df4a934b87847653"></a>
351+
<h2 class="memtitle"><span class="permalink"><a href="#ac3d50f134ad24c58df4a934b87847653">&#9670;&#160;</a></span>D3D12MA_RECOMMENDED_HEAP_FLAGS</h2>
352+
353+
<div class="memitem">
354+
<div class="memproto">
355+
<table class="memname">
356+
<tr>
357+
<td class="memname">#define D3D12MA_RECOMMENDED_HEAP_FLAGS&#160;&#160;&#160;(D3D12_HEAP_FLAG_NONE)</td>
358+
</tr>
359+
</table>
360+
</div><div class="memdoc">
361+
362+
</div>
363+
</div>
364+
<a id="a2679d8c9f6d900168bb45450bc88998b" name="a2679d8c9f6d900168bb45450bc88998b"></a>
365+
<h2 class="memtitle"><span class="permalink"><a href="#a2679d8c9f6d900168bb45450bc88998b">&#9670;&#160;</a></span>D3D12MA_RECOMMENDED_POOL_FLAGS</h2>
366+
367+
<div class="memitem">
368+
<div class="memproto">
369+
<table class="memname">
370+
<tr>
371+
<td class="memname">#define D3D12MA_RECOMMENDED_POOL_FLAGS&#160;&#160;&#160;(POOL_FLAG_MSAA_TEXTURES_ALWAYS_COMMITTED)</td>
372+
</tr>
373+
</table>
374+
</div><div class="memdoc">
375+
376+
<p>Set of flags recommended for use in <a class="el" href="struct_d3_d12_m_a_1_1_p_o_o_l___d_e_s_c.html#ac4ed93b0191344d68c0b4ac1a4822ff4" title="Flags for the heap.">D3D12MA::POOL_DESC::Flags</a> for optimal performance. </p>
377+
293378
</div>
294379
</div>
295380
<a id="ad04069a2e2bbc53b7d65f85a04a2dcbc" name="ad04069a2e2bbc53b7d65f85a04a2dcbc"></a>

0 commit comments

Comments
 (0)