Commit Graph

99 Commits

Author SHA1 Message Date
Adam Sawicki
01fe410548 Fixes in Cmake scripts after merging #350 2023-07-11 18:00:37 +02:00
Juan Ramos
3d23bb07e3 Make VulkanMemoryAllocator a header only library
Dramatically simplify the CMake code for end users. The intent
is to make the CMake for this library very easy to maintain.
While also making it easier for end users to consume.

This makes the CMake code very similar to:
- KhronosGroup/Vulkan-Headers
- KhronosGroup/SPIRV-Headers

Which is good for consistency/expectations.

The VmaUsage library still highlights the expected usage of
the "stb-style" single header file in a project.

closes #346
2023-07-06 14:49:44 -06:00
Adam Sawicki
2a7110f078 A fix for vcpkg in REAEDME.md 2022-08-25 16:52:34 +02:00
Adam Sawicki
6cb61bb688 Fixes in README.md after adding information about vcpkg 2022-08-25 16:48:08 +02:00
Jonliu1993
3391ab2a02 Add vcpkg installation instructions 2022-08-25 16:57:10 +08:00
Adam Sawicki
3c6470cf45 New JSON dump format
Unified across VMA and D3D12MA.
Updated Python script for visualization - now called GpuMemDumpVis.py.

Also a fix for bug in EXTENSIVE defragmentation algorithm - see #232

Code by @medranSolus
2022-03-24 11:50:34 +01:00
Adam Sawicki
cde49463f5 Minor fix in README 2022-03-21 12:50:07 +01:00
Adam Sawicki
05a6144718 Updated README 2022-03-17 18:00:48 +01:00
Adam Sawicki
4039e45a19 Added documentation chapter "Versioning and compatibility"
Many improvements in documentation and README.
2022-02-26 13:26:20 +01:00
Pedro J. Estébanez
30b122478f Add Godot Engine to the list of known usages 2022-02-25 19:18:49 +01:00
Adam Sawicki
aee61b1d25 Added new API for selecting preferred memory type: VMA_MEMORY_USAGE_AUTO, VMA_MEMORY_USAGE_AUTO_PREFER_DEVICE, VMA_MEMORY_USAGE_AUTO_PREFER_HOST, VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT, VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT, VMA_ALLOCATION_CREATE_HOST_ACCESS_ALLOW_TRANSFER_INSTEAD_BIT
Old values like VMA_MEMORY_USAGE_GPU_ONLY still work as before, for backward compatibility.
Updated documentation accordingly.

Introduced a concept of mappable and non-mappable allocations - with VMA_MEMORY_USAGE_AUTO* an intent to map has to be specified using VMA_ALLOCATION_CREATE_HOST_ACCESS*.

Added mapping hysteresis logic (internal class VmaMappingHysteresis, config macro VMA_MAPPING_HYSTERESIS_ENABLED) that prevents too many calls vkMapMemory/vkUnmapMemory back and forth.

Internal improvement in VmaBlockVector::AllocatePage to try to keep mappable and non-mappable allocations separate.
2022-02-17 14:44:06 +01:00
Adam Sawicki
5c710e86a0 Added support for Vulkan 1.3
Fixes #228
2022-02-04 15:17:02 +01:00
Adam Sawicki
9f463623a5 Adding image from isitmaintained.com to README 2022-01-27 13:16:31 +01:00
Adam Sawicki
a8581fc96c Deleted the whole Record&Replay feature. COMPATIBILITY BREAKING!
Removed from the API: VmaAllocatorCreateInfo::pRecordSettings, VmaRecordSettings, VmaRecordFlagBits, VmaRecordFlags.
Regenerated documentation. Updated README.
2022-01-10 18:11:09 +01:00
Adam Sawicki
7c48285034 Removed VMA_USE_STL_CONTAINERS 2021-12-22 14:57:18 +01:00
Adam Sawicki
4687f53764 Internal optimization in traversal of VmaBlockMetadata_Generic::m_Suballocations 2021-12-06 15:20:44 +01:00
Henrik Rydgård
547aae4a51 Add PPSSPP to the "Software using this library" section of README.md 2021-11-25 09:06:17 +01:00
Sidney Just
5e452b9d13
Added X-Plane to the list of software using VMA
The X-Plane Vulkan renderer is build around VMA as its memory allocation backend and has been shipping since late 2019. We make heavy use of the defragmentation feature and have very aggressive streaming of world data as well as texture paging. Planes are quite fast and earth is quite large, so we constantly move memory around and dynamically adjust things as the memory budget grows or shrinks and the user moves around. It's absolutely rock solid on top of VMA :)
2021-11-22 11:56:49 -08:00
Ellie Hermaszewska
986e96b9fa
Correct Haskell bindings author name 2021-11-03 13:24:41 +08:00
Adam Sawicki
a62ffd4b92 Fixed icon of Travis CI Linux build in README 2021-10-30 23:44:42 +02:00
Adam Sawicki
187954c327 Added mention of virtual allocator to README 2021-10-30 23:32:57 +02:00
Adam Sawicki
a9922340be Little improvement in README 2021-09-20 20:32:54 +02:00
Adam Sawicki
b0fce340b6 Fixes and improvements in documentation 2021-07-29 13:12:59 +02:00
Adam Sawicki
2f4bc1bb20
Merge pull request #171 from IAmNotHanni/master
Add CMake support
2021-06-09 16:48:06 +02:00
Adam Sawicki
d900294c1a Fixed link to include/vk_mem_alloc.h in README.md and Doxyfile
Updated Doxyfile to Doxygen 1.9.1

Closes #165
2021-06-09 16:39:21 +02:00
Johannes Schneider
5c52b85904
Update README 2021-06-02 23:19:00 +02:00
Johannes Schneider
12d8344ed0
Add documentation of CMake options to README 2021-06-02 00:36:18 +02:00
Johannes Schneider
6d3ef233ab
Correct README 2021-06-02 00:36:10 +02:00
Johannes Schneider
e65c1469d9
Improve consistency in naming of targets and options 2021-05-31 23:53:21 +02:00
Johannes Schneider
08b190ff7e
Rename VmaShaders to VmaBuildExampleShaders 2021-05-31 23:53:19 +02:00
Johannes Schneider
dadd8f635a
Show default values for CMake options in README's table 2021-05-31 23:53:19 +02:00
Johannes Schneider
8f14179a72
Replace Ninja with Make as default build instruction on Linux 2021-05-31 23:52:06 +02:00
Johannes Schneider
acba487a76
Add CMake build instructions 2021-05-28 12:57:01 +02:00
Adam Sawicki
2882236f6a Migrated Linux CI build from travis-ci.org to travis-ci.com - updated status icon in README.md 2021-02-16 17:56:07 +01:00
Adam Sawicki
f32d25d714 Minor update in README.md 2021-02-16 17:21:39 +01:00
Adam Sawicki
0d4f5234fd Updated README.md - added RPCS3 to the list of known usages.
Also changed sample app to use Vulkan 1.2 by default.
2021-02-16 16:54:27 +01:00
Adam Sawicki
97880507ac Improvements in documentation. 2020-11-03 17:02:54 +01:00
Adam Sawicki
89d9e75299 Added Detroit: Become Human to the list of known software using this library 2020-09-30 16:14:27 +02:00
Adam Sawicki
0620c8e5e1 Add test and documentation for resource aliasing (overlap). 2020-08-18 16:43:44 +02:00
Adam Sawicki
e658b891ec Add "Atypical Games - proprietary game engine" to the list of software using this library 2020-08-18 14:15:36 +02:00
Adam Sawicki
115d2971ae Minor fix in README 2020-04-15 13:50:18 +02:00
Joe Hermaszewski
b605c64f3d Mention Haskell bindings in readme 2020-04-11 12:46:05 +08:00
Arthur Brainville
bc0528c0be
Fix a typo
I think this title was supposed to be "Binaries"
2020-04-06 13:57:07 +02:00
Adam Sawicki
3d1ce4ebb8 Support VK_KHR_buffer_device_address but not VK_EXT_buffer_device_address
To avoid mess in the code. They are not identical! "EXT" version lacks flag VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT* flag.

Refers to #56
2020-03-25 10:34:05 +01:00
Adam Sawicki
854b25df0d Update README.md to better describe extensions supported 2020-03-23 15:38:34 +01:00
Adam Sawicki
8ef0d201ef Merge branch 'Vulkan1_2' 2020-03-02 15:43:47 +01:00
Adam Sawicki
508825012c Add support for VK_AMD_device_coherent_memory extension
- Added VMA_ALLOCATOR_CREATE_AMD_DEVICE_COHERENT_MEMORY_BIT.
- Fixed bug generating validation layers error when the extension is not enabled.
- Updated date in copyright header comments to year 2020.
2020-02-07 16:51:31 +01:00
Adam Sawicki
1a63ebc860 Rebuild binaries using Visual Studio 2017 instead of 2019
Added information about Microsoft Redistributable installer to README.md.
2020-01-24 11:46:09 +01:00
Adam Sawicki
9151e50c86 Rebuild binaries using Visual Studio 2017 instead of 2019
Added information about Microsoft Redistributable installer to README.md.
2020-01-24 11:43:36 +01:00
Adam Sawicki
4670506a22 Announce version 2.3.0-alpha.1 2019-11-25 12:46:57 +01:00