blob: b3b2324f65b81f058d13c12b585e200f2ed2fc26 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Vulkan Memory Allocator: VmaMemoryRequirements 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.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</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_memory_requirements-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">VmaMemoryRequirements Struct Reference<div class="ingroups"><a class="el" href="group__layer1.html">Layer 1 Choosing Memory Type</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="vk__mem__alloc_8h_source.html">vk_mem_alloc.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a401cdf684f8a13c8ff3bb469a1759153"><td class="memItemLeft" align="right" valign="top">VkBool32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_memory_requirements.html#a401cdf684f8a13c8ff3bb469a1759153">ownMemory</a></td></tr>
<tr class="memdesc:a401cdf684f8a13c8ff3bb469a1759153"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to true if this allocation should have its own memory block. <a href="#a401cdf684f8a13c8ff3bb469a1759153">More...</a><br /></td></tr>
<tr class="separator:a401cdf684f8a13c8ff3bb469a1759153"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab588497177a57847ed04e0a1aef54bbe"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__layer1.html#gaa5846affa1e9da3800e3e78fae2305cc">VmaMemoryUsage</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_memory_requirements.html#ab588497177a57847ed04e0a1aef54bbe">usage</a></td></tr>
<tr class="memdesc:ab588497177a57847ed04e0a1aef54bbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Intended usage of memory. <a href="#ab588497177a57847ed04e0a1aef54bbe">More...</a><br /></td></tr>
<tr class="separator:ab588497177a57847ed04e0a1aef54bbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8876c1b0f112e13a277f16967064cfe0"><td class="memItemLeft" align="right" valign="top">VkMemoryPropertyFlags&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_memory_requirements.html#a8876c1b0f112e13a277f16967064cfe0">requiredFlags</a></td></tr>
<tr class="memdesc:a8876c1b0f112e13a277f16967064cfe0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flags that must be set in a Memory Type chosen for an allocation. <a href="#a8876c1b0f112e13a277f16967064cfe0">More...</a><br /></td></tr>
<tr class="separator:a8876c1b0f112e13a277f16967064cfe0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e105f836c2288034c711815b18226dc"><td class="memItemLeft" align="right" valign="top">VkMemoryPropertyFlags&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_memory_requirements.html#a6e105f836c2288034c711815b18226dc">preferredFlags</a></td></tr>
<tr class="memdesc:a6e105f836c2288034c711815b18226dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flags that preferably should be set in a Memory Type chosen for an allocation. <a href="#a6e105f836c2288034c711815b18226dc">More...</a><br /></td></tr>
<tr class="separator:a6e105f836c2288034c711815b18226dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2259df9db140839199fa43b651c58447"><td class="memItemLeft" align="right" valign="top">VkBool32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_memory_requirements.html#a2259df9db140839199fa43b651c58447">neverAllocate</a></td></tr>
<tr class="memdesc:a2259df9db140839199fa43b651c58447"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set this flag to only try to allocate from existing VkDeviceMemory blocks and never create new such block. <a href="#a2259df9db140839199fa43b651c58447">More...</a><br /></td></tr>
<tr class="separator:a2259df9db140839199fa43b651c58447"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a2259df9db140839199fa43b651c58447"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2259df9db140839199fa43b651c58447">&#9670;&nbsp;</a></span>neverAllocate</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">VkBool32 VmaMemoryRequirements::neverAllocate</td>
</tr>
</table>
</div><div class="memdoc">
<p>Set this flag to only try to allocate from existing VkDeviceMemory blocks and never create new such block. </p>
<p>If new allocation cannot be placed in any of the existing blocks, allocation fails with VK_ERROR_OUT_OF_DEVICE_MEMORY error.</p>
<p>It makes no sense to set ownMemory and neverAllocate at the same time. </p>
</div>
</div>
<a id="a401cdf684f8a13c8ff3bb469a1759153"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a401cdf684f8a13c8ff3bb469a1759153">&#9670;&nbsp;</a></span>ownMemory</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">VkBool32 VmaMemoryRequirements::ownMemory</td>
</tr>
</table>
</div><div class="memdoc">
<p>Set to true if this allocation should have its own memory block. </p>
<p>Use it for special, big resources, like fullscreen images used as attachments.</p>
<p>This flag must also be used for host visible resources that you want to map simultaneously because otherwise they might end up as regions of the same VkDeviceMemory, while mapping same VkDeviceMemory multiple times is illegal. </p>
</div>
</div>
<a id="a6e105f836c2288034c711815b18226dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e105f836c2288034c711815b18226dc">&#9670;&nbsp;</a></span>preferredFlags</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">VkMemoryPropertyFlags VmaMemoryRequirements::preferredFlags</td>
</tr>
</table>
</div><div class="memdoc">
<p>Flags that preferably should be set in a Memory Type chosen for an allocation. </p>
<p>Set to 0 if no additional flags are prefered and only requiredFlags should be used. If not 0, it must be a superset or equal to requiredFlags. </p>
</div>
</div>
<a id="a8876c1b0f112e13a277f16967064cfe0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8876c1b0f112e13a277f16967064cfe0">&#9670;&nbsp;</a></span>requiredFlags</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">VkMemoryPropertyFlags VmaMemoryRequirements::requiredFlags</td>
</tr>
</table>
</div><div class="memdoc">
<p>Flags that must be set in a Memory Type chosen for an allocation. </p>
<p>Leave 0 if you specify requirement via usage. </p>
</div>
</div>
<a id="ab588497177a57847ed04e0a1aef54bbe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab588497177a57847ed04e0a1aef54bbe">&#9670;&nbsp;</a></span>usage</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__layer1.html#gaa5846affa1e9da3800e3e78fae2305cc">VmaMemoryUsage</a> VmaMemoryRequirements::usage</td>
</tr>
</table>
</div><div class="memdoc">
<p>Intended usage of memory. </p>
<p>Leave VMA_MEMORY_USAGE_UNKNOWN if you specify requiredFlags. You can also use both. </p>
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="vk__mem__alloc_8h_source.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="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>