VulkanMemoryAllocator/docs/html/group__group__stats.html

466 lines
28 KiB
HTML
Raw Normal View History

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<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.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Vulkan Memory Allocator: Statistics</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Vulkan Memory Allocator
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">Statistics</div></div>
</div><!--header-->
<div class="contents">
<p>API elements that query current status of the allocator, from memory usage, budget, to full dump of the internal state in JSON format.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_stat_info.html">VmaStatInfo</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculated statistics of memory usage in entire allocator. <a href="struct_vma_stat_info.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_stats.html">VmaStats</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">General statistics from current state of Allocator. <a href="struct_vma_stats.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_budget.html">VmaBudget</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Statistics of current memory usage and available budget, in bytes, for specific memory heap. <a href="struct_vma_budget.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_pool_stats.html">VmaPoolStats</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Describes parameter of existing <a class="el" href="struct_vma_pool.html" title="Represents custom memory pool.">VmaPool</a>. <a href="struct_vma_pool_stats.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gaec5b57e29c97b5d69c6d5654d60df878"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_vma_stat_info.html">VmaStatInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__stats.html#gaec5b57e29c97b5d69c6d5654d60df878">VmaStatInfo</a></td></tr>
<tr class="memdesc:gaec5b57e29c97b5d69c6d5654d60df878"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculated statistics of memory usage in entire allocator. <a href="group__group__stats.html#gaec5b57e29c97b5d69c6d5654d60df878">More...</a><br /></td></tr>
<tr class="separator:gaec5b57e29c97b5d69c6d5654d60df878"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga21813b2efdf3836767a9058cd8a94034"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_vma_stats.html">VmaStats</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__stats.html#ga21813b2efdf3836767a9058cd8a94034">VmaStats</a></td></tr>
<tr class="memdesc:ga21813b2efdf3836767a9058cd8a94034"><td class="mdescLeft">&#160;</td><td class="mdescRight">General statistics from current state of Allocator. <a href="group__group__stats.html#ga21813b2efdf3836767a9058cd8a94034">More...</a><br /></td></tr>
<tr class="separator:ga21813b2efdf3836767a9058cd8a94034"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa078667e71b1ef24e87a6a30d128381d"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_vma_budget.html">VmaBudget</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__stats.html#gaa078667e71b1ef24e87a6a30d128381d">VmaBudget</a></td></tr>
<tr class="memdesc:gaa078667e71b1ef24e87a6a30d128381d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Statistics of current memory usage and available budget, in bytes, for specific memory heap. <a href="group__group__stats.html#gaa078667e71b1ef24e87a6a30d128381d">More...</a><br /></td></tr>
<tr class="separator:gaa078667e71b1ef24e87a6a30d128381d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4759a2d9f99c19ba7627553c847132f1"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_vma_pool_stats.html">VmaPoolStats</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__stats.html#ga4759a2d9f99c19ba7627553c847132f1">VmaPoolStats</a></td></tr>
<tr class="memdesc:ga4759a2d9f99c19ba7627553c847132f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Describes parameter of existing <a class="el" href="struct_vma_pool.html" title="Represents custom memory pool.">VmaPool</a>. <a href="group__group__stats.html#ga4759a2d9f99c19ba7627553c847132f1">More...</a><br /></td></tr>
<tr class="separator:ga4759a2d9f99c19ba7627553c847132f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga333b61c1788cb23559177531e6a93ca3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__stats.html#ga333b61c1788cb23559177531e6a93ca3">vmaCalculateStats</a> (<a class="el" href="struct_vma_allocator.html">VmaAllocator</a> allocator, <a class="el" href="struct_vma_stats.html">VmaStats</a> *pStats)</td></tr>
<tr class="memdesc:ga333b61c1788cb23559177531e6a93ca3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves statistics from current state of the Allocator. <a href="group__group__stats.html#ga333b61c1788cb23559177531e6a93ca3">More...</a><br /></td></tr>
<tr class="separator:ga333b61c1788cb23559177531e6a93ca3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9f88db9d46a432c0ad7278cecbc5eaa7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__stats.html#ga9f88db9d46a432c0ad7278cecbc5eaa7">vmaGetHeapBudgets</a> (<a class="el" href="struct_vma_allocator.html">VmaAllocator</a> allocator, <a class="el" href="struct_vma_budget.html">VmaBudget</a> *pBudgets)</td></tr>
<tr class="memdesc:ga9f88db9d46a432c0ad7278cecbc5eaa7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves information about current memory budget for all memory heaps. <a href="group__group__stats.html#ga9f88db9d46a432c0ad7278cecbc5eaa7">More...</a><br /></td></tr>
<tr class="separator:ga9f88db9d46a432c0ad7278cecbc5eaa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae8bf76997b234ef68aad922616df4153"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__stats.html#gae8bf76997b234ef68aad922616df4153">vmaGetPoolStats</a> (<a class="el" href="struct_vma_allocator.html">VmaAllocator</a> allocator, <a class="el" href="struct_vma_pool.html">VmaPool</a> pool, <a class="el" href="struct_vma_pool_stats.html">VmaPoolStats</a> *pPoolStats)</td></tr>
<tr class="memdesc:gae8bf76997b234ef68aad922616df4153"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves statistics of existing <a class="el" href="struct_vma_pool.html" title="Represents custom memory pool.">VmaPool</a> object. <a href="group__group__stats.html#gae8bf76997b234ef68aad922616df4153">More...</a><br /></td></tr>
<tr class="separator:gae8bf76997b234ef68aad922616df4153"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga52d810e1222c592e5d80556ad005f1e6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__stats.html#ga52d810e1222c592e5d80556ad005f1e6">vmaBuildVirtualBlockStatsString</a> (<a class="el" href="struct_vma_virtual_block.html">VmaVirtualBlock</a> virtualBlock, char **ppStatsString, VkBool32 detailedMap)</td></tr>
<tr class="memdesc:ga52d810e1222c592e5d80556ad005f1e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds and returns a null-terminated string in JSON format with information about given <a class="el" href="struct_vma_virtual_block.html" title="Handle to a virtual block object that allows to use core allocation algorithm without allocating any ...">VmaVirtualBlock</a>. <a href="group__group__stats.html#ga52d810e1222c592e5d80556ad005f1e6">More...</a><br /></td></tr>
<tr class="separator:ga52d810e1222c592e5d80556ad005f1e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga47fb8d8aa69df4a7c23a9719b4080623"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__stats.html#ga47fb8d8aa69df4a7c23a9719b4080623">vmaFreeVirtualBlockStatsString</a> (<a class="el" href="struct_vma_virtual_block.html">VmaVirtualBlock</a> virtualBlock, char *pStatsString)</td></tr>
<tr class="memdesc:ga47fb8d8aa69df4a7c23a9719b4080623"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees a string returned by <a class="el" href="group__group__stats.html#ga52d810e1222c592e5d80556ad005f1e6" title="Builds and returns a null-terminated string in JSON format with information about given VmaVirtualBlo...">vmaBuildVirtualBlockStatsString()</a>. <a href="group__group__stats.html#ga47fb8d8aa69df4a7c23a9719b4080623">More...</a><br /></td></tr>
<tr class="separator:ga47fb8d8aa69df4a7c23a9719b4080623"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa4fee7eb5253377599ef4fd38c93c2a0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__stats.html#gaa4fee7eb5253377599ef4fd38c93c2a0">vmaBuildStatsString</a> (<a class="el" href="struct_vma_allocator.html">VmaAllocator</a> allocator, char **ppStatsString, VkBool32 detailedMap)</td></tr>
<tr class="memdesc:gaa4fee7eb5253377599ef4fd38c93c2a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds and returns statistics as a null-terminated string in JSON format. <a href="group__group__stats.html#gaa4fee7eb5253377599ef4fd38c93c2a0">More...</a><br /></td></tr>
<tr class="separator:gaa4fee7eb5253377599ef4fd38c93c2a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3104eb30d8122c84dd8541063f145288"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__stats.html#ga3104eb30d8122c84dd8541063f145288">vmaFreeStatsString</a> (<a class="el" href="struct_vma_allocator.html">VmaAllocator</a> allocator, char *pStatsString)</td></tr>
<tr class="separator:ga3104eb30d8122c84dd8541063f145288"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p >API elements that query current status of the allocator, from memory usage, budget, to full dump of the internal state in JSON format. </p>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="gaa078667e71b1ef24e87a6a30d128381d" name="gaa078667e71b1ef24e87a6a30d128381d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa078667e71b1ef24e87a6a30d128381d">&#9670;&nbsp;</a></span>VmaBudget</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="struct_vma_budget.html">VmaBudget</a> <a class="el" href="struct_vma_budget.html">VmaBudget</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Statistics of current memory usage and available budget, in bytes, for specific memory heap. </p>
</div>
</div>
<a id="ga4759a2d9f99c19ba7627553c847132f1" name="ga4759a2d9f99c19ba7627553c847132f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4759a2d9f99c19ba7627553c847132f1">&#9670;&nbsp;</a></span>VmaPoolStats</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="struct_vma_pool_stats.html">VmaPoolStats</a> <a class="el" href="struct_vma_pool_stats.html">VmaPoolStats</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Describes parameter of existing <a class="el" href="struct_vma_pool.html" title="Represents custom memory pool.">VmaPool</a>. </p>
</div>
</div>
<a id="gaec5b57e29c97b5d69c6d5654d60df878" name="gaec5b57e29c97b5d69c6d5654d60df878"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaec5b57e29c97b5d69c6d5654d60df878">&#9670;&nbsp;</a></span>VmaStatInfo</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="struct_vma_stat_info.html">VmaStatInfo</a> <a class="el" href="struct_vma_stat_info.html">VmaStatInfo</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Calculated statistics of memory usage in entire allocator. </p>
</div>
</div>
<a id="ga21813b2efdf3836767a9058cd8a94034" name="ga21813b2efdf3836767a9058cd8a94034"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga21813b2efdf3836767a9058cd8a94034">&#9670;&nbsp;</a></span>VmaStats</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="struct_vma_stats.html">VmaStats</a> <a class="el" href="struct_vma_stats.html">VmaStats</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>General statistics from current state of Allocator. </p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="gaa4fee7eb5253377599ef4fd38c93c2a0" name="gaa4fee7eb5253377599ef4fd38c93c2a0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa4fee7eb5253377599ef4fd38c93c2a0">&#9670;&nbsp;</a></span>vmaBuildStatsString()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void vmaBuildStatsString </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_vma_allocator.html">VmaAllocator</a>&#160;</td>
<td class="paramname"><em>allocator</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char **&#160;</td>
<td class="paramname"><em>ppStatsString</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">VkBool32&#160;</td>
<td class="paramname"><em>detailedMap</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Builds and returns statistics as a null-terminated string in JSON format. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir"></td><td class="paramname">allocator</td><td></td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">ppStatsString</td><td>Must be freed using <a class="el" href="group__group__stats.html#ga3104eb30d8122c84dd8541063f145288">vmaFreeStatsString()</a> function. </td></tr>
<tr><td class="paramdir"></td><td class="paramname">detailedMap</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga52d810e1222c592e5d80556ad005f1e6" name="ga52d810e1222c592e5d80556ad005f1e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga52d810e1222c592e5d80556ad005f1e6">&#9670;&nbsp;</a></span>vmaBuildVirtualBlockStatsString()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void vmaBuildVirtualBlockStatsString </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_vma_virtual_block.html">VmaVirtualBlock</a>&#160;</td>
<td class="paramname"><em>virtualBlock</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char **&#160;</td>
<td class="paramname"><em>ppStatsString</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">VkBool32&#160;</td>
<td class="paramname"><em>detailedMap</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Builds and returns a null-terminated string in JSON format with information about given <a class="el" href="struct_vma_virtual_block.html" title="Handle to a virtual block object that allows to use core allocation algorithm without allocating any ...">VmaVirtualBlock</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir"></td><td class="paramname">virtualBlock</td><td>Virtual block. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">ppStatsString</td><td>Returned string. </td></tr>
<tr><td class="paramdir"></td><td class="paramname">detailedMap</td><td>Pass <code>VK_FALSE</code> to only obtain statistics as returned by <a class="el" href="group__group__virtual.html#ga95169b4730e94757897470086ec2768a" title="Calculates and returns statistics about virtual allocations and memory usage in given VmaVirtualBlock...">vmaCalculateVirtualBlockStats()</a>. Pass <code>VK_TRUE</code> to also obtain full list of allocations and free spaces.</td></tr>
</table>
</dd>
</dl>
<p>Returned string must be freed using <a class="el" href="group__group__stats.html#ga47fb8d8aa69df4a7c23a9719b4080623" title="Frees a string returned by vmaBuildVirtualBlockStatsString().">vmaFreeVirtualBlockStatsString()</a>. </p>
</div>
</div>
<a id="ga333b61c1788cb23559177531e6a93ca3" name="ga333b61c1788cb23559177531e6a93ca3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga333b61c1788cb23559177531e6a93ca3">&#9670;&nbsp;</a></span>vmaCalculateStats()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void vmaCalculateStats </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_vma_allocator.html">VmaAllocator</a>&#160;</td>
<td class="paramname"><em>allocator</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_vma_stats.html">VmaStats</a> *&#160;</td>
<td class="paramname"><em>pStats</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieves statistics from current state of the Allocator. </p>
<p >This function is called "calculate" not "get" because it has to traverse all internal data structures, so it may be quite slow. For faster but more brief statistics suitable to be called every frame or every allocation, use <a class="el" href="group__group__stats.html#ga9f88db9d46a432c0ad7278cecbc5eaa7" title="Retrieves information about current memory budget for all memory heaps.">vmaGetHeapBudgets()</a>.</p>
<p >Note that when using allocator from multiple threads, returned information may immediately become outdated. </p>
</div>
</div>
<a id="ga3104eb30d8122c84dd8541063f145288" name="ga3104eb30d8122c84dd8541063f145288"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3104eb30d8122c84dd8541063f145288">&#9670;&nbsp;</a></span>vmaFreeStatsString()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void vmaFreeStatsString </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_vma_allocator.html">VmaAllocator</a>&#160;</td>
<td class="paramname"><em>allocator</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>pStatsString</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga47fb8d8aa69df4a7c23a9719b4080623" name="ga47fb8d8aa69df4a7c23a9719b4080623"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga47fb8d8aa69df4a7c23a9719b4080623">&#9670;&nbsp;</a></span>vmaFreeVirtualBlockStatsString()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void vmaFreeVirtualBlockStatsString </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_vma_virtual_block.html">VmaVirtualBlock</a>&#160;</td>
<td class="paramname"><em>virtualBlock</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>pStatsString</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Frees a string returned by <a class="el" href="group__group__stats.html#ga52d810e1222c592e5d80556ad005f1e6" title="Builds and returns a null-terminated string in JSON format with information about given VmaVirtualBlo...">vmaBuildVirtualBlockStatsString()</a>. </p>
</div>
</div>
<a id="ga9f88db9d46a432c0ad7278cecbc5eaa7" name="ga9f88db9d46a432c0ad7278cecbc5eaa7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9f88db9d46a432c0ad7278cecbc5eaa7">&#9670;&nbsp;</a></span>vmaGetHeapBudgets()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void vmaGetHeapBudgets </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_vma_allocator.html">VmaAllocator</a>&#160;</td>
<td class="paramname"><em>allocator</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_vma_budget.html">VmaBudget</a> *&#160;</td>
<td class="paramname"><em>pBudgets</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieves information about current memory budget for all memory heaps. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir"></td><td class="paramname">allocator</td><td></td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">pBudgets</td><td>Must point to array with number of elements at least equal to number of memory heaps in physical device used.</td></tr>
</table>
</dd>
</dl>
<p>This function is called "get" not "calculate" because it is very fast, suitable to be called every frame or every allocation. For more detailed statistics use <a class="el" href="group__group__stats.html#ga333b61c1788cb23559177531e6a93ca3" title="Retrieves statistics from current state of the Allocator.">vmaCalculateStats()</a>.</p>
<p >Note that when using allocator from multiple threads, returned information may immediately become outdated. </p>
</div>
</div>
<a id="gae8bf76997b234ef68aad922616df4153" name="gae8bf76997b234ef68aad922616df4153"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae8bf76997b234ef68aad922616df4153">&#9670;&nbsp;</a></span>vmaGetPoolStats()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void vmaGetPoolStats </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_vma_allocator.html">VmaAllocator</a>&#160;</td>
<td class="paramname"><em>allocator</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_vma_pool.html">VmaPool</a>&#160;</td>
<td class="paramname"><em>pool</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_vma_pool_stats.html">VmaPoolStats</a> *&#160;</td>
<td class="paramname"><em>pPoolStats</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieves statistics of existing <a class="el" href="struct_vma_pool.html" title="Represents custom memory pool.">VmaPool</a> object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir"></td><td class="paramname">allocator</td><td>Allocator object. </td></tr>
<tr><td class="paramdir"></td><td class="paramname">pool</td><td>Pool object. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">pPoolStats</td><td>Statistics of specified pool. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</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.9.2
</small></address>
</body>
</html>