VulkanMemoryAllocator/docs/html/struct_vma_detailed_statistics.html
Adam Sawicki 226bd5a6ad New API for statistics. COMPATIBILITY BREAKING!
New structure VmaStatistics, VmaDetailedStatistics, VmaTotalStatistics. Modified structure VmaBudget.
New function vmaCalculateStatistics, vmaGetPoolStatistics, vmaCalculatePoolStatistics, vmaGetVirtualBlockStatistics, vmaCalculateVirtualBlockStatistics. vmaGetHeapBudgets function unchanged.

Updated and rebuilt the docs.
2022-02-22 15:19:35 +01:00

210 lines
12 KiB
HTML

<!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: VmaDetailedStatistics Struct Reference</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>
<!-- 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><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="struct_vma_detailed_statistics-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">VmaDetailedStatistics Struct Reference<div class="ingroups"><a class="el" href="group__group__stats.html">Statistics</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>More detailed statistics than <a class="el" href="struct_vma_statistics.html" title="Calculated statistics of memory usage e.g. in a specific memory type, heap, custom pool,...">VmaStatistics</a>.
<a href="struct_vma_detailed_statistics.html#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a13efbdb35bd1291191d275f43e96d360"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_vma_statistics.html">VmaStatistics</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_detailed_statistics.html#a13efbdb35bd1291191d275f43e96d360">statistics</a></td></tr>
<tr class="memdesc:a13efbdb35bd1291191d275f43e96d360"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic statistics. <a href="struct_vma_detailed_statistics.html#a13efbdb35bd1291191d275f43e96d360">More...</a><br /></td></tr>
<tr class="separator:a13efbdb35bd1291191d275f43e96d360"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab721bf04892e8b67802d4ddb7734638a"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_detailed_statistics.html#ab721bf04892e8b67802d4ddb7734638a">unusedRangeCount</a></td></tr>
<tr class="memdesc:ab721bf04892e8b67802d4ddb7734638a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of free ranges of memory between allocations. <a href="struct_vma_detailed_statistics.html#ab721bf04892e8b67802d4ddb7734638a">More...</a><br /></td></tr>
<tr class="separator:ab721bf04892e8b67802d4ddb7734638a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6fb397e7487e10f2a52e241577d2a2b8"><td class="memItemLeft" align="right" valign="top">VkDeviceSize&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_detailed_statistics.html#a6fb397e7487e10f2a52e241577d2a2b8">allocationSizeMin</a></td></tr>
<tr class="memdesc:a6fb397e7487e10f2a52e241577d2a2b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Smallest allocation size. <code>VK_WHOLE_SIZE</code> if there are 0 allocations. <a href="struct_vma_detailed_statistics.html#a6fb397e7487e10f2a52e241577d2a2b8">More...</a><br /></td></tr>
<tr class="separator:a6fb397e7487e10f2a52e241577d2a2b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06b2add24eed3449a66ff151979a0201"><td class="memItemLeft" align="right" valign="top">VkDeviceSize&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_detailed_statistics.html#a06b2add24eed3449a66ff151979a0201">allocationSizeMax</a></td></tr>
<tr class="memdesc:a06b2add24eed3449a66ff151979a0201"><td class="mdescLeft">&#160;</td><td class="mdescRight">Largest allocation size. 0 if there are 0 allocations. <a href="struct_vma_detailed_statistics.html#a06b2add24eed3449a66ff151979a0201">More...</a><br /></td></tr>
<tr class="separator:a06b2add24eed3449a66ff151979a0201"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a830eda847ed735d0e91da25cfcf797a4"><td class="memItemLeft" align="right" valign="top">VkDeviceSize&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_detailed_statistics.html#a830eda847ed735d0e91da25cfcf797a4">unusedRangeSizeMin</a></td></tr>
<tr class="memdesc:a830eda847ed735d0e91da25cfcf797a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Smallest empty range size. <code>VK_WHOLE_SIZE</code> if there are 0 empty ranges. <a href="struct_vma_detailed_statistics.html#a830eda847ed735d0e91da25cfcf797a4">More...</a><br /></td></tr>
<tr class="separator:a830eda847ed735d0e91da25cfcf797a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af98943b5da98cf441ffa04b67914c78c"><td class="memItemLeft" align="right" valign="top">VkDeviceSize&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_detailed_statistics.html#af98943b5da98cf441ffa04b67914c78c">unusedRangeSizeMax</a></td></tr>
<tr class="memdesc:af98943b5da98cf441ffa04b67914c78c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Largest empty range size. 0 if there are 0 empty ranges. <a href="struct_vma_detailed_statistics.html#af98943b5da98cf441ffa04b67914c78c">More...</a><br /></td></tr>
<tr class="separator:af98943b5da98cf441ffa04b67914c78c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p >More detailed statistics than <a class="el" href="struct_vma_statistics.html" title="Calculated statistics of memory usage e.g. in a specific memory type, heap, custom pool,...">VmaStatistics</a>. </p>
<p >These are slower to calculate. Use for debugging purposes. See functions: <a class="el" href="group__group__stats.html#ga36f3484de7aa6cd6edc4de9edfa0ff59" title="Retrieves statistics from current state of the Allocator.">vmaCalculateStatistics()</a>, <a class="el" href="group__group__stats.html#ga50ba0eb25d2b363b792be4645ca7a380" title="Retrieves detailed statistics of existing VmaPool object.">vmaCalculatePoolStatistics()</a>.</p>
<p >Previous version of the statistics API provided averages, but they have been removed because they can be easily calculated as:</p>
<div class="fragment"><div class="line">VkDeviceSize allocationSizeAvg = detailedStats.statistics.allocationBytes / detailedStats.statistics.allocationCount;</div>
<div class="line">VkDeviceSize unusedBytes = detailedStats.statistics.blockBytes - detailedStats.statistics.allocationBytes;</div>
<div class="line">VkDeviceSize unusedRangeSizeAvg = unusedBytes / detailedStats.unusedRangeCount;</div>
</div><!-- fragment --> </div><h2 class="groupheader">Member Data Documentation</h2>
<a id="a06b2add24eed3449a66ff151979a0201" name="a06b2add24eed3449a66ff151979a0201"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a06b2add24eed3449a66ff151979a0201">&#9670;&nbsp;</a></span>allocationSizeMax</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">VkDeviceSize VmaDetailedStatistics::allocationSizeMax</td>
</tr>
</table>
</div><div class="memdoc">
<p>Largest allocation size. 0 if there are 0 allocations. </p>
</div>
</div>
<a id="a6fb397e7487e10f2a52e241577d2a2b8" name="a6fb397e7487e10f2a52e241577d2a2b8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6fb397e7487e10f2a52e241577d2a2b8">&#9670;&nbsp;</a></span>allocationSizeMin</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">VkDeviceSize VmaDetailedStatistics::allocationSizeMin</td>
</tr>
</table>
</div><div class="memdoc">
<p>Smallest allocation size. <code>VK_WHOLE_SIZE</code> if there are 0 allocations. </p>
</div>
</div>
<a id="a13efbdb35bd1291191d275f43e96d360" name="a13efbdb35bd1291191d275f43e96d360"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a13efbdb35bd1291191d275f43e96d360">&#9670;&nbsp;</a></span>statistics</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="struct_vma_statistics.html">VmaStatistics</a> VmaDetailedStatistics::statistics</td>
</tr>
</table>
</div><div class="memdoc">
<p>Basic statistics. </p>
</div>
</div>
<a id="ab721bf04892e8b67802d4ddb7734638a" name="ab721bf04892e8b67802d4ddb7734638a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab721bf04892e8b67802d4ddb7734638a">&#9670;&nbsp;</a></span>unusedRangeCount</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t VmaDetailedStatistics::unusedRangeCount</td>
</tr>
</table>
</div><div class="memdoc">
<p>Number of free ranges of memory between allocations. </p>
</div>
</div>
<a id="af98943b5da98cf441ffa04b67914c78c" name="af98943b5da98cf441ffa04b67914c78c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af98943b5da98cf441ffa04b67914c78c">&#9670;&nbsp;</a></span>unusedRangeSizeMax</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">VkDeviceSize VmaDetailedStatistics::unusedRangeSizeMax</td>
</tr>
</table>
</div><div class="memdoc">
<p>Largest empty range size. 0 if there are 0 empty ranges. </p>
</div>
</div>
<a id="a830eda847ed735d0e91da25cfcf797a4" name="a830eda847ed735d0e91da25cfcf797a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a830eda847ed735d0e91da25cfcf797a4">&#9670;&nbsp;</a></span>unusedRangeSizeMin</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">VkDeviceSize VmaDetailedStatistics::unusedRangeSizeMin</td>
</tr>
</table>
</div><div class="memdoc">
<p>Smallest empty range size. <code>VK_WHOLE_SIZE</code> if there are 0 empty ranges. </p>
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li>D:/PROJECTS/Vulkan Memory Allocator/REPO/include/<a class="el" href="vk__mem__alloc_8h.html">vk_mem_alloc.h</a></li>
</ul>
</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>