From 854b25df0d4664369d9d030725cf50b073ed770e Mon Sep 17 00:00:00 2001 From: Adam Sawicki Date: Mon, 23 Mar 2020 15:38:34 +0100 Subject: [PATCH] Update README.md to better describe extensions supported --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d2cf3df..e6ef0c0 100644 --- a/README.md +++ b/README.md @@ -41,14 +41,16 @@ Additional features: - Configuration: Fill optional members of CreateInfo structure to provide custom CPU memory allocator, pointers to Vulkan functions and other parameters. - Customization: Predefine appropriate macros to provide your own implementation of all external facilities used by the library, from assert, mutex, and atomic, to vector and linked list. - Support for memory mapping, reference-counted internally. Support for persistently mapped memory: Just allocate with appropriate flag and you get access to mapped pointer. -- Support for memory budget. VK_EXT_memory_budget extension is used internally if available to query for current usage and budget. If not available, it falls back to an estimation based on memory heap sizes. - Support for non-coherent memory. Functions that flush/invalidate memory. `nonCoherentAtomSize` is respected automatically. - Support for sparse binding and sparse residency: Convenience functions that allocate or free multiple memory pages at once. - Custom memory pools: Create a pool with desired parameters (e.g. fixed or limited maximum size) and allocate memory out of it. - Linear allocator: Create a pool with linear algorithm and use it for much faster allocations and deallocations in free-at-once, stack, double stack, or ring buffer fashion. - Support for Vulkan 1.0, 1.1, 1.2. -- Support for VK_KHR_dedicated_allocation extension: Just enable it and it will be used automatically by the library. -- Support for VK_AMD_device_coherent_memory extension. +- Support for extensions (and equivalent functionality included in new Vulkan versions): + - VK_EXT_memory_budget: Used internally if available to query for current usage and budget. If not available, it falls back to an estimation based on memory heap sizes. + - VK_KHR_dedicated_allocation: Just enable it and it will be used automatically by the library. + - VK_AMD_device_coherent_memory + - VK_EXT_buffer_device_address / VK_KHR_buffer_device_address - Defragmentation of GPU and CPU memory: Let the library move data around to free some memory blocks and make your allocations better compacted. - Lost allocations: Allocate memory with appropriate flags and let the library remove allocations that are not used for many frames to make room for new ones. - Statistics: Obtain detailed statistics about the amount of memory used, unused, number of allocated blocks, number of allocations etc. - globally, per memory heap, and per memory type.