mirror of
https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git
synced 2024-11-25 16:14:35 +00:00
Added structure VmaVulkanFunctions, macro VMA_STATIC_VULKAN_FUNCTIONS.
This commit is contained in:
parent
ee0ce0daf0
commit
ab0b39a783
@ -74,6 +74,7 @@ $(function() {
|
||||
<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_vma_pool_stats.html" target="_self">VmaPoolStats</a></td><td class="desc">Describes parameter of existing VmaPool </td></tr>
|
||||
<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_vma_stat_info.html" target="_self">VmaStatInfo</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_vma_stats.html" target="_self">VmaStats</a></td><td class="desc">General statistics from current state of Allocator </td></tr>
|
||||
<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_vma_vulkan_functions.html" target="_self">VmaVulkanFunctions</a></td><td class="desc"></td></tr>
|
||||
</table>
|
||||
</div><!-- directory -->
|
||||
</div><!-- contents -->
|
||||
|
@ -65,7 +65,7 @@ $(function() {
|
||||
<div class="qindex"><a class="qindex" href="#letter_v">v</a></div>
|
||||
<table class="classindex">
|
||||
<tr><td rowspan="2" valign="bottom"><a name="letter_v"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  v  </div></td></tr></table>
|
||||
</td><td valign="top"><a class="el" href="struct_vma_allocation_info.html">VmaAllocationInfo</a>   </td><td valign="top"><a class="el" href="struct_vma_defragmentation_stats.html">VmaDefragmentationStats</a>   </td><td valign="top"><a class="el" href="struct_vma_pool_stats.html">VmaPoolStats</a>   </td><td></td></tr>
|
||||
</td><td valign="top"><a class="el" href="struct_vma_allocation_info.html">VmaAllocationInfo</a>   </td><td valign="top"><a class="el" href="struct_vma_defragmentation_stats.html">VmaDefragmentationStats</a>   </td><td valign="top"><a class="el" href="struct_vma_pool_stats.html">VmaPoolStats</a>   </td><td valign="top"><a class="el" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a>   </td></tr>
|
||||
<tr><td valign="top"><a class="el" href="struct_vma_allocator_create_info.html">VmaAllocatorCreateInfo</a>   </td><td valign="top"><a class="el" href="struct_vma_device_memory_callbacks.html">VmaDeviceMemoryCallbacks</a>   </td><td valign="top"><a class="el" href="struct_vma_stat_info.html">VmaStatInfo</a>   </td><td></td></tr>
|
||||
<tr><td valign="top"><a class="el" href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a>   </td><td valign="top"><a class="el" href="struct_vma_defragmentation_info.html">VmaDefragmentationInfo</a>   </td><td valign="top"><a class="el" href="struct_vma_pool_create_info.html">VmaPoolCreateInfo</a>   </td><td valign="top"><a class="el" href="struct_vma_stats.html">VmaStats</a>   </td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
|
@ -195,6 +195,9 @@ $(function() {
|
||||
: <a class="el" href="struct_vma_allocation_create_info.html#a8259e85c272683434f4abb4ddddffe19">VmaAllocationCreateInfo</a>
|
||||
, <a class="el" href="struct_vma_allocation_info.html#adc507656149c04de7ed95d0042ba2a13">VmaAllocationInfo</a>
|
||||
</li>
|
||||
<li>pVulkanFunctions
|
||||
: <a class="el" href="struct_vma_allocator_create_info.html#a3dc197be3227da7338b1643f70db36bd">VmaAllocatorCreateInfo</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
@ -249,6 +252,52 @@ $(function() {
|
||||
: <a class="el" href="struct_vma_stat_info.html#a86f82cb9cffd456b9da63eaf26c9ff04">VmaStatInfo</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a id="index_v"></a>- v -</h3><ul>
|
||||
<li>vkAllocateMemory
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#a2943bf99dfd784a0e8f599d987e22e6c">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
<li>vkBindBufferMemory
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#a94fc4f3a605d9880bb3c0ba2c2fc80b2">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
<li>vkBindImageMemory
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#a1338d96a128a5ade648b8d934907c637">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
<li>vkCreateBuffer
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#ae8084315a25006271a2edfc3a447519f">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
<li>vkCreateImage
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#a23ebe70be515b9b5010a1d691200e325">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
<li>vkDestroyBuffer
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#a7e054606faddb07f0e8556f3ed317d45">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
<li>vkDestroyImage
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#a90b898227039b1dcb3520f6e91f09ffa">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
<li>vkFreeMemory
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#a4c658701778564d62034255b5dda91b4">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
<li>vkGetBufferMemoryRequirements
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#a5b92901df89a4194b0d12f6071d4d143">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
<li>vkGetImageMemoryRequirements
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#a475f6f49f8debe4d10800592606d53f4">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
<li>vkGetPhysicalDeviceMemoryProperties
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#a60d25c33bba06bb8592e6875cbaa9830">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
<li>vkGetPhysicalDeviceProperties
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#a77b7a74082823e865dd6546623468f96">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
<li>vkMapMemory
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#ab5c1f38dea3a2cf00dc9eb4f57218c49">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
<li>vkUnmapMemory
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#acc798589736f0becb317fc2196c1d8b9">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
|
@ -195,6 +195,9 @@ $(function() {
|
||||
: <a class="el" href="struct_vma_allocation_create_info.html#a8259e85c272683434f4abb4ddddffe19">VmaAllocationCreateInfo</a>
|
||||
, <a class="el" href="struct_vma_allocation_info.html#adc507656149c04de7ed95d0042ba2a13">VmaAllocationInfo</a>
|
||||
</li>
|
||||
<li>pVulkanFunctions
|
||||
: <a class="el" href="struct_vma_allocator_create_info.html#a3dc197be3227da7338b1643f70db36bd">VmaAllocatorCreateInfo</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
@ -249,6 +252,52 @@ $(function() {
|
||||
: <a class="el" href="struct_vma_stat_info.html#a86f82cb9cffd456b9da63eaf26c9ff04">VmaStatInfo</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a id="index_v"></a>- v -</h3><ul>
|
||||
<li>vkAllocateMemory
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#a2943bf99dfd784a0e8f599d987e22e6c">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
<li>vkBindBufferMemory
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#a94fc4f3a605d9880bb3c0ba2c2fc80b2">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
<li>vkBindImageMemory
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#a1338d96a128a5ade648b8d934907c637">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
<li>vkCreateBuffer
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#ae8084315a25006271a2edfc3a447519f">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
<li>vkCreateImage
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#a23ebe70be515b9b5010a1d691200e325">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
<li>vkDestroyBuffer
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#a7e054606faddb07f0e8556f3ed317d45">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
<li>vkDestroyImage
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#a90b898227039b1dcb3520f6e91f09ffa">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
<li>vkFreeMemory
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#a4c658701778564d62034255b5dda91b4">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
<li>vkGetBufferMemoryRequirements
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#a5b92901df89a4194b0d12f6071d4d143">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
<li>vkGetImageMemoryRequirements
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#a475f6f49f8debe4d10800592606d53f4">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
<li>vkGetPhysicalDeviceMemoryProperties
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#a60d25c33bba06bb8592e6875cbaa9830">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
<li>vkGetPhysicalDeviceProperties
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#a77b7a74082823e865dd6546623468f96">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
<li>vkMapMemory
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#ab5c1f38dea3a2cf00dc9eb4f57218c49">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
<li>vkUnmapMemory
|
||||
: <a class="el" href="struct_vma_vulkan_functions.html#acc798589736f0becb317fc2196c1d8b9">VmaVulkanFunctions</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
|
@ -257,12 +257,18 @@ $(function() {
|
||||
<li>VmaStatInfo
|
||||
: <a class="el" href="group__general.html#ga810b009a788ee8aac72a25b42ffbe31c">vk_mem_alloc.h</a>
|
||||
</li>
|
||||
<li>VmaStats
|
||||
: <a class="el" href="group__general.html#ga732be855fb4a7c248e6853d928a729af">vk_mem_alloc.h</a>
|
||||
</li>
|
||||
<li>vmaUnmapMemory()
|
||||
: <a class="el" href="group__layer2.html#ga9bc268595cb33f6ec4d519cfce81ff45">vk_mem_alloc.h</a>
|
||||
</li>
|
||||
<li>vmaUnmapPersistentlyMappedMemory()
|
||||
: <a class="el" href="group__layer2.html#ga26b87244491c1fe77f11fe9ab5779c27">vk_mem_alloc.h</a>
|
||||
</li>
|
||||
<li>VmaVulkanFunctions
|
||||
: <a class="el" href="group__general.html#ga97064a1a271b0061ebfc3a079862d0c5">vk_mem_alloc.h</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
|
@ -113,6 +113,12 @@ $(function() {
|
||||
<li>VmaStatInfo
|
||||
: <a class="el" href="group__general.html#ga810b009a788ee8aac72a25b42ffbe31c">vk_mem_alloc.h</a>
|
||||
</li>
|
||||
<li>VmaStats
|
||||
: <a class="el" href="group__general.html#ga732be855fb4a7c248e6853d928a729af">vk_mem_alloc.h</a>
|
||||
</li>
|
||||
<li>VmaVulkanFunctions
|
||||
: <a class="el" href="group__general.html#ga97064a1a271b0061ebfc3a079862d0c5">vk_mem_alloc.h</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
|
@ -74,6 +74,8 @@ Classes</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_device_memory_callbacks.html">VmaDeviceMemoryCallbacks</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Set of callbacks that the library will call for vkAllocateMemory and vkFreeMemory. <a href="struct_vma_device_memory_callbacks.html#details">More...</a><br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_allocator_create_info.html">VmaAllocatorCreateInfo</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Description of a Allocator to be created. <a href="struct_vma_allocator_create_info.html#details">More...</a><br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
@ -104,11 +106,16 @@ Typedefs</h2></td></tr>
|
||||
<tr class="separator:gac51ae2c316ee760ec5aebbae06d31253"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga6ffbcb80208bf4467a1104087396cf59"><td class="memItemLeft" align="right" valign="top">typedef VkFlags </td><td class="memItemRight" valign="bottom"><a class="el" href="group__general.html#ga6ffbcb80208bf4467a1104087396cf59">VmaAllocatorFlags</a></td></tr>
|
||||
<tr class="separator:ga6ffbcb80208bf4467a1104087396cf59"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga97064a1a271b0061ebfc3a079862d0c5"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__general.html#ga97064a1a271b0061ebfc3a079862d0c5">VmaVulkanFunctions</a></td></tr>
|
||||
<tr class="separator:ga97064a1a271b0061ebfc3a079862d0c5"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gae0f6d1d733dded220d28134da46b4283"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_vma_allocator_create_info.html">VmaAllocatorCreateInfo</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__general.html#gae0f6d1d733dded220d28134da46b4283">VmaAllocatorCreateInfo</a></td></tr>
|
||||
<tr class="memdesc:gae0f6d1d733dded220d28134da46b4283"><td class="mdescLeft"> </td><td class="mdescRight">Description of a Allocator to be created. <a href="#gae0f6d1d733dded220d28134da46b4283">More...</a><br /></td></tr>
|
||||
<tr class="separator:gae0f6d1d733dded220d28134da46b4283"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga810b009a788ee8aac72a25b42ffbe31c"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_vma_stat_info.html">VmaStatInfo</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__general.html#ga810b009a788ee8aac72a25b42ffbe31c">VmaStatInfo</a></td></tr>
|
||||
<tr class="separator:ga810b009a788ee8aac72a25b42ffbe31c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga732be855fb4a7c248e6853d928a729af"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_vma_stats.html">VmaStats</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__general.html#ga732be855fb4a7c248e6853d928a729af">VmaStats</a></td></tr>
|
||||
<tr class="memdesc:ga732be855fb4a7c248e6853d928a729af"><td class="mdescLeft"> </td><td class="mdescRight">General statistics from current state of Allocator. <a href="#ga732be855fb4a7c248e6853d928a729af">More...</a><br /></td></tr>
|
||||
<tr class="separator:ga732be855fb4a7c248e6853d928a729af"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
|
||||
Enumerations</h2></td></tr>
|
||||
@ -269,6 +276,36 @@ Functions</h2></td></tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ga732be855fb4a7c248e6853d928a729af"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga732be855fb4a7c248e6853d928a729af">◆ </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>
|
||||
<a id="ga97064a1a271b0061ebfc3a079862d0c5"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ga97064a1a271b0061ebfc3a079862d0c5">◆ </a></span>VmaVulkanFunctions</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">typedef struct <a class="el" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a> <a class="el" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="groupheader">Enumeration Type Documentation</h2>
|
||||
|
@ -73,7 +73,8 @@ $(function() {
|
||||
<li class="level2"><a href="#lost_allocations">Lost allocations</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="level1"><a href="#configuration">Configuration</a><ul><li class="level2"><a href="#custom_memory_allocator">Custom host memory allocator</a></li>
|
||||
<li class="level1"><a href="#configuration">Configuration</a><ul><li class="level2"><a href="#config_Vulkan_functions">Pointers to Vulkan functions</a></li>
|
||||
<li class="level2"><a href="#custom_memory_allocator">Custom host memory allocator</a></li>
|
||||
<li class="level2"><a href="#allocation_callbacks">Device memory allocation callbacks</a></li>
|
||||
<li class="level2"><a href="#heap_memory_limit">Device heap memory limit</a></li>
|
||||
</ul>
|
||||
@ -298,6 +299,13 @@ void MyBuffer::EnsureBuffer()
|
||||
<h1><a class="anchor" id="configuration"></a>
|
||||
Configuration</h1>
|
||||
<p>Please check "CONFIGURATION SECTION" in the code to find macros that you can define before each <code>#include</code> of this file or change directly in this file to provide your own implementation of basic facilities like assert, <code>min()</code> and <code>max()</code> functions, mutex etc. C++ STL is used by default, but changing these allows you to get rid of any STL usage if you want, as many game developers tend to do.</p>
|
||||
<h2><a class="anchor" id="config_Vulkan_functions"></a>
|
||||
Pointers to Vulkan functions</h2>
|
||||
<p>The library uses Vulkan functions straight from the <code>vulkan.h</code> header by default. If you want to provide your own pointers to these functions, e.g. fetched using <code>vkGetInstanceProcAddr</code> and <code>vkGetDeviceProcAddr</code>:</p>
|
||||
<ol type="1">
|
||||
<li>Remove macro <code>VMA_STATIC_VULKAN_FUNCTIONS</code> from "CONFIGURATION SECTION" section.</li>
|
||||
<li>Provide valid pointers through <a class="el" href="struct_vma_allocator_create_info.html#a3dc197be3227da7338b1643f70db36bd" title="Pointers to Vulkan functions. Can be null if you leave #define VMA_STATIC_VULKAN_FUNCTIONS 1...">VmaAllocatorCreateInfo::pVulkanFunctions</a>.</li>
|
||||
</ol>
|
||||
<h2><a class="anchor" id="custom_memory_allocator"></a>
|
||||
Custom host memory allocator</h2>
|
||||
<p>If you use custom allocator for CPU memory rather than default operator <code>new</code> and <code>delete</code> from C++, you can make this library using your allocator as well by filling optional member <a class="el" href="struct_vma_allocator_create_info.html#a6e409087e3be55400d0e4ccbe43c608d" title="Custom CPU memory allocation callbacks. ">VmaAllocatorCreateInfo::pAllocationCallbacks</a>. These functions will be passed to Vulkan, as well as used by the library itself to make any CPU-side allocations.</p>
|
||||
|
@ -16,7 +16,8 @@ var menudata={children:[
|
||||
{text:"r",url:"functions.html#index_r"},
|
||||
{text:"s",url:"functions.html#index_s"},
|
||||
{text:"t",url:"functions.html#index_t"},
|
||||
{text:"u",url:"functions.html#index_u"}]},
|
||||
{text:"u",url:"functions.html#index_u"},
|
||||
{text:"v",url:"functions.html#index_v"}]},
|
||||
{text:"Variables",url:"functions_vars.html",children:[
|
||||
{text:"a",url:"functions_vars.html#index_a"},
|
||||
{text:"b",url:"functions_vars.html#index_b"},
|
||||
@ -28,7 +29,8 @@ var menudata={children:[
|
||||
{text:"r",url:"functions_vars.html#index_r"},
|
||||
{text:"s",url:"functions_vars.html#index_s"},
|
||||
{text:"t",url:"functions_vars.html#index_t"},
|
||||
{text:"u",url:"functions_vars.html#index_u"}]}]}]},
|
||||
{text:"u",url:"functions_vars.html#index_u"},
|
||||
{text:"v",url:"functions_vars.html#index_v"}]}]}]},
|
||||
{text:"Files",url:"files.html",children:[
|
||||
{text:"File List",url:"files.html"},
|
||||
{text:"File Members",url:"globals.html",children:[
|
||||
|
@ -13,5 +13,6 @@ var searchData=
|
||||
['preferredflags',['preferredFlags',['../struct_vma_allocation_create_info.html#a7fe8d81a1ad10b2a2faacacee5b15d6d',1,'VmaAllocationCreateInfo']]],
|
||||
['preferredlargeheapblocksize',['preferredLargeHeapBlockSize',['../struct_vma_allocator_create_info.html#a8e4714298e3121cdd8b214a1ae7a637a',1,'VmaAllocatorCreateInfo']]],
|
||||
['preferredsmallheapblocksize',['preferredSmallHeapBlockSize',['../struct_vma_allocator_create_info.html#ab435423d84d5ab26e2c347c51771f90a',1,'VmaAllocatorCreateInfo']]],
|
||||
['puserdata',['pUserData',['../struct_vma_allocation_create_info.html#a8259e85c272683434f4abb4ddddffe19',1,'VmaAllocationCreateInfo::pUserData()'],['../struct_vma_allocation_info.html#adc507656149c04de7ed95d0042ba2a13',1,'VmaAllocationInfo::pUserData()']]]
|
||||
['puserdata',['pUserData',['../struct_vma_allocation_create_info.html#a8259e85c272683434f4abb4ddddffe19',1,'VmaAllocationCreateInfo::pUserData()'],['../struct_vma_allocation_info.html#adc507656149c04de7ed95d0042ba2a13',1,'VmaAllocationInfo::pUserData()']]],
|
||||
['pvulkanfunctions',['pVulkanFunctions',['../struct_vma_allocator_create_info.html#a3dc197be3227da7338b1643f70db36bd',1,'VmaAllocatorCreateInfo']]]
|
||||
];
|
||||
|
@ -2,6 +2,20 @@ var searchData=
|
||||
[
|
||||
['vulkan_20memory_20allocator',['Vulkan Memory Allocator',['../index.html',1,'']]],
|
||||
['vk_5fmem_5falloc_2eh',['vk_mem_alloc.h',['../vk__mem__alloc_8h.html',1,'']]],
|
||||
['vkallocatememory',['vkAllocateMemory',['../struct_vma_vulkan_functions.html#a2943bf99dfd784a0e8f599d987e22e6c',1,'VmaVulkanFunctions']]],
|
||||
['vkbindbuffermemory',['vkBindBufferMemory',['../struct_vma_vulkan_functions.html#a94fc4f3a605d9880bb3c0ba2c2fc80b2',1,'VmaVulkanFunctions']]],
|
||||
['vkbindimagememory',['vkBindImageMemory',['../struct_vma_vulkan_functions.html#a1338d96a128a5ade648b8d934907c637',1,'VmaVulkanFunctions']]],
|
||||
['vkcreatebuffer',['vkCreateBuffer',['../struct_vma_vulkan_functions.html#ae8084315a25006271a2edfc3a447519f',1,'VmaVulkanFunctions']]],
|
||||
['vkcreateimage',['vkCreateImage',['../struct_vma_vulkan_functions.html#a23ebe70be515b9b5010a1d691200e325',1,'VmaVulkanFunctions']]],
|
||||
['vkdestroybuffer',['vkDestroyBuffer',['../struct_vma_vulkan_functions.html#a7e054606faddb07f0e8556f3ed317d45',1,'VmaVulkanFunctions']]],
|
||||
['vkdestroyimage',['vkDestroyImage',['../struct_vma_vulkan_functions.html#a90b898227039b1dcb3520f6e91f09ffa',1,'VmaVulkanFunctions']]],
|
||||
['vkfreememory',['vkFreeMemory',['../struct_vma_vulkan_functions.html#a4c658701778564d62034255b5dda91b4',1,'VmaVulkanFunctions']]],
|
||||
['vkgetbuffermemoryrequirements',['vkGetBufferMemoryRequirements',['../struct_vma_vulkan_functions.html#a5b92901df89a4194b0d12f6071d4d143',1,'VmaVulkanFunctions']]],
|
||||
['vkgetimagememoryrequirements',['vkGetImageMemoryRequirements',['../struct_vma_vulkan_functions.html#a475f6f49f8debe4d10800592606d53f4',1,'VmaVulkanFunctions']]],
|
||||
['vkgetphysicaldevicememoryproperties',['vkGetPhysicalDeviceMemoryProperties',['../struct_vma_vulkan_functions.html#a60d25c33bba06bb8592e6875cbaa9830',1,'VmaVulkanFunctions']]],
|
||||
['vkgetphysicaldeviceproperties',['vkGetPhysicalDeviceProperties',['../struct_vma_vulkan_functions.html#a77b7a74082823e865dd6546623468f96',1,'VmaVulkanFunctions']]],
|
||||
['vkmapmemory',['vkMapMemory',['../struct_vma_vulkan_functions.html#ab5c1f38dea3a2cf00dc9eb4f57218c49',1,'VmaVulkanFunctions']]],
|
||||
['vkunmapmemory',['vkUnmapMemory',['../struct_vma_vulkan_functions.html#acc798589736f0becb317fc2196c1d8b9',1,'VmaVulkanFunctions']]],
|
||||
['vma_5fallocation_5fcreate_5fcan_5fbecome_5flost_5fbit',['VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT',['../group__layer1.html#ggad9889c10c798b040d59c92f257cae597a5f436af6c8fe8540573a6d22627a6fd2',1,'vk_mem_alloc.h']]],
|
||||
['vma_5fallocation_5fcreate_5fcan_5fmake_5fother_5flost_5fbit',['VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT',['../group__layer1.html#ggad9889c10c798b040d59c92f257cae597a68686d0ce9beb0d4d1b9f2b8b1389a7e',1,'vk_mem_alloc.h']]],
|
||||
['vma_5fallocation_5fcreate_5fflag_5fbits_5fmax_5fenum',['VMA_ALLOCATION_CREATE_FLAG_BITS_MAX_ENUM',['../group__layer1.html#ggad9889c10c798b040d59c92f257cae597ae5633ec569f4899cf8f29e7385b2f882',1,'vk_mem_alloc.h']]],
|
||||
@ -64,7 +78,8 @@ var searchData=
|
||||
['vmasetallocationuserdata',['vmaSetAllocationUserData',['../group__layer2.html#gaf9147d31ffc11d62fc187bde283ed14f',1,'vk_mem_alloc.h']]],
|
||||
['vmasetcurrentframeindex',['vmaSetCurrentFrameIndex',['../group__general.html#gade56bf8dc9f5a5eaddf5f119ed525236',1,'vk_mem_alloc.h']]],
|
||||
['vmastatinfo',['VmaStatInfo',['../struct_vma_stat_info.html',1,'VmaStatInfo'],['../group__general.html#ga810b009a788ee8aac72a25b42ffbe31c',1,'VmaStatInfo(): vk_mem_alloc.h']]],
|
||||
['vmastats',['VmaStats',['../struct_vma_stats.html',1,'']]],
|
||||
['vmastats',['VmaStats',['../struct_vma_stats.html',1,'VmaStats'],['../group__general.html#ga732be855fb4a7c248e6853d928a729af',1,'VmaStats(): vk_mem_alloc.h']]],
|
||||
['vmaunmapmemory',['vmaUnmapMemory',['../group__layer2.html#ga9bc268595cb33f6ec4d519cfce81ff45',1,'vk_mem_alloc.h']]],
|
||||
['vmaunmappersistentlymappedmemory',['vmaUnmapPersistentlyMappedMemory',['../group__layer2.html#ga26b87244491c1fe77f11fe9ab5779c27',1,'vk_mem_alloc.h']]]
|
||||
['vmaunmappersistentlymappedmemory',['vmaUnmapPersistentlyMappedMemory',['../group__layer2.html#ga26b87244491c1fe77f11fe9ab5779c27',1,'vk_mem_alloc.h']]],
|
||||
['vmavulkanfunctions',['VmaVulkanFunctions',['../struct_vma_vulkan_functions.html',1,'VmaVulkanFunctions'],['../group__general.html#ga97064a1a271b0061ebfc3a079862d0c5',1,'VmaVulkanFunctions(): vk_mem_alloc.h']]]
|
||||
];
|
||||
|
@ -9,5 +9,6 @@ var searchData=
|
||||
['vmapoolcreateinfo',['VmaPoolCreateInfo',['../struct_vma_pool_create_info.html',1,'']]],
|
||||
['vmapoolstats',['VmaPoolStats',['../struct_vma_pool_stats.html',1,'']]],
|
||||
['vmastatinfo',['VmaStatInfo',['../struct_vma_stat_info.html',1,'']]],
|
||||
['vmastats',['VmaStats',['../struct_vma_stats.html',1,'']]]
|
||||
['vmastats',['VmaStats',['../struct_vma_stats.html',1,'']]],
|
||||
['vmavulkanfunctions',['VmaVulkanFunctions',['../struct_vma_vulkan_functions.html',1,'']]]
|
||||
];
|
||||
|
@ -4,7 +4,7 @@ var indexSectionsWithContent =
|
||||
1: "v",
|
||||
2: "v",
|
||||
3: "v",
|
||||
4: "abdfmoprstu",
|
||||
4: "abdfmoprstuv",
|
||||
5: "pv",
|
||||
6: "v",
|
||||
7: "v",
|
||||
|
@ -15,5 +15,7 @@ var searchData=
|
||||
['vmapoolcreateflags',['VmaPoolCreateFlags',['../group__layer2.html#ga2770e325ea42e087c1b91fdf46d0292a',1,'vk_mem_alloc.h']]],
|
||||
['vmapoolcreateinfo',['VmaPoolCreateInfo',['../group__layer2.html#ga211706e9348dcee25a843ed4ea69bce7',1,'vk_mem_alloc.h']]],
|
||||
['vmapoolstats',['VmaPoolStats',['../group__layer2.html#ga2e5612d871d64c5624087b837a338c34',1,'vk_mem_alloc.h']]],
|
||||
['vmastatinfo',['VmaStatInfo',['../group__general.html#ga810b009a788ee8aac72a25b42ffbe31c',1,'vk_mem_alloc.h']]]
|
||||
['vmastatinfo',['VmaStatInfo',['../group__general.html#ga810b009a788ee8aac72a25b42ffbe31c',1,'vk_mem_alloc.h']]],
|
||||
['vmastats',['VmaStats',['../group__general.html#ga732be855fb4a7c248e6853d928a729af',1,'vk_mem_alloc.h']]],
|
||||
['vmavulkanfunctions',['VmaVulkanFunctions',['../group__general.html#ga97064a1a271b0061ebfc3a079862d0c5',1,'vk_mem_alloc.h']]]
|
||||
];
|
||||
|
@ -11,5 +11,6 @@ var searchData=
|
||||
['preferredflags',['preferredFlags',['../struct_vma_allocation_create_info.html#a7fe8d81a1ad10b2a2faacacee5b15d6d',1,'VmaAllocationCreateInfo']]],
|
||||
['preferredlargeheapblocksize',['preferredLargeHeapBlockSize',['../struct_vma_allocator_create_info.html#a8e4714298e3121cdd8b214a1ae7a637a',1,'VmaAllocatorCreateInfo']]],
|
||||
['preferredsmallheapblocksize',['preferredSmallHeapBlockSize',['../struct_vma_allocator_create_info.html#ab435423d84d5ab26e2c347c51771f90a',1,'VmaAllocatorCreateInfo']]],
|
||||
['puserdata',['pUserData',['../struct_vma_allocation_create_info.html#a8259e85c272683434f4abb4ddddffe19',1,'VmaAllocationCreateInfo::pUserData()'],['../struct_vma_allocation_info.html#adc507656149c04de7ed95d0042ba2a13',1,'VmaAllocationInfo::pUserData()']]]
|
||||
['puserdata',['pUserData',['../struct_vma_allocation_create_info.html#a8259e85c272683434f4abb4ddddffe19',1,'VmaAllocationCreateInfo::pUserData()'],['../struct_vma_allocation_info.html#adc507656149c04de7ed95d0042ba2a13',1,'VmaAllocationInfo::pUserData()']]],
|
||||
['pvulkanfunctions',['pVulkanFunctions',['../struct_vma_allocator_create_info.html#a3dc197be3227da7338b1643f70db36bd',1,'VmaAllocatorCreateInfo']]]
|
||||
];
|
||||
|
26
docs/html/search/variables_b.html
Normal file
26
docs/html/search/variables_b.html
Normal file
@ -0,0 +1,26 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html><head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta name="generator" content="Doxygen 1.8.13"/>
|
||||
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||
<script type="text/javascript" src="variables_b.js"></script>
|
||||
<script type="text/javascript" src="search.js"></script>
|
||||
</head>
|
||||
<body class="SRPage">
|
||||
<div id="SRIndex">
|
||||
<div class="SRStatus" id="Loading">Loading...</div>
|
||||
<div id="SRResults"></div>
|
||||
<script type="text/javascript"><!--
|
||||
createResults();
|
||||
--></script>
|
||||
<div class="SRStatus" id="Searching">Searching...</div>
|
||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||
<script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults");
|
||||
searchResults.Search();
|
||||
--></script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
17
docs/html/search/variables_b.js
Normal file
17
docs/html/search/variables_b.js
Normal file
@ -0,0 +1,17 @@
|
||||
var searchData=
|
||||
[
|
||||
['vkallocatememory',['vkAllocateMemory',['../struct_vma_vulkan_functions.html#a2943bf99dfd784a0e8f599d987e22e6c',1,'VmaVulkanFunctions']]],
|
||||
['vkbindbuffermemory',['vkBindBufferMemory',['../struct_vma_vulkan_functions.html#a94fc4f3a605d9880bb3c0ba2c2fc80b2',1,'VmaVulkanFunctions']]],
|
||||
['vkbindimagememory',['vkBindImageMemory',['../struct_vma_vulkan_functions.html#a1338d96a128a5ade648b8d934907c637',1,'VmaVulkanFunctions']]],
|
||||
['vkcreatebuffer',['vkCreateBuffer',['../struct_vma_vulkan_functions.html#ae8084315a25006271a2edfc3a447519f',1,'VmaVulkanFunctions']]],
|
||||
['vkcreateimage',['vkCreateImage',['../struct_vma_vulkan_functions.html#a23ebe70be515b9b5010a1d691200e325',1,'VmaVulkanFunctions']]],
|
||||
['vkdestroybuffer',['vkDestroyBuffer',['../struct_vma_vulkan_functions.html#a7e054606faddb07f0e8556f3ed317d45',1,'VmaVulkanFunctions']]],
|
||||
['vkdestroyimage',['vkDestroyImage',['../struct_vma_vulkan_functions.html#a90b898227039b1dcb3520f6e91f09ffa',1,'VmaVulkanFunctions']]],
|
||||
['vkfreememory',['vkFreeMemory',['../struct_vma_vulkan_functions.html#a4c658701778564d62034255b5dda91b4',1,'VmaVulkanFunctions']]],
|
||||
['vkgetbuffermemoryrequirements',['vkGetBufferMemoryRequirements',['../struct_vma_vulkan_functions.html#a5b92901df89a4194b0d12f6071d4d143',1,'VmaVulkanFunctions']]],
|
||||
['vkgetimagememoryrequirements',['vkGetImageMemoryRequirements',['../struct_vma_vulkan_functions.html#a475f6f49f8debe4d10800592606d53f4',1,'VmaVulkanFunctions']]],
|
||||
['vkgetphysicaldevicememoryproperties',['vkGetPhysicalDeviceMemoryProperties',['../struct_vma_vulkan_functions.html#a60d25c33bba06bb8592e6875cbaa9830',1,'VmaVulkanFunctions']]],
|
||||
['vkgetphysicaldeviceproperties',['vkGetPhysicalDeviceProperties',['../struct_vma_vulkan_functions.html#a77b7a74082823e865dd6546623468f96',1,'VmaVulkanFunctions']]],
|
||||
['vkmapmemory',['vkMapMemory',['../struct_vma_vulkan_functions.html#ab5c1f38dea3a2cf00dc9eb4f57218c49',1,'VmaVulkanFunctions']]],
|
||||
['vkunmapmemory',['vkUnmapMemory',['../struct_vma_vulkan_functions.html#acc798589736f0becb317fc2196c1d8b9',1,'VmaVulkanFunctions']]]
|
||||
];
|
@ -74,6 +74,7 @@ $(function() {
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct_vma_allocator_create_info.html#a08230f04ae6ccf8a78150a9e829a7156">physicalDevice</a></td><td class="entry"><a class="el" href="struct_vma_allocator_create_info.html">VmaAllocatorCreateInfo</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct_vma_allocator_create_info.html#a8e4714298e3121cdd8b214a1ae7a637a">preferredLargeHeapBlockSize</a></td><td class="entry"><a class="el" href="struct_vma_allocator_create_info.html">VmaAllocatorCreateInfo</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct_vma_allocator_create_info.html#ab435423d84d5ab26e2c347c51771f90a">preferredSmallHeapBlockSize</a></td><td class="entry"><a class="el" href="struct_vma_allocator_create_info.html">VmaAllocatorCreateInfo</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct_vma_allocator_create_info.html#a3dc197be3227da7338b1643f70db36bd">pVulkanFunctions</a></td><td class="entry"><a class="el" href="struct_vma_allocator_create_info.html">VmaAllocatorCreateInfo</a></td><td class="entry"></td></tr>
|
||||
</table></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
|
@ -100,6 +100,9 @@ Public Attributes</h2></td></tr>
|
||||
<tr class="memitem:a31c192aa6cbffa33279f6d9f0c47c44b"><td class="memItemLeft" align="right" valign="top">const VkDeviceSize * </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_allocator_create_info.html#a31c192aa6cbffa33279f6d9f0c47c44b">pHeapSizeLimit</a></td></tr>
|
||||
<tr class="memdesc:a31c192aa6cbffa33279f6d9f0c47c44b"><td class="mdescLeft"> </td><td class="mdescRight">Either NULL or a pointer to an array of limits on maximum number of bytes that can be allocated out of particular Vulkan memory heap. <a href="#a31c192aa6cbffa33279f6d9f0c47c44b">More...</a><br /></td></tr>
|
||||
<tr class="separator:a31c192aa6cbffa33279f6d9f0c47c44b"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a3dc197be3227da7338b1643f70db36bd"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_allocator_create_info.html#a3dc197be3227da7338b1643f70db36bd">pVulkanFunctions</a></td></tr>
|
||||
<tr class="memdesc:a3dc197be3227da7338b1643f70db36bd"><td class="mdescLeft"> </td><td class="mdescRight">Pointers to Vulkan functions. Can be null if you leave <code>#define VMA_STATIC_VULKAN_FUNCTIONS 1</code>. <a href="#a3dc197be3227da7338b1643f70db36bd">More...</a><br /></td></tr>
|
||||
<tr class="separator:a3dc197be3227da7338b1643f70db36bd"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>Description of a Allocator to be created. </p>
|
||||
@ -262,6 +265,24 @@ Public Attributes</h2></td></tr>
|
||||
<p>Preferred size of a single <code>VkDeviceMemory</code> block to be allocated from small heaps <= 512 MB. </p>
|
||||
<p>Set to 0 to use default, which is currently 64 MB. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a3dc197be3227da7338b1643f70db36bd"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a3dc197be3227da7338b1643f70db36bd">◆ </a></span>pVulkanFunctions</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">const <a class="el" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a>* VmaAllocatorCreateInfo::pVulkanFunctions</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Pointers to Vulkan functions. Can be null if you leave <code>#define VMA_STATIC_VULKAN_FUNCTIONS 1</code>. </p>
|
||||
<p>If you leave <code>#define VMA_STATIC_VULKAN_FUNCTIONS 1</code> in configuration section, you can pass null as this member, because the library will fetch pointers to Vulkan functions internally in a static way, like: </p><pre class="fragment">vulkanFunctions.vkAllocateMemory = &vkAllocateMemory;
|
||||
</pre><p>Fill this member if you want to provide your own pointers to Vulkan functions, e.g. fetched using <code>vkGetInstanceProcAddr</code> and <code>vkGetDeviceProcAddr</code>. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this struct was generated from the following file:<ul>
|
||||
|
90
docs/html/struct_vma_vulkan_functions-members.html
Normal file
90
docs/html/struct_vma_vulkan_functions-members.html
Normal file
@ -0,0 +1,90 @@
|
||||
<!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: Member List</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="headertitle">
|
||||
<div class="title">VmaVulkanFunctions Member List</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>This is the complete list of members for <a class="el" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a>, including all inherited members.</p>
|
||||
<table class="directory">
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html#a2943bf99dfd784a0e8f599d987e22e6c">vkAllocateMemory</a></td><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html#a94fc4f3a605d9880bb3c0ba2c2fc80b2">vkBindBufferMemory</a></td><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html#a1338d96a128a5ade648b8d934907c637">vkBindImageMemory</a></td><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html#ae8084315a25006271a2edfc3a447519f">vkCreateBuffer</a></td><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html#a23ebe70be515b9b5010a1d691200e325">vkCreateImage</a></td><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html#a7e054606faddb07f0e8556f3ed317d45">vkDestroyBuffer</a></td><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html#a90b898227039b1dcb3520f6e91f09ffa">vkDestroyImage</a></td><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html#a4c658701778564d62034255b5dda91b4">vkFreeMemory</a></td><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html#a5b92901df89a4194b0d12f6071d4d143">vkGetBufferMemoryRequirements</a></td><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html#a475f6f49f8debe4d10800592606d53f4">vkGetImageMemoryRequirements</a></td><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html#a60d25c33bba06bb8592e6875cbaa9830">vkGetPhysicalDeviceMemoryProperties</a></td><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html#a77b7a74082823e865dd6546623468f96">vkGetPhysicalDeviceProperties</a></td><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html#ab5c1f38dea3a2cf00dc9eb4f57218c49">vkMapMemory</a></td><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html#acc798589736f0becb317fc2196c1d8b9">vkUnmapMemory</a></td><td class="entry"><a class="el" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a></td><td class="entry"></td></tr>
|
||||
</table></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.13
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
310
docs/html/struct_vma_vulkan_functions.html
Normal file
310
docs/html/struct_vma_vulkan_functions.html
Normal file
@ -0,0 +1,310 @@
|
||||
<!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: VmaVulkanFunctions 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> |
|
||||
<a href="struct_vma_vulkan_functions-members.html">List of all members</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">VmaVulkanFunctions Struct Reference<div class="ingroups"><a class="el" href="group__general.html">General</a></div></div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p><code>#include <<a class="el" href="vk__mem__alloc_8h_source.html">vk_mem_alloc.h</a>></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:a77b7a74082823e865dd6546623468f96"><td class="memItemLeft" align="right" valign="top">PFN_vkGetPhysicalDeviceProperties </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_vulkan_functions.html#a77b7a74082823e865dd6546623468f96">vkGetPhysicalDeviceProperties</a></td></tr>
|
||||
<tr class="separator:a77b7a74082823e865dd6546623468f96"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a60d25c33bba06bb8592e6875cbaa9830"><td class="memItemLeft" align="right" valign="top">PFN_vkGetPhysicalDeviceMemoryProperties </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_vulkan_functions.html#a60d25c33bba06bb8592e6875cbaa9830">vkGetPhysicalDeviceMemoryProperties</a></td></tr>
|
||||
<tr class="separator:a60d25c33bba06bb8592e6875cbaa9830"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2943bf99dfd784a0e8f599d987e22e6c"><td class="memItemLeft" align="right" valign="top">PFN_vkAllocateMemory </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_vulkan_functions.html#a2943bf99dfd784a0e8f599d987e22e6c">vkAllocateMemory</a></td></tr>
|
||||
<tr class="separator:a2943bf99dfd784a0e8f599d987e22e6c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a4c658701778564d62034255b5dda91b4"><td class="memItemLeft" align="right" valign="top">PFN_vkFreeMemory </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_vulkan_functions.html#a4c658701778564d62034255b5dda91b4">vkFreeMemory</a></td></tr>
|
||||
<tr class="separator:a4c658701778564d62034255b5dda91b4"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab5c1f38dea3a2cf00dc9eb4f57218c49"><td class="memItemLeft" align="right" valign="top">PFN_vkMapMemory </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_vulkan_functions.html#ab5c1f38dea3a2cf00dc9eb4f57218c49">vkMapMemory</a></td></tr>
|
||||
<tr class="separator:ab5c1f38dea3a2cf00dc9eb4f57218c49"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:acc798589736f0becb317fc2196c1d8b9"><td class="memItemLeft" align="right" valign="top">PFN_vkUnmapMemory </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_vulkan_functions.html#acc798589736f0becb317fc2196c1d8b9">vkUnmapMemory</a></td></tr>
|
||||
<tr class="separator:acc798589736f0becb317fc2196c1d8b9"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a94fc4f3a605d9880bb3c0ba2c2fc80b2"><td class="memItemLeft" align="right" valign="top">PFN_vkBindBufferMemory </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_vulkan_functions.html#a94fc4f3a605d9880bb3c0ba2c2fc80b2">vkBindBufferMemory</a></td></tr>
|
||||
<tr class="separator:a94fc4f3a605d9880bb3c0ba2c2fc80b2"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a1338d96a128a5ade648b8d934907c637"><td class="memItemLeft" align="right" valign="top">PFN_vkBindImageMemory </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_vulkan_functions.html#a1338d96a128a5ade648b8d934907c637">vkBindImageMemory</a></td></tr>
|
||||
<tr class="separator:a1338d96a128a5ade648b8d934907c637"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a5b92901df89a4194b0d12f6071d4d143"><td class="memItemLeft" align="right" valign="top">PFN_vkGetBufferMemoryRequirements </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_vulkan_functions.html#a5b92901df89a4194b0d12f6071d4d143">vkGetBufferMemoryRequirements</a></td></tr>
|
||||
<tr class="separator:a5b92901df89a4194b0d12f6071d4d143"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a475f6f49f8debe4d10800592606d53f4"><td class="memItemLeft" align="right" valign="top">PFN_vkGetImageMemoryRequirements </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_vulkan_functions.html#a475f6f49f8debe4d10800592606d53f4">vkGetImageMemoryRequirements</a></td></tr>
|
||||
<tr class="separator:a475f6f49f8debe4d10800592606d53f4"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ae8084315a25006271a2edfc3a447519f"><td class="memItemLeft" align="right" valign="top">PFN_vkCreateBuffer </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_vulkan_functions.html#ae8084315a25006271a2edfc3a447519f">vkCreateBuffer</a></td></tr>
|
||||
<tr class="separator:ae8084315a25006271a2edfc3a447519f"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a7e054606faddb07f0e8556f3ed317d45"><td class="memItemLeft" align="right" valign="top">PFN_vkDestroyBuffer </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_vulkan_functions.html#a7e054606faddb07f0e8556f3ed317d45">vkDestroyBuffer</a></td></tr>
|
||||
<tr class="separator:a7e054606faddb07f0e8556f3ed317d45"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a23ebe70be515b9b5010a1d691200e325"><td class="memItemLeft" align="right" valign="top">PFN_vkCreateImage </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_vulkan_functions.html#a23ebe70be515b9b5010a1d691200e325">vkCreateImage</a></td></tr>
|
||||
<tr class="separator:a23ebe70be515b9b5010a1d691200e325"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a90b898227039b1dcb3520f6e91f09ffa"><td class="memItemLeft" align="right" valign="top">PFN_vkDestroyImage </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_vulkan_functions.html#a90b898227039b1dcb3520f6e91f09ffa">vkDestroyImage</a></td></tr>
|
||||
<tr class="separator:a90b898227039b1dcb3520f6e91f09ffa"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<h2 class="groupheader">Member Data Documentation</h2>
|
||||
<a id="a2943bf99dfd784a0e8f599d987e22e6c"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a2943bf99dfd784a0e8f599d987e22e6c">◆ </a></span>vkAllocateMemory</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">PFN_vkAllocateMemory VmaVulkanFunctions::vkAllocateMemory</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a94fc4f3a605d9880bb3c0ba2c2fc80b2"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a94fc4f3a605d9880bb3c0ba2c2fc80b2">◆ </a></span>vkBindBufferMemory</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">PFN_vkBindBufferMemory VmaVulkanFunctions::vkBindBufferMemory</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a1338d96a128a5ade648b8d934907c637"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a1338d96a128a5ade648b8d934907c637">◆ </a></span>vkBindImageMemory</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">PFN_vkBindImageMemory VmaVulkanFunctions::vkBindImageMemory</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ae8084315a25006271a2edfc3a447519f"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ae8084315a25006271a2edfc3a447519f">◆ </a></span>vkCreateBuffer</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">PFN_vkCreateBuffer VmaVulkanFunctions::vkCreateBuffer</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a23ebe70be515b9b5010a1d691200e325"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a23ebe70be515b9b5010a1d691200e325">◆ </a></span>vkCreateImage</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">PFN_vkCreateImage VmaVulkanFunctions::vkCreateImage</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a7e054606faddb07f0e8556f3ed317d45"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a7e054606faddb07f0e8556f3ed317d45">◆ </a></span>vkDestroyBuffer</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">PFN_vkDestroyBuffer VmaVulkanFunctions::vkDestroyBuffer</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a90b898227039b1dcb3520f6e91f09ffa"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a90b898227039b1dcb3520f6e91f09ffa">◆ </a></span>vkDestroyImage</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">PFN_vkDestroyImage VmaVulkanFunctions::vkDestroyImage</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a4c658701778564d62034255b5dda91b4"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a4c658701778564d62034255b5dda91b4">◆ </a></span>vkFreeMemory</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">PFN_vkFreeMemory VmaVulkanFunctions::vkFreeMemory</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a5b92901df89a4194b0d12f6071d4d143"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a5b92901df89a4194b0d12f6071d4d143">◆ </a></span>vkGetBufferMemoryRequirements</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">PFN_vkGetBufferMemoryRequirements VmaVulkanFunctions::vkGetBufferMemoryRequirements</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a475f6f49f8debe4d10800592606d53f4"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a475f6f49f8debe4d10800592606d53f4">◆ </a></span>vkGetImageMemoryRequirements</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">PFN_vkGetImageMemoryRequirements VmaVulkanFunctions::vkGetImageMemoryRequirements</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a60d25c33bba06bb8592e6875cbaa9830"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a60d25c33bba06bb8592e6875cbaa9830">◆ </a></span>vkGetPhysicalDeviceMemoryProperties</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">PFN_vkGetPhysicalDeviceMemoryProperties VmaVulkanFunctions::vkGetPhysicalDeviceMemoryProperties</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="a77b7a74082823e865dd6546623468f96"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a77b7a74082823e865dd6546623468f96">◆ </a></span>vkGetPhysicalDeviceProperties</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">PFN_vkGetPhysicalDeviceProperties VmaVulkanFunctions::vkGetPhysicalDeviceProperties</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="ab5c1f38dea3a2cf00dc9eb4f57218c49"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ab5c1f38dea3a2cf00dc9eb4f57218c49">◆ </a></span>vkMapMemory</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">PFN_vkMapMemory VmaVulkanFunctions::vkMapMemory</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a id="acc798589736f0becb317fc2196c1d8b9"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#acc798589736f0becb317fc2196c1d8b9">◆ </a></span>vkUnmapMemory</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">PFN_vkUnmapMemory VmaVulkanFunctions::vkUnmapMemory</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
</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  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.13
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
@ -77,6 +77,8 @@ Classes</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_device_memory_callbacks.html">VmaDeviceMemoryCallbacks</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Set of callbacks that the library will call for vkAllocateMemory and vkFreeMemory. <a href="struct_vma_device_memory_callbacks.html#details">More...</a><br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_allocator_create_info.html">VmaAllocatorCreateInfo</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Description of a Allocator to be created. <a href="struct_vma_allocator_create_info.html#details">More...</a><br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
@ -124,11 +126,16 @@ Typedefs</h2></td></tr>
|
||||
<tr class="separator:gac51ae2c316ee760ec5aebbae06d31253"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga6ffbcb80208bf4467a1104087396cf59"><td class="memItemLeft" align="right" valign="top">typedef VkFlags </td><td class="memItemRight" valign="bottom"><a class="el" href="group__general.html#ga6ffbcb80208bf4467a1104087396cf59">VmaAllocatorFlags</a></td></tr>
|
||||
<tr class="separator:ga6ffbcb80208bf4467a1104087396cf59"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga97064a1a271b0061ebfc3a079862d0c5"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__general.html#ga97064a1a271b0061ebfc3a079862d0c5">VmaVulkanFunctions</a></td></tr>
|
||||
<tr class="separator:ga97064a1a271b0061ebfc3a079862d0c5"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gae0f6d1d733dded220d28134da46b4283"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_vma_allocator_create_info.html">VmaAllocatorCreateInfo</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__general.html#gae0f6d1d733dded220d28134da46b4283">VmaAllocatorCreateInfo</a></td></tr>
|
||||
<tr class="memdesc:gae0f6d1d733dded220d28134da46b4283"><td class="mdescLeft"> </td><td class="mdescRight">Description of a Allocator to be created. <a href="group__general.html#gae0f6d1d733dded220d28134da46b4283">More...</a><br /></td></tr>
|
||||
<tr class="separator:gae0f6d1d733dded220d28134da46b4283"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga810b009a788ee8aac72a25b42ffbe31c"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_vma_stat_info.html">VmaStatInfo</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__general.html#ga810b009a788ee8aac72a25b42ffbe31c">VmaStatInfo</a></td></tr>
|
||||
<tr class="separator:ga810b009a788ee8aac72a25b42ffbe31c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga732be855fb4a7c248e6853d928a729af"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_vma_stats.html">VmaStats</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__general.html#ga732be855fb4a7c248e6853d928a729af">VmaStats</a></td></tr>
|
||||
<tr class="memdesc:ga732be855fb4a7c248e6853d928a729af"><td class="mdescLeft"> </td><td class="mdescRight">General statistics from current state of Allocator. <a href="group__general.html#ga732be855fb4a7c248e6853d928a729af">More...</a><br /></td></tr>
|
||||
<tr class="separator:ga732be855fb4a7c248e6853d928a729af"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gad63b2113c0bfdbeade1cb498f5a8580d"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="group__layer1.html#gaa5846affa1e9da3800e3e78fae2305cc">VmaMemoryUsage</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__layer1.html#gad63b2113c0bfdbeade1cb498f5a8580d">VmaMemoryUsage</a></td></tr>
|
||||
<tr class="separator:gad63b2113c0bfdbeade1cb498f5a8580d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gabf6bf6748c7a9fe7ce5b7835c0f56af4"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="group__layer1.html#gad9889c10c798b040d59c92f257cae597">VmaAllocationCreateFlagBits</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__layer1.html#gabf6bf6748c7a9fe7ce5b7835c0f56af4">VmaAllocationCreateFlagBits</a></td></tr>
|
||||
|
File diff suppressed because one or more lines are too long
@ -378,6 +378,15 @@ your own implementation of basic facilities like assert, `min()` and `max()` fun
|
||||
mutex etc. C++ STL is used by default, but changing these allows you to get rid
|
||||
of any STL usage if you want, as many game developers tend to do.
|
||||
|
||||
\subsection config_Vulkan_functions Pointers to Vulkan functions
|
||||
|
||||
The library uses Vulkan functions straight from the `vulkan.h` header by default.
|
||||
If you want to provide your own pointers to these functions, e.g. fetched using
|
||||
`vkGetInstanceProcAddr()` and `vkGetDeviceProcAddr()`:
|
||||
|
||||
-# Remove macro `VMA_STATIC_VULKAN_FUNCTIONS` from "CONFIGURATION SECTION".
|
||||
-# Provide valid pointers through VmaAllocatorCreateInfo::pVulkanFunctions.
|
||||
|
||||
\subsection custom_memory_allocator Custom host memory allocator
|
||||
|
||||
If you use custom allocator for CPU memory rather than default operator `new`
|
||||
@ -463,6 +472,23 @@ typedef enum VmaAllocatorFlagBits {
|
||||
} VmaAllocatorFlagBits;
|
||||
typedef VkFlags VmaAllocatorFlags;
|
||||
|
||||
typedef struct VmaVulkanFunctions {
|
||||
PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties;
|
||||
PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties;
|
||||
PFN_vkAllocateMemory vkAllocateMemory;
|
||||
PFN_vkFreeMemory vkFreeMemory;
|
||||
PFN_vkMapMemory vkMapMemory;
|
||||
PFN_vkUnmapMemory vkUnmapMemory;
|
||||
PFN_vkBindBufferMemory vkBindBufferMemory;
|
||||
PFN_vkBindImageMemory vkBindImageMemory;
|
||||
PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements;
|
||||
PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements;
|
||||
PFN_vkCreateBuffer vkCreateBuffer;
|
||||
PFN_vkDestroyBuffer vkDestroyBuffer;
|
||||
PFN_vkCreateImage vkCreateImage;
|
||||
PFN_vkDestroyImage vkDestroyImage;
|
||||
} VmaVulkanFunctions;
|
||||
|
||||
/// Description of a Allocator to be created.
|
||||
typedef struct VmaAllocatorCreateInfo
|
||||
{
|
||||
@ -518,6 +544,18 @@ typedef struct VmaAllocatorCreateInfo
|
||||
value of this limit will be reported instead when using vmaGetMemoryProperties().
|
||||
*/
|
||||
const VkDeviceSize* pHeapSizeLimit;
|
||||
/** \brief Pointers to Vulkan functions. Can be null if you leave `#define VMA_STATIC_VULKAN_FUNCTIONS 1`.
|
||||
|
||||
If you leave `#define VMA_STATIC_VULKAN_FUNCTIONS 1` in configuration section,
|
||||
you can pass null as this member, because the library will fetch pointers to
|
||||
Vulkan functions internally in a static way, like:
|
||||
|
||||
vulkanFunctions.vkAllocateMemory = &vkAllocateMemory;
|
||||
|
||||
Fill this member if you want to provide your own pointers to Vulkan functions,
|
||||
e.g. fetched using `vkGetInstanceProcAddr()` and `vkGetDeviceProcAddr()`.
|
||||
*/
|
||||
const VmaVulkanFunctions* pVulkanFunctions;
|
||||
} VmaAllocatorCreateInfo;
|
||||
|
||||
/// Creates Allocator object.
|
||||
@ -1226,6 +1264,17 @@ Define some of these macros before each #include of this header or change them
|
||||
here if you need other then default behavior depending on your environment.
|
||||
*/
|
||||
|
||||
/*
|
||||
Define this macro to 1 to make the library fetch pointers to Vulkan functions
|
||||
internally, like:
|
||||
|
||||
vulkanFunctions.vkAllocateMemory = &vkAllocateMemory;
|
||||
|
||||
Remove this macro if you are going to provide you own pointers to Vulkan
|
||||
functions via VmaAllocatorCreateInfo::pVulkanFunctions.
|
||||
*/
|
||||
#define VMA_STATIC_VULKAN_FUNCTIONS 1
|
||||
|
||||
// Define this macro to 1 to make the library use STL containers instead of its own implementation.
|
||||
//#define VMA_USE_STL_CONTAINERS 1
|
||||
|
||||
@ -2866,25 +2915,8 @@ public:
|
||||
bool CanBecomeLost() const;
|
||||
VmaPool GetPool() const;
|
||||
|
||||
VkResult OwnAllocMapPersistentlyMappedMemory(VkDevice hDevice)
|
||||
{
|
||||
VMA_ASSERT(m_Type == ALLOCATION_TYPE_OWN);
|
||||
if(m_OwnAllocation.m_PersistentMap)
|
||||
{
|
||||
return vkMapMemory(hDevice, m_OwnAllocation.m_hMemory, 0, VK_WHOLE_SIZE, 0, &m_OwnAllocation.m_pMappedData);
|
||||
}
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
void OwnAllocUnmapPersistentlyMappedMemory(VkDevice hDevice)
|
||||
{
|
||||
VMA_ASSERT(m_Type == ALLOCATION_TYPE_OWN);
|
||||
if(m_OwnAllocation.m_pMappedData)
|
||||
{
|
||||
VMA_ASSERT(m_OwnAllocation.m_PersistentMap);
|
||||
vkUnmapMemory(hDevice, m_OwnAllocation.m_hMemory);
|
||||
m_OwnAllocation.m_pMappedData = VMA_NULL;
|
||||
}
|
||||
}
|
||||
VkResult OwnAllocMapPersistentlyMappedMemory(VmaAllocator hAllocator);
|
||||
void OwnAllocUnmapPersistentlyMappedMemory(VmaAllocator hAllocator);
|
||||
|
||||
uint32_t GetLastUseFrameIndex() const
|
||||
{
|
||||
@ -3175,8 +3207,7 @@ struct VmaBlockVector
|
||||
size_t* pLostAllocationCount);
|
||||
|
||||
VmaDefragmentator* EnsureDefragmentator(
|
||||
VkDevice hDevice,
|
||||
const VkAllocationCallbacks* pAllocationCallbacks,
|
||||
VmaAllocator hAllocator,
|
||||
uint32_t currentFrameIndex);
|
||||
|
||||
VkResult Defragment(
|
||||
@ -3237,8 +3268,7 @@ public:
|
||||
|
||||
class VmaDefragmentator
|
||||
{
|
||||
const VkDevice m_hDevice;
|
||||
const VkAllocationCallbacks* const m_pAllocationCallbacks;
|
||||
const VmaAllocator m_hAllocator;
|
||||
VmaBlockVector* const m_pBlockVector;
|
||||
uint32_t m_CurrentFrameIndex;
|
||||
VMA_BLOCK_VECTOR_TYPE m_BlockVectorType;
|
||||
@ -3295,36 +3325,8 @@ class VmaDefragmentator
|
||||
VMA_SORT(m_Allocations.begin(), m_Allocations.end(), AllocationInfoSizeGreater());
|
||||
}
|
||||
|
||||
VkResult EnsureMapping(VkDevice hDevice, void** ppMappedData)
|
||||
{
|
||||
// It has already been mapped for defragmentation.
|
||||
if(m_pMappedDataForDefragmentation)
|
||||
{
|
||||
*ppMappedData = m_pMappedDataForDefragmentation;
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
|
||||
// It is persistently mapped.
|
||||
if(m_pBlock->m_PersistentMap)
|
||||
{
|
||||
VMA_ASSERT(m_pBlock->m_pMappedData != VMA_NULL);
|
||||
*ppMappedData = m_pBlock->m_pMappedData;
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
|
||||
// Map on first usage.
|
||||
VkResult res = vkMapMemory(hDevice, m_pBlock->m_hMemory, 0, VK_WHOLE_SIZE, 0, &m_pMappedDataForDefragmentation);
|
||||
*ppMappedData = m_pMappedDataForDefragmentation;
|
||||
return res;
|
||||
}
|
||||
|
||||
void Unmap(VkDevice hDevice)
|
||||
{
|
||||
if(m_pMappedDataForDefragmentation != VMA_NULL)
|
||||
{
|
||||
vkUnmapMemory(hDevice, m_pBlock->m_hMemory);
|
||||
}
|
||||
}
|
||||
VkResult EnsureMapping(VmaAllocator hAllocator, void** ppMappedData);
|
||||
void Unmap(VmaAllocator hAllocator);
|
||||
|
||||
private:
|
||||
// Not null if mapped for defragmentation only, not persistently mapped.
|
||||
@ -3378,8 +3380,7 @@ class VmaDefragmentator
|
||||
|
||||
public:
|
||||
VmaDefragmentator(
|
||||
VkDevice hDevice,
|
||||
const VkAllocationCallbacks* pAllocationCallbacks,
|
||||
VmaAllocator hAllocator,
|
||||
VmaBlockVector* pBlockVector,
|
||||
uint32_t currentFrameIndex);
|
||||
|
||||
@ -3429,6 +3430,10 @@ struct VmaAllocator_T
|
||||
{
|
||||
return m_AllocationCallbacksSpecified ? &m_AllocationCallbacks : 0;
|
||||
}
|
||||
const VmaVulkanFunctions& GetVulkanFunctions() const
|
||||
{
|
||||
return m_VulkanFunctions;
|
||||
}
|
||||
|
||||
VkDeviceSize GetBufferImageGranularity() const
|
||||
{
|
||||
@ -3500,6 +3505,10 @@ private:
|
||||
// Protected by m_PoolsMutex. Sorted by pointer value.
|
||||
VmaVector<VmaPool, VmaStlAllocator<VmaPool> > m_Pools;
|
||||
|
||||
VmaVulkanFunctions m_VulkanFunctions;
|
||||
|
||||
void ImportVulkanFunctions(const VmaVulkanFunctions* pVulkanFunctions);
|
||||
|
||||
VkDeviceSize CalcPreferredBlockSize(uint32_t memTypeIndex);
|
||||
|
||||
VkResult AllocateMemoryOfType(
|
||||
@ -3999,6 +4008,33 @@ VmaPool VmaAllocation_T::GetPool() const
|
||||
return m_BlockAllocation.m_hPool;
|
||||
}
|
||||
|
||||
VkResult VmaAllocation_T::OwnAllocMapPersistentlyMappedMemory(VmaAllocator hAllocator)
|
||||
{
|
||||
VMA_ASSERT(m_Type == ALLOCATION_TYPE_OWN);
|
||||
if(m_OwnAllocation.m_PersistentMap)
|
||||
{
|
||||
return (*hAllocator->GetVulkanFunctions().vkMapMemory)(
|
||||
hAllocator->m_hDevice,
|
||||
m_OwnAllocation.m_hMemory,
|
||||
0,
|
||||
VK_WHOLE_SIZE,
|
||||
0,
|
||||
&m_OwnAllocation.m_pMappedData);
|
||||
}
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
void VmaAllocation_T::OwnAllocUnmapPersistentlyMappedMemory(VmaAllocator hAllocator)
|
||||
{
|
||||
VMA_ASSERT(m_Type == ALLOCATION_TYPE_OWN);
|
||||
if(m_OwnAllocation.m_pMappedData)
|
||||
{
|
||||
VMA_ASSERT(m_OwnAllocation.m_PersistentMap);
|
||||
(*hAllocator->GetVulkanFunctions().vkUnmapMemory)(hAllocator->m_hDevice, m_OwnAllocation.m_hMemory);
|
||||
m_OwnAllocation.m_pMappedData = VMA_NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool VmaAllocation_T::MakeLost(uint32_t currentFrameIndex, uint32_t frameInUseCount)
|
||||
{
|
||||
VMA_ASSERT(CanBecomeLost());
|
||||
@ -4166,7 +4202,7 @@ void VmaDeviceMemoryBlock::Destroy(VmaAllocator allocator)
|
||||
VMA_ASSERT(m_hMemory != VK_NULL_HANDLE);
|
||||
if(m_pMappedData != VMA_NULL)
|
||||
{
|
||||
vkUnmapMemory(allocator->m_hDevice, m_hMemory);
|
||||
(allocator->GetVulkanFunctions().vkUnmapMemory)(allocator->m_hDevice, m_hMemory);
|
||||
m_pMappedData = VMA_NULL;
|
||||
}
|
||||
|
||||
@ -5469,7 +5505,6 @@ VkResult VmaBlockVector::CreateBlock(VkDeviceSize blockSize, size_t* pNewBlockIn
|
||||
VkMemoryAllocateInfo allocInfo = { VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO };
|
||||
allocInfo.memoryTypeIndex = m_MemoryTypeIndex;
|
||||
allocInfo.allocationSize = blockSize;
|
||||
const VkDevice hDevice = m_hAllocator->m_hDevice;
|
||||
VkDeviceMemory mem = VK_NULL_HANDLE;
|
||||
VkResult res = m_hAllocator->AllocateVulkanMemory(&allocInfo, &mem);
|
||||
if(res < 0)
|
||||
@ -5484,7 +5519,13 @@ VkResult VmaBlockVector::CreateBlock(VkDeviceSize blockSize, size_t* pNewBlockIn
|
||||
const bool persistentMap = (m_BlockVectorType == VMA_BLOCK_VECTOR_TYPE_MAPPED);
|
||||
if(persistentMap && m_hAllocator->m_UnmapPersistentlyMappedMemoryCounter == 0)
|
||||
{
|
||||
res = vkMapMemory(hDevice, mem, 0, VK_WHOLE_SIZE, 0, &pMappedData);
|
||||
res = (*m_hAllocator->GetVulkanFunctions().vkMapMemory)(
|
||||
m_hAllocator->m_hDevice,
|
||||
mem,
|
||||
0,
|
||||
VK_WHOLE_SIZE,
|
||||
0,
|
||||
&pMappedData);
|
||||
if(res < 0)
|
||||
{
|
||||
VMA_DEBUG_LOG(" vkMapMemory FAILED");
|
||||
@ -5585,7 +5626,7 @@ void VmaBlockVector::UnmapPersistentlyMappedMemory()
|
||||
if(pBlock->m_pMappedData != VMA_NULL)
|
||||
{
|
||||
VMA_ASSERT(pBlock->m_PersistentMap != false);
|
||||
vkUnmapMemory(m_hAllocator->m_hDevice, pBlock->m_hMemory);
|
||||
(m_hAllocator->GetVulkanFunctions().vkUnmapMemory)(m_hAllocator->m_hDevice, pBlock->m_hMemory);
|
||||
pBlock->m_pMappedData = VMA_NULL;
|
||||
}
|
||||
}
|
||||
@ -5602,7 +5643,13 @@ VkResult VmaBlockVector::MapPersistentlyMappedMemory()
|
||||
if(pBlock->m_PersistentMap)
|
||||
{
|
||||
VMA_ASSERT(pBlock->m_pMappedData == nullptr);
|
||||
VkResult localResult = vkMapMemory(m_hAllocator->m_hDevice, pBlock->m_hMemory, 0, VK_WHOLE_SIZE, 0, &pBlock->m_pMappedData);
|
||||
VkResult localResult = (*m_hAllocator->GetVulkanFunctions().vkMapMemory)(
|
||||
m_hAllocator->m_hDevice,
|
||||
pBlock->m_hMemory,
|
||||
0,
|
||||
VK_WHOLE_SIZE,
|
||||
0,
|
||||
&pBlock->m_pMappedData);
|
||||
if(localResult != VK_SUCCESS)
|
||||
{
|
||||
finalResult = localResult;
|
||||
@ -5613,15 +5660,13 @@ VkResult VmaBlockVector::MapPersistentlyMappedMemory()
|
||||
}
|
||||
|
||||
VmaDefragmentator* VmaBlockVector::EnsureDefragmentator(
|
||||
VkDevice hDevice,
|
||||
const VkAllocationCallbacks* pAllocationCallbacks,
|
||||
VmaAllocator hAllocator,
|
||||
uint32_t currentFrameIndex)
|
||||
{
|
||||
if(m_pDefragmentator == VMA_NULL)
|
||||
{
|
||||
m_pDefragmentator = vma_new(m_hAllocator, VmaDefragmentator)(
|
||||
hDevice,
|
||||
pAllocationCallbacks,
|
||||
hAllocator,
|
||||
this,
|
||||
currentFrameIndex);
|
||||
}
|
||||
@ -5733,18 +5778,16 @@ void VmaBlockVector::AddStats(VmaStats* pStats)
|
||||
// VmaDefragmentator members definition
|
||||
|
||||
VmaDefragmentator::VmaDefragmentator(
|
||||
VkDevice hDevice,
|
||||
const VkAllocationCallbacks* pAllocationCallbacks,
|
||||
VmaAllocator hAllocator,
|
||||
VmaBlockVector* pBlockVector,
|
||||
uint32_t currentFrameIndex) :
|
||||
m_hDevice(hDevice),
|
||||
m_pAllocationCallbacks(pAllocationCallbacks),
|
||||
m_hAllocator(hAllocator),
|
||||
m_pBlockVector(pBlockVector),
|
||||
m_CurrentFrameIndex(currentFrameIndex),
|
||||
m_BytesMoved(0),
|
||||
m_AllocationsMoved(0),
|
||||
m_Allocations(VmaStlAllocator<AllocationInfo>(pAllocationCallbacks)),
|
||||
m_Blocks(VmaStlAllocator<BlockInfo*>(pAllocationCallbacks))
|
||||
m_Allocations(VmaStlAllocator<AllocationInfo>(hAllocator->GetAllocationCallbacks())),
|
||||
m_Blocks(VmaStlAllocator<BlockInfo*>(hAllocator->GetAllocationCallbacks()))
|
||||
{
|
||||
}
|
||||
|
||||
@ -5752,7 +5795,7 @@ VmaDefragmentator::~VmaDefragmentator()
|
||||
{
|
||||
for(size_t i = m_Blocks.size(); i--; )
|
||||
{
|
||||
vma_delete(m_pAllocationCallbacks, m_Blocks[i]);
|
||||
vma_delete(m_hAllocator, m_Blocks[i]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -5764,6 +5807,43 @@ void VmaDefragmentator::AddAllocation(VmaAllocation hAlloc, VkBool32* pChanged)
|
||||
m_Allocations.push_back(allocInfo);
|
||||
}
|
||||
|
||||
VkResult VmaDefragmentator::BlockInfo::EnsureMapping(VmaAllocator hAllocator, void** ppMappedData)
|
||||
{
|
||||
// It has already been mapped for defragmentation.
|
||||
if(m_pMappedDataForDefragmentation)
|
||||
{
|
||||
*ppMappedData = m_pMappedDataForDefragmentation;
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
|
||||
// It is persistently mapped.
|
||||
if(m_pBlock->m_PersistentMap)
|
||||
{
|
||||
VMA_ASSERT(m_pBlock->m_pMappedData != VMA_NULL);
|
||||
*ppMappedData = m_pBlock->m_pMappedData;
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
|
||||
// Map on first usage.
|
||||
VkResult res = (*hAllocator->GetVulkanFunctions().vkMapMemory)(
|
||||
hAllocator->m_hDevice,
|
||||
m_pBlock->m_hMemory,
|
||||
0,
|
||||
VK_WHOLE_SIZE,
|
||||
0,
|
||||
&m_pMappedDataForDefragmentation);
|
||||
*ppMappedData = m_pMappedDataForDefragmentation;
|
||||
return res;
|
||||
}
|
||||
|
||||
void VmaDefragmentator::BlockInfo::Unmap(VmaAllocator hAllocator)
|
||||
{
|
||||
if(m_pMappedDataForDefragmentation != VMA_NULL)
|
||||
{
|
||||
(hAllocator->GetVulkanFunctions().vkUnmapMemory)(hAllocator->m_hDevice, m_pBlock->m_hMemory);
|
||||
}
|
||||
}
|
||||
|
||||
VkResult VmaDefragmentator::DefragmentRound(
|
||||
VkDeviceSize maxBytesToMove,
|
||||
uint32_t maxAllocationsToMove)
|
||||
@ -5836,14 +5916,14 @@ VkResult VmaDefragmentator::DefragmentRound(
|
||||
}
|
||||
|
||||
void* pDstMappedData = VMA_NULL;
|
||||
VkResult res = pDstBlockInfo->EnsureMapping(m_hDevice, &pDstMappedData);
|
||||
VkResult res = pDstBlockInfo->EnsureMapping(m_hAllocator, &pDstMappedData);
|
||||
if(res != VK_SUCCESS)
|
||||
{
|
||||
return res;
|
||||
}
|
||||
|
||||
void* pSrcMappedData = VMA_NULL;
|
||||
res = pSrcBlockInfo->EnsureMapping(m_hDevice, &pSrcMappedData);
|
||||
res = pSrcBlockInfo->EnsureMapping(m_hAllocator, &pSrcMappedData);
|
||||
if(res != VK_SUCCESS)
|
||||
{
|
||||
return res;
|
||||
@ -5908,7 +5988,7 @@ VkResult VmaDefragmentator::Defragment(
|
||||
const size_t blockCount = m_pBlockVector->m_Blocks.size();
|
||||
for(size_t blockIndex = 0; blockIndex < blockCount; ++blockIndex)
|
||||
{
|
||||
BlockInfo* pBlockInfo = vma_new(m_pAllocationCallbacks, BlockInfo)(m_pAllocationCallbacks);
|
||||
BlockInfo* pBlockInfo = vma_new(m_hAllocator, BlockInfo)(m_hAllocator->GetAllocationCallbacks());
|
||||
pBlockInfo->m_pBlock = m_pBlockVector->m_Blocks[blockIndex];
|
||||
m_Blocks.push_back(pBlockInfo);
|
||||
}
|
||||
@ -5957,7 +6037,7 @@ VkResult VmaDefragmentator::Defragment(
|
||||
// Unmap blocks that were mapped for defragmentation.
|
||||
for(size_t blockIndex = 0; blockIndex < blockCount; ++blockIndex)
|
||||
{
|
||||
m_Blocks[blockIndex]->Unmap(m_hDevice);
|
||||
m_Blocks[blockIndex]->Unmap(m_hAllocator);
|
||||
}
|
||||
|
||||
return result;
|
||||
@ -6018,8 +6098,10 @@ VmaAllocator_T::VmaAllocator_T(const VmaAllocatorCreateInfo* pCreateInfo) :
|
||||
m_DeviceMemoryCallbacks.pfnFree = pCreateInfo->pDeviceMemoryCallbacks->pfnFree;
|
||||
}
|
||||
|
||||
vkGetPhysicalDeviceProperties(m_PhysicalDevice, &m_PhysicalDeviceProperties);
|
||||
vkGetPhysicalDeviceMemoryProperties(m_PhysicalDevice, &m_MemProps);
|
||||
ImportVulkanFunctions(pCreateInfo->pVulkanFunctions);
|
||||
|
||||
(*m_VulkanFunctions.vkGetPhysicalDeviceProperties)(m_PhysicalDevice, &m_PhysicalDeviceProperties);
|
||||
(*m_VulkanFunctions.vkGetPhysicalDeviceMemoryProperties)(m_PhysicalDevice, &m_MemProps);
|
||||
|
||||
m_PreferredLargeHeapBlockSize = (pCreateInfo->preferredLargeHeapBlockSize != 0) ?
|
||||
pCreateInfo->preferredLargeHeapBlockSize : static_cast<VkDeviceSize>(VMA_DEFAULT_LARGE_HEAP_BLOCK_SIZE);
|
||||
@ -6079,6 +6161,48 @@ VmaAllocator_T::~VmaAllocator_T()
|
||||
}
|
||||
}
|
||||
|
||||
void VmaAllocator_T::ImportVulkanFunctions(const VmaVulkanFunctions* pVulkanFunctions)
|
||||
{
|
||||
#if VMA_STATIC_VULKAN_FUNCTIONS
|
||||
m_VulkanFunctions.vkGetPhysicalDeviceProperties = &vkGetPhysicalDeviceProperties;
|
||||
m_VulkanFunctions.vkGetPhysicalDeviceMemoryProperties = &vkGetPhysicalDeviceMemoryProperties;
|
||||
m_VulkanFunctions.vkAllocateMemory = &vkAllocateMemory;
|
||||
m_VulkanFunctions.vkFreeMemory = &vkFreeMemory;
|
||||
m_VulkanFunctions.vkMapMemory = &vkMapMemory;
|
||||
m_VulkanFunctions.vkUnmapMemory = &vkUnmapMemory;
|
||||
m_VulkanFunctions.vkBindBufferMemory = &vkBindBufferMemory;
|
||||
m_VulkanFunctions.vkBindImageMemory = &vkBindImageMemory;
|
||||
m_VulkanFunctions.vkGetBufferMemoryRequirements = &vkGetBufferMemoryRequirements;
|
||||
m_VulkanFunctions.vkGetImageMemoryRequirements = &vkGetImageMemoryRequirements;
|
||||
m_VulkanFunctions.vkCreateBuffer = &vkCreateBuffer;
|
||||
m_VulkanFunctions.vkDestroyBuffer = &vkDestroyBuffer;
|
||||
m_VulkanFunctions.vkCreateImage = &vkCreateImage;
|
||||
m_VulkanFunctions.vkDestroyImage = &vkDestroyImage;
|
||||
#endif // #if VMA_STATIC_VULKAN_FUNCTIONS
|
||||
|
||||
if(pVulkanFunctions != VMA_NULL)
|
||||
{
|
||||
m_VulkanFunctions = *pVulkanFunctions;
|
||||
}
|
||||
|
||||
// If these asserts are hit, you must either #define VMA_STATIC_VULKAN_FUNCTIONS 1
|
||||
// or pass valid pointers as VmaAllocatorCreateInfo::pVulkanFunctions.
|
||||
VMA_ASSERT(m_VulkanFunctions.vkGetPhysicalDeviceProperties != VMA_NULL);
|
||||
VMA_ASSERT(m_VulkanFunctions.vkGetPhysicalDeviceMemoryProperties != VMA_NULL);
|
||||
VMA_ASSERT(m_VulkanFunctions.vkAllocateMemory != VMA_NULL);
|
||||
VMA_ASSERT(m_VulkanFunctions.vkFreeMemory != VMA_NULL);
|
||||
VMA_ASSERT(m_VulkanFunctions.vkMapMemory != VMA_NULL);
|
||||
VMA_ASSERT(m_VulkanFunctions.vkUnmapMemory != VMA_NULL);
|
||||
VMA_ASSERT(m_VulkanFunctions.vkBindBufferMemory != VMA_NULL);
|
||||
VMA_ASSERT(m_VulkanFunctions.vkBindImageMemory != VMA_NULL);
|
||||
VMA_ASSERT(m_VulkanFunctions.vkGetBufferMemoryRequirements != VMA_NULL);
|
||||
VMA_ASSERT(m_VulkanFunctions.vkGetImageMemoryRequirements != VMA_NULL);
|
||||
VMA_ASSERT(m_VulkanFunctions.vkCreateBuffer != VMA_NULL);
|
||||
VMA_ASSERT(m_VulkanFunctions.vkDestroyBuffer != VMA_NULL);
|
||||
VMA_ASSERT(m_VulkanFunctions.vkCreateImage != VMA_NULL);
|
||||
VMA_ASSERT(m_VulkanFunctions.vkDestroyImage != VMA_NULL);
|
||||
}
|
||||
|
||||
VkDeviceSize VmaAllocator_T::CalcPreferredBlockSize(uint32_t memTypeIndex)
|
||||
{
|
||||
const uint32_t heapIndex = MemoryTypeIndexToHeapIndex(memTypeIndex);
|
||||
@ -6410,7 +6534,7 @@ void VmaAllocator_T::UnmapPersistentlyMappedMemory()
|
||||
for(size_t ownAllocIndex = pOwnAllocationsVector->size(); ownAllocIndex--; )
|
||||
{
|
||||
VmaAllocation hAlloc = (*pOwnAllocationsVector)[ownAllocIndex];
|
||||
hAlloc->OwnAllocUnmapPersistentlyMappedMemory(m_hDevice);
|
||||
hAlloc->OwnAllocUnmapPersistentlyMappedMemory(this);
|
||||
}
|
||||
}
|
||||
|
||||
@ -6464,7 +6588,7 @@ VkResult VmaAllocator_T::MapPersistentlyMappedMemory()
|
||||
for(size_t ownAllocIndex = 0, ownAllocCount = pAllocationsVector->size(); ownAllocIndex < ownAllocCount; ++ownAllocIndex)
|
||||
{
|
||||
VmaAllocation hAlloc = (*pAllocationsVector)[ownAllocIndex];
|
||||
hAlloc->OwnAllocMapPersistentlyMappedMemory(m_hDevice);
|
||||
hAlloc->OwnAllocMapPersistentlyMappedMemory(this);
|
||||
}
|
||||
}
|
||||
|
||||
@ -6541,10 +6665,7 @@ VkResult VmaAllocator_T::Defragment(
|
||||
pAllocBlockVector = m_pBlockVectors[memTypeIndex][hAlloc->GetBlockVectorType()];
|
||||
}
|
||||
|
||||
VmaDefragmentator* const pDefragmentator = pAllocBlockVector->EnsureDefragmentator(
|
||||
m_hDevice,
|
||||
GetAllocationCallbacks(),
|
||||
currentFrameIndex);
|
||||
VmaDefragmentator* const pDefragmentator = pAllocBlockVector->EnsureDefragmentator(this, currentFrameIndex);
|
||||
|
||||
VkBool32* const pChanged = (pAllocationsChanged != VMA_NULL) ?
|
||||
&pAllocationsChanged[allocIndex] : VMA_NULL;
|
||||
@ -6750,7 +6871,7 @@ VkResult VmaAllocator_T::AllocateVulkanMemory(const VkMemoryAllocateInfo* pAlloc
|
||||
VmaMutexLock lock(m_HeapSizeLimitMutex, m_UseMutex);
|
||||
if(m_HeapSizeLimit[heapIndex] >= pAllocateInfo->allocationSize)
|
||||
{
|
||||
res = vkAllocateMemory(m_hDevice, pAllocateInfo, GetAllocationCallbacks(), pMemory);
|
||||
res = (*m_VulkanFunctions.vkAllocateMemory)(m_hDevice, pAllocateInfo, GetAllocationCallbacks(), pMemory);
|
||||
if(res == VK_SUCCESS)
|
||||
{
|
||||
m_HeapSizeLimit[heapIndex] -= pAllocateInfo->allocationSize;
|
||||
@ -6763,7 +6884,7 @@ VkResult VmaAllocator_T::AllocateVulkanMemory(const VkMemoryAllocateInfo* pAlloc
|
||||
}
|
||||
else
|
||||
{
|
||||
res = vkAllocateMemory(m_hDevice, pAllocateInfo, GetAllocationCallbacks(), pMemory);
|
||||
res = (*m_VulkanFunctions.vkAllocateMemory)(m_hDevice, pAllocateInfo, GetAllocationCallbacks(), pMemory);
|
||||
}
|
||||
|
||||
if(res == VK_SUCCESS && m_DeviceMemoryCallbacks.pfnAllocate != VMA_NULL)
|
||||
@ -6781,7 +6902,7 @@ void VmaAllocator_T::FreeVulkanMemory(uint32_t memoryType, VkDeviceSize size, Vk
|
||||
(*m_DeviceMemoryCallbacks.pfnFree)(this, memoryType, hMemory, size);
|
||||
}
|
||||
|
||||
vkFreeMemory(m_hDevice, hMemory, GetAllocationCallbacks());
|
||||
(*m_VulkanFunctions.vkFreeMemory)(m_hDevice, hMemory, GetAllocationCallbacks());
|
||||
|
||||
const uint32_t heapIndex = MemoryTypeIndexToHeapIndex(memoryType);
|
||||
if(m_HeapSizeLimit[heapIndex] != VK_WHOLE_SIZE)
|
||||
@ -6931,7 +7052,7 @@ static VkResult AllocateMemoryForImage(
|
||||
VMA_ASSERT(allocator && (image != VK_NULL_HANDLE) && pAllocationCreateInfo && pAllocation);
|
||||
|
||||
VkMemoryRequirements vkMemReq = {};
|
||||
vkGetImageMemoryRequirements(allocator->m_hDevice, image, &vkMemReq);
|
||||
(*allocator->GetVulkanFunctions().vkGetImageMemoryRequirements)(allocator->m_hDevice, image, &vkMemReq);
|
||||
|
||||
return allocator->AllocateMemory(
|
||||
vkMemReq,
|
||||
@ -7308,7 +7429,7 @@ VkResult vmaAllocateMemoryForBuffer(
|
||||
VMA_DEBUG_GLOBAL_MUTEX_LOCK
|
||||
|
||||
VkMemoryRequirements vkMemReq = {};
|
||||
vkGetBufferMemoryRequirements(allocator->m_hDevice, buffer, &vkMemReq);
|
||||
(*allocator->GetVulkanFunctions().vkGetBufferMemoryRequirements)(allocator->m_hDevice, buffer, &vkMemReq);
|
||||
|
||||
VkResult result = allocator->AllocateMemory(
|
||||
vkMemReq,
|
||||
@ -7477,12 +7598,16 @@ VkResult vmaCreateBuffer(
|
||||
*pAllocation = VK_NULL_HANDLE;
|
||||
|
||||
// 1. Create VkBuffer.
|
||||
VkResult res = vkCreateBuffer(allocator->m_hDevice, pBufferCreateInfo, allocator->GetAllocationCallbacks(), pBuffer);
|
||||
VkResult res = (*allocator->GetVulkanFunctions().vkCreateBuffer)(
|
||||
allocator->m_hDevice,
|
||||
pBufferCreateInfo,
|
||||
allocator->GetAllocationCallbacks(),
|
||||
pBuffer);
|
||||
if(res >= 0)
|
||||
{
|
||||
// 2. vkGetBufferMemoryRequirements.
|
||||
VkMemoryRequirements vkMemReq = {};
|
||||
vkGetBufferMemoryRequirements(allocator->m_hDevice, *pBuffer, &vkMemReq);
|
||||
(*allocator->GetVulkanFunctions().vkGetBufferMemoryRequirements)(allocator->m_hDevice, *pBuffer, &vkMemReq);
|
||||
|
||||
// 3. Allocate memory using allocator.
|
||||
res = allocator->AllocateMemory(
|
||||
@ -7493,7 +7618,11 @@ VkResult vmaCreateBuffer(
|
||||
if(res >= 0)
|
||||
{
|
||||
// 3. Bind buffer with memory.
|
||||
res = vkBindBufferMemory(allocator->m_hDevice, *pBuffer, (*pAllocation)->GetMemory(), (*pAllocation)->GetOffset());
|
||||
res = (*allocator->GetVulkanFunctions().vkBindBufferMemory)(
|
||||
allocator->m_hDevice,
|
||||
*pBuffer,
|
||||
(*pAllocation)->GetMemory(),
|
||||
(*pAllocation)->GetOffset());
|
||||
if(res >= 0)
|
||||
{
|
||||
// All steps succeeded.
|
||||
@ -7507,7 +7636,7 @@ VkResult vmaCreateBuffer(
|
||||
*pAllocation = VK_NULL_HANDLE;
|
||||
return res;
|
||||
}
|
||||
vkDestroyBuffer(allocator->m_hDevice, *pBuffer, allocator->GetAllocationCallbacks());
|
||||
(*allocator->GetVulkanFunctions().vkDestroyBuffer)(allocator->m_hDevice, *pBuffer, allocator->GetAllocationCallbacks());
|
||||
*pBuffer = VK_NULL_HANDLE;
|
||||
return res;
|
||||
}
|
||||
@ -7527,7 +7656,7 @@ void vmaDestroyBuffer(
|
||||
|
||||
VMA_DEBUG_GLOBAL_MUTEX_LOCK
|
||||
|
||||
vkDestroyBuffer(allocator->m_hDevice, buffer, allocator->GetAllocationCallbacks());
|
||||
(*allocator->GetVulkanFunctions().vkDestroyBuffer)(allocator->m_hDevice, buffer, allocator->GetAllocationCallbacks());
|
||||
|
||||
allocator->FreeMemory(allocation);
|
||||
}
|
||||
@ -7551,7 +7680,11 @@ VkResult vmaCreateImage(
|
||||
*pAllocation = VK_NULL_HANDLE;
|
||||
|
||||
// 1. Create VkImage.
|
||||
VkResult res = vkCreateImage(allocator->m_hDevice, pImageCreateInfo, allocator->GetAllocationCallbacks(), pImage);
|
||||
VkResult res = (*allocator->GetVulkanFunctions().vkCreateImage)(
|
||||
allocator->m_hDevice,
|
||||
pImageCreateInfo,
|
||||
allocator->GetAllocationCallbacks(),
|
||||
pImage);
|
||||
if(res >= 0)
|
||||
{
|
||||
VmaSuballocationType suballocType = pImageCreateInfo->tiling == VK_IMAGE_TILING_OPTIMAL ?
|
||||
@ -7563,7 +7696,11 @@ VkResult vmaCreateImage(
|
||||
if(res >= 0)
|
||||
{
|
||||
// 3. Bind image with memory.
|
||||
res = vkBindImageMemory(allocator->m_hDevice, *pImage, (*pAllocation)->GetMemory(), (*pAllocation)->GetOffset());
|
||||
res = (*allocator->GetVulkanFunctions().vkBindImageMemory)(
|
||||
allocator->m_hDevice,
|
||||
*pImage,
|
||||
(*pAllocation)->GetMemory(),
|
||||
(*pAllocation)->GetOffset());
|
||||
if(res >= 0)
|
||||
{
|
||||
// All steps succeeded.
|
||||
@ -7577,7 +7714,7 @@ VkResult vmaCreateImage(
|
||||
*pAllocation = VK_NULL_HANDLE;
|
||||
return res;
|
||||
}
|
||||
vkDestroyImage(allocator->m_hDevice, *pImage, allocator->GetAllocationCallbacks());
|
||||
(*allocator->GetVulkanFunctions().vkDestroyImage)(allocator->m_hDevice, *pImage, allocator->GetAllocationCallbacks());
|
||||
*pImage = VK_NULL_HANDLE;
|
||||
return res;
|
||||
}
|
||||
@ -7597,7 +7734,7 @@ void vmaDestroyImage(
|
||||
|
||||
VMA_DEBUG_GLOBAL_MUTEX_LOCK
|
||||
|
||||
vkDestroyImage(allocator->m_hDevice, image, allocator->GetAllocationCallbacks());
|
||||
(*allocator->GetVulkanFunctions().vkDestroyImage)(allocator->m_hDevice, image, allocator->GetAllocationCallbacks());
|
||||
|
||||
allocator->FreeMemory(allocation);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user