Version 3.1.0

Rebuilt the documentation and sample executable.
This commit is contained in:
Adam Sawicki 2024-05-27 14:22:04 +02:00
parent 7d082cb2d1
commit 009ecd192c
14 changed files with 12 additions and 108 deletions

1
.gitignore vendored
View File

@ -1,5 +1,6 @@
/bin/*
/build/*
!/bin/VmaSample_Release_vs2019.exe
!/bin/VmaSample_Release_vs2022.exe
!/bin/Shader*.spv
.vscode/

View File

@ -1,4 +1,4 @@
# 3.1.0 (TBD)
# 3.1.0 (2024-05-27)
This release gathers fixes and improvements made during many months of continuous development on the main branch, mostly based on issues and pull requests on GitHub.

View File

@ -146,7 +146,7 @@ The VulkanMemoryAllocator port in vcpkg is kept up to date by Microsoft team mem
# Binaries
The release comes with precompiled binary executable for "VulkanSample" application which contains test suite. It is compiled using Visual Studio 2019, so it requires appropriate libraries to work, including "MSVCP140.dll", "VCRUNTIME140.dll", "VCRUNTIME140_1.dll". If the launch fails with error message telling about those files missing, please download and install [Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017 and 2019](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads), "x64" version.
The release comes with precompiled binary executable for "VulkanSample" application which contains test suite. It is compiled using Visual Studio 2022, so it requires appropriate libraries to work, including "MSVCP140.dll", "VCRUNTIME140.dll", "VCRUNTIME140_1.dll". If the launch fails with error message telling about those files missing, please download and install [Microsoft Visual C++ Redistributable](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads), "X64" version.
# Read more

Binary file not shown.

Binary file not shown.

View File

@ -182,7 +182,7 @@ When not to use custom pools</h1>
</ul>
<p>Many of the common concerns can be addressed in a different way than using custom pools:</p>
<ul>
<li>If you want to keep your allocations of certain size (small versus large) or certain lifetime (transient versus long lived) separate, you likely don't need to. VMA uses a high quality allocation algorithm that manages memory well in various cases. Please mesure and check if using custom pools provides a benefit.</li>
<li>If you want to keep your allocations of certain size (small versus large) or certain lifetime (transient versus long lived) separate, you likely don't need to. VMA uses a high quality allocation algorithm that manages memory well in various cases. Please measure and check if using custom pools provides a benefit.</li>
<li>If you want to keep your images and buffers separate, you don't need to. VMA respects <code>bufferImageGranularity</code> limit automatically.</li>
<li>If you want to keep your mapped and not mapped allocations separate, you don't need to. VMA respects <code>nonCoherentAtomSize</code> limit automatically. It also maps only those <code>VkDeviceMemory</code> blocks that need to map any allocation. It even tries to keep mappable and non-mappable allocations in separate blocks to minimize the amount of mapped memory.</li>
<li>If you want to choose a custom size for the default memory block, you can set it globally instead using <a class="el" href="struct_vma_allocator_create_info.html#a8e4714298e3121cdd8b214a1ae7a637a" title="Preferred size of a single VkDeviceMemory block to be allocated from large heaps &gt; 1 GiB....">VmaAllocatorCreateInfo::preferredLargeHeapBlockSize</a>.</li>

View File

@ -1,88 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Vulkan Memory Allocator: File Members</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>
<script type="text/javascript" src="clipboard.js"></script>
<script type="text/javascript" src="cookie.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 id="projectrow">
<td id="projectalign">
<div id="projectname">Vulkan Memory Allocator
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all macros with links to the files they belong to:</div><ul>
<li>VMA_BIND_MEMORY2&#160;:&#160;<a class="el" href="vk__mem__alloc_8h.html#a88bef97f86d70a34a4c0746e09a2680d">vk_mem_alloc.h</a></li>
<li>VMA_BUFFER_DEVICE_ADDRESS&#160;:&#160;<a class="el" href="vk__mem__alloc_8h.html#a7f9d5e71b70dd1a137c303a8a8262c10">vk_mem_alloc.h</a></li>
<li>VMA_DEDICATED_ALLOCATION&#160;:&#160;<a class="el" href="vk__mem__alloc_8h.html#af7b860e63b96d11e44ae8587ba06bbf4">vk_mem_alloc.h</a></li>
<li>VMA_KHR_MAINTENANCE4&#160;:&#160;<a class="el" href="vk__mem__alloc_8h.html#abc635c70b154cb54aa4a15cd5da55498">vk_mem_alloc.h</a></li>
<li>VMA_KHR_MAINTENANCE5&#160;:&#160;<a class="el" href="vk__mem__alloc_8h.html#aae3b6bc07a36b2852bbebf5002ca8b0a">vk_mem_alloc.h</a></li>
<li>VMA_MEMORY_BUDGET&#160;:&#160;<a class="el" href="vk__mem__alloc_8h.html#a05decf1cf4ebf767beba7acca6c1ec3a">vk_mem_alloc.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0
</small></address>
</body>
</html>

View File

@ -2216,7 +2216,7 @@ Functions</h2></td></tr>
<tr><td class="paramname">allocator</td><td></td></tr>
<tr><td class="paramname">allocationCount</td><td></td></tr>
<tr><td class="paramname">allocations</td><td></td></tr>
<tr><td class="paramname">offsets</td><td>If not null, it must point to an array of offsets of regions to flush, relative to the beginning of respective allocations. Null means all ofsets are zero. </td></tr>
<tr><td class="paramname">offsets</td><td>If not null, it must point to an array of offsets of regions to flush, relative to the beginning of respective allocations. Null means all offsets are zero. </td></tr>
<tr><td class="paramname">sizes</td><td>If not null, it must point to an array of sizes of regions to flush in respective allocations. Null means <code>VK_WHOLE_SIZE</code> for all allocations.</td></tr>
</table>
</dd>
@ -2481,7 +2481,7 @@ Functions</h2></td></tr>
<tr><td class="paramname">allocator</td><td></td></tr>
<tr><td class="paramname">allocationCount</td><td></td></tr>
<tr><td class="paramname">allocations</td><td></td></tr>
<tr><td class="paramname">offsets</td><td>If not null, it must point to an array of offsets of regions to flush, relative to the beginning of respective allocations. Null means all ofsets are zero. </td></tr>
<tr><td class="paramname">offsets</td><td>If not null, it must point to an array of offsets of regions to flush, relative to the beginning of respective allocations. Null means all offsets are zero. </td></tr>
<tr><td class="paramname">sizes</td><td>If not null, it must point to an array of sizes of regions to flush in respective allocations. Null means <code>VK_WHOLE_SIZE</code> for all allocations.</td></tr>
</table>
</dd>

View File

@ -74,7 +74,7 @@ $(function() {
<div class="headertitle"><div class="title">Vulkan Memory Allocator </div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p><b>Version 3.1.0-development</b></p>
<div class="textblock"><p><b>Version 3.1.0</b></p>
<p>Copyright (c) 2017-2024 Advanced Micro Devices, Inc. All rights reserved. <br />
License: MIT <br />
See also: <a href="https://gpuopen.com/gaming-product/vulkan-memory-allocator/">product page on GPUOpen</a>, <a href="https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator">repository on GitHub</a></p>

View File

@ -133,7 +133,7 @@ Importing Vulkan functions</h2>
</ol>
<h2><a class="anchor" id="quick_start_initialization_enabling_extensions"></a>
Enabling extensions</h2>
<p>VMA can automatically use following Vulkan extensions. If you found them availeble on the selected physical device and you enabled them while creating <code>VkInstance</code> / <code>VkDevice</code> object, inform VMA about their availability by setting appropriate flags in <a class="el" href="struct_vma_allocator_create_info.html#a392ea2ecbaff93f91a7c49f735ad4346" title="Flags for created allocator. Use VmaAllocatorCreateFlagBits enum.">VmaAllocatorCreateInfo::flags</a>.</p>
<p>VMA can automatically use following Vulkan extensions. If you found them available on the selected physical device and you enabled them while creating <code>VkInstance</code> / <code>VkDevice</code> object, inform VMA about their availability by setting appropriate flags in <a class="el" href="struct_vma_allocator_create_info.html#a392ea2ecbaff93f91a7c49f735ad4346" title="Flags for created allocator. Use VmaAllocatorCreateFlagBits enum.">VmaAllocatorCreateInfo::flags</a>.</p>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">Vulkan extension </th><th class="markdownTableHeadNone">VMA flag </th></tr>

View File

@ -1,9 +0,0 @@
var searchData=
[
['vma_5fbind_5fmemory2_0',['VMA_BIND_MEMORY2',['../vk__mem__alloc_8h.html#a88bef97f86d70a34a4c0746e09a2680d',1,'vk_mem_alloc.h']]],
['vma_5fbuffer_5fdevice_5faddress_1',['VMA_BUFFER_DEVICE_ADDRESS',['../vk__mem__alloc_8h.html#a7f9d5e71b70dd1a137c303a8a8262c10',1,'vk_mem_alloc.h']]],
['vma_5fdedicated_5fallocation_2',['VMA_DEDICATED_ALLOCATION',['../vk__mem__alloc_8h.html#af7b860e63b96d11e44ae8587ba06bbf4',1,'vk_mem_alloc.h']]],
['vma_5fkhr_5fmaintenance4_3',['VMA_KHR_MAINTENANCE4',['../vk__mem__alloc_8h.html#abc635c70b154cb54aa4a15cd5da55498',1,'vk_mem_alloc.h']]],
['vma_5fkhr_5fmaintenance5_4',['VMA_KHR_MAINTENANCE5',['../vk__mem__alloc_8h.html#aae3b6bc07a36b2852bbebf5002ca8b0a',1,'vk_mem_alloc.h']]],
['vma_5fmemory_5fbudget_5',['VMA_MEMORY_BUDGET',['../vk__mem__alloc_8h.html#a05decf1cf4ebf767beba7acca6c1ec3a',1,'vk_mem_alloc.h']]]
];

View File

@ -128,7 +128,7 @@ Usage</h1>
<div class="ttc" id="astruct_vma_allocation_html"><div class="ttname"><a href="struct_vma_allocation.html">VmaAllocation</a></div><div class="ttdoc">Represents single memory allocation.</div></div>
</div><!-- fragment --><p><code>priority</code> member is ignored in the following situations:</p>
<ul>
<li>Allocations created in custom pools: They inherit the priority, along with all other allocation parameters from the parametrs passed in <a class="el" href="struct_vma_pool_create_info.html" title="Describes parameter of created VmaPool.">VmaPoolCreateInfo</a> when the pool was created.</li>
<li>Allocations created in custom pools: They inherit the priority, along with all other allocation parameters from the parameters passed in <a class="el" href="struct_vma_pool_create_info.html" title="Describes parameter of created VmaPool.">VmaPoolCreateInfo</a> when the pool was created.</li>
<li>Allocations created in default pools: They inherit the priority from the parameters VMA used when creating default pools, which means <code>priority == 0.5f</code>. </li>
</ul>
</div></div><!-- contents -->

View File

@ -25,7 +25,7 @@
/** \mainpage Vulkan Memory Allocator
<b>Version 3.1.0-development</b>
<b>Version 3.1.0</b>
Copyright (c) 2017-2024 Advanced Micro Devices, Inc. All rights reserved. \n
License: MIT \n

View File

@ -35,8 +35,8 @@ static const char* const SHADER_PATH1 = "./";
static const char* const SHADER_PATH2 = "../bin/";
static const wchar_t* const WINDOW_CLASS_NAME = L"VULKAN_MEMORY_ALLOCATOR_SAMPLE";
static const char* const VALIDATION_LAYER_NAME = "VK_LAYER_KHRONOS_validation";
static const char* const APP_TITLE_A = "Vulkan Memory Allocator Sample 3.0.1";
static const wchar_t* const APP_TITLE_W = L"Vulkan Memory Allocator Sample 3.0.1";
static const char* const APP_TITLE_A = "Vulkan Memory Allocator Sample 3.1.0";
static const wchar_t* const APP_TITLE_W = L"Vulkan Memory Allocator Sample 3.1.0";
static const bool VSYNC = true;
static const uint32_t COMMAND_BUFFER_COUNT = 2;