Commit Graph

152 Commits

Author SHA1 Message Date
Adam Sawicki
dd715fbf9f Fixed support for pUserData in object creation functions, as well as vmaSetAllocationUserData, whether it's null, custom pointer, or character string. 2018-08-20 17:12:24 +02:00
Adam Sawicki
5c49bebe10 Added support for recording and replaying object creation also when it originally failed. 2018-08-20 16:10:11 +02:00
Adam Sawicki
e5d9b01a3a Added macro VMA_RECORDING_ENABLED, enabled only on Windows for now. 2018-08-20 15:50:03 +02:00
Adam Sawicki
0e0f20fd57 Major refactoring: Defined clean API for recording, added VmaRecordFlagBits, VmaRecordFlags, VmaRecordSettings, VmaAllocatorCreateInfo::pRecordSettings. Created VmaRecorder class. 2018-08-20 15:34:55 +02:00
Adam Sawicki
5557b0ed63 Added support for vmaMapMemory, vmaUnmapMemory, vmaFlushAllocation, vmaInvalidateAllocation. 2018-08-20 13:54:54 +02:00
Adam Sawicki
404d12e18e Format version 1,2. Added support for vmaAllocateMemory, vmaAllocateMemoryForBuffer, vmaAllocateMemoryForImage, vmaCreateLostAllocation. 2018-08-20 13:33:34 +02:00
Adam Sawicki
f5c61eda92 Merge branch 'development' into record_and_replay 2018-08-20 12:27:59 +02:00
Adam Sawicki
94e8206598 Added new validation layer message to ignores, and documented it.
"Mapping an image with layout VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL can result in undefined behavior if this memory is used by the device. Only GENERAL or PREINITIALIZED should be used."

Issue #34 thanks @victorbush !
2018-08-20 11:14:07 +02:00
Adam Sawicki
87c8189002 Foo 2018-08-20 10:52:54 +02:00
Adam Sawicki
db1f73fee4 Improved handling of destruction calls with null handle, in vk_mem_alloc as well as VmaReplay. 2018-08-13 12:22:37 +02:00
Adam Sawicki
deeb817d7a Minor fixes. Added basic statistics. 2018-08-07 17:30:29 +02:00
Adam Sawicki
71f3d067c5 Better tracking of allocations. 2018-08-07 17:09:51 +02:00
Adam Sawicki
6d2e2e0cac Created project VmaReplay, started coding it. 2018-08-07 13:44:20 +02:00
Adam Sawicki
0d80dab2c0 Fixed minor documentation mistakes - issue #32 - thanks @dgough ! 2018-08-01 16:20:24 +02:00
Adam Sawicki
3d99a1ca66 VmaJsonWriter::ContinueString: Fixed bug with incorrect JSON generated when pUserData string contains '\' character. 2018-06-25 15:01:59 +02:00
Adam Sawicki
e44c62684d Added debug macro VMA_DEBUG_INITIALIZE_ALLOCATIONS to initialize contents of allocations with a bit pattern. Documented it. Added test for it.
Fixed some indentation.
2018-06-15 14:30:39 +02:00
Adam Sawicki
11904e3cec Fixed typo 2018-06-14 16:54:55 +02:00
Adam Sawicki
212a4a6567 Added new feature: corruption detection. Added debug macro VMA_DEBUG_DETECT_CORRUPTION, functions vmaCheckCorruption, vmaCheckPoolCorruption 2018-06-14 15:51:47 +02:00
Adam Sawicki
73b1665ea4 Changed behavior of VMA_DEBUG_MARGIN macro - it now adds margin also before first and after last allocation in a block. Improved validation of VMA_DEBUG_MARGIN. Added test for it - function TestDebugMargin(). 2018-06-11 16:39:25 +02:00
Adam Sawicki
d292417cdb Minor improvement in VmaBlockVector::Allocate. TestPool_SameSize: Added test for it. 2018-06-11 12:48:46 +02:00
Adam Sawicki
c1af66a549 Bumped version number (still Alpha). 2018-06-08 17:16:57 +02:00
Adam Sawicki
776ae0d5f8 Improved support for non-coherent memory. Added functions: vmaFlushAllocation, vmaInvalidateAllocation. nonCoherentAtomSize is respected automatically. Issue #27 Thanks @egdaniel !
Also added VmaVulkanFunctions::vkFlushMappedMemoryRanges, vkInvalidateMappedMemoryRanges. Fixed bug with uninitialized VmaPool_T::m_Id.
2018-06-08 17:11:12 +02:00
Adam Sawicki
5aa99be043 Bumped version number. 2018-06-04 14:18:27 +02:00
Adam Sawicki
083532cf3a Removed #include <malloc.h> for aligned_alloc(). Based on #28 by @jbeich 2018-06-04 14:12:15 +02:00
Adam Sawicki
6a0a85a5c0 Added subsequent, unique, numeric IDs to memory blocks and custom pools. They are dumped in JSON. JSON format changed: "Pools" and "Blocks" arrays are now objects, where key is pool/block ID, and value is as before. Applied appropriate changes in VmaDumpVis.py - it now shows pool and block ID from the dump. 2018-06-01 15:20:49 +02:00
Adam Sawicki
b127d7fac0 Minor fix in comment. 2018-05-17 14:44:13 +02:00
Adam Sawicki
d9bdd6cf78 Added "LastUseFrameIndex" to JSON dump. Changed behavior of vmaGetAllocationInfo, vmaTouchAllocation to update allocation.lastUseFrameIndex even if allocation cannot become lost. Documented it. 2018-05-16 16:17:18 +02:00
Adam Sawicki
c22103d183 JSON detailed dump: added parameters "CreationFrameIndex" and "Usage" (which are usage flags from VkImageCreateInfo or VkBufferCreateInfo). 2018-05-11 15:33:27 +02:00
Adam Sawicki
7b08b8f375 Fixed preprocessor macros to fix compilation in C projects. Issue #26. Thanks @jesta88 ! 2018-05-04 11:03:27 +02:00
Adam Sawicki
bafb06e50d Minor fix in VmaBlockVector::CalcMaxBlockSize for compilation in Visual Studio 2012 32-bit. Thanks @DominikWitczakAMD ! 2018-04-11 16:30:21 +02:00
Adam Sawicki
f8e5c145d1 Added VMA_CLASS_NO_COPY to silence warning in Visual Studio 2012 compiler: C4512 "class' : assignment operator could not be generated". Thanks @DominikWitczakAMD ! 2018-04-11 15:51:03 +02:00
Adam Sawicki
5391e6c7fa Improved logic of vmaFindMemoryTypeIndex for some cases, especially integrated GPUs. 2018-04-06 17:22:33 +02:00
Adam Sawicki
9bb910e63c Updates in documentation. 2018-04-06 17:04:28 +02:00
Adam Sawicki
6530fe3a38 Fixed vmaDestroyBuffer, vmaDestroyImage, vmaFreeMemory for cases where allocation is null. #24 thanks @achienbsi ! 2018-04-04 10:54:27 +02:00
Adam Sawicki
4f91939dea Added #if VMA_DEDICATED_ALLOCATION around every usage of VK_KHR_get_memory_requirements2 or VK_KHR_dedicated_allocation extension - for compatibility with Android. #23 Thanks @achienbsi ! 2018-04-03 13:45:39 +02:00
Adam Sawicki
5a51732c47 Added link to my GDC talk. 2018-04-03 12:28:11 +02:00
Adam Sawicki
b0920f9306 Merge branch 'v2_release' 2018-03-13 17:36:39 +01:00
Adam Sawicki
ba335cf8c0 Fixed threading bug with mapping vs binding. Added functions vmaBindBufferMemory, vmaBindImageMemory. Removed class VmaDeviceMemoryMapping. Minor fixes in documentation. 2018-03-13 14:59:12 +01:00
Adam Sawicki
57fa5580c0 Documentation: Added "Recommended usage patterns" chapter. 2018-03-12 17:46:49 +01:00
Adam Sawicki
20622c6cfd Documented VmaAllocator, VmaAllocation, VmaPool. 2018-03-12 16:33:53 +01:00
Adam Sawicki
93ef5c2340 Minor addition to documentation. 2018-03-12 16:06:10 +01:00
Adam Sawicki
2283f4287a Minor fix in documentation. 2018-03-12 16:01:00 +01:00
Adam Sawicki
d8359cd295 Documentation: Written "Statistics" chapter. 2018-03-12 15:58:23 +01:00
Adam Sawicki
727e8b269f More documentation. Refactored table of contents. 2018-03-12 15:34:32 +01:00
Adam Sawicki
ec421f8763 Created documentation chapter "General considerations". 2018-03-12 13:27:31 +01:00
Adam Sawicki
e915c1b6e3 Updated documentation chapter about lost allocations. 2018-03-12 13:23:06 +01:00
Adam Sawicki
7568dfce76 Written more documentation - about lost allocations. 2018-03-09 18:18:34 +01:00
Adam Sawicki
67a2328f8c Written more documentation. 2018-03-09 18:01:03 +01:00
Adam Sawicki
95451ab2a6 Written more documentation. 2018-03-09 17:49:19 +01:00
Adam Sawicki
359793763a Many minor formatting tweaks in documentation. 2018-03-09 17:35:48 +01:00