Minor improvements in documentation

This commit is contained in:
Adam Sawicki 2024-01-14 21:41:15 +01:00
parent 853ceacb3f
commit 0479c369d3

View File

@ -72,7 +72,7 @@ License: MIT
- [Memory initialization](@ref debugging_memory_usage_initialization) - [Memory initialization](@ref debugging_memory_usage_initialization)
- [Margins](@ref debugging_memory_usage_margins) - [Margins](@ref debugging_memory_usage_margins)
- [Corruption detection](@ref debugging_memory_usage_corruption_detection) - [Corruption detection](@ref debugging_memory_usage_corruption_detection)
- \subpage opengl_interop - \subpage other_api_interop
- \subpage usage_patterns - \subpage usage_patterns
- [GPU-only resource](@ref usage_patterns_gpu_only) - [GPU-only resource](@ref usage_patterns_gpu_only)
- [Staging copy for upload](@ref usage_patterns_staging_copy_upload) - [Staging copy for upload](@ref usage_patterns_staging_copy_upload)
@ -525,6 +525,9 @@ typedef enum VmaAllocationCreateFlagBits
/** \brief Set this flag if the allocation should have its own memory block. /** \brief Set this flag if the allocation should have its own memory block.
Use it for special, big resources, like fullscreen images used as attachments. Use it for special, big resources, like fullscreen images used as attachments.
If you use this flag while creating a buffer or an image, `VkMemoryDedicatedAllocateInfo`
structure is applied if possible.
*/ */
VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT = 0x00000001, VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT = 0x00000001,
@ -19089,22 +19092,22 @@ Margin validation (corruption detection) works only for memory types that are
`HOST_VISIBLE` and `HOST_COHERENT`. `HOST_VISIBLE` and `HOST_COHERENT`.
\page opengl_interop OpenGL Interop \page other_api_interop Interop with other graphics APIs
VMA provides some features that help with interoperability with OpenGL. VMA provides some features that help with interoperability with other graphics APIs, e.g. OpenGL.
\section opengl_interop_exporting_memory Exporting memory \section opengl_interop_exporting_memory Exporting memory
If you want to attach `VkExportMemoryAllocateInfoKHR` structure to `pNext` chain of memory allocations made by the library: If you want to attach `VkExportMemoryAllocateInfoKHR` or other structure to `pNext` chain of memory allocations made by the library:
It is recommended to create \ref custom_memory_pools for such allocations. You can create \ref custom_memory_pools for such allocations.
Define and fill in your `VkExportMemoryAllocateInfoKHR` structure and attach it to VmaPoolCreateInfo::pMemoryAllocateNext Define and fill in your `VkExportMemoryAllocateInfoKHR` structure and attach it to VmaPoolCreateInfo::pMemoryAllocateNext
while creating the custom pool. while creating the custom pool.
Please note that the structure must remain alive and unchanged for the whole lifetime of the #VmaPool, Please note that the structure must remain alive and unchanged for the whole lifetime of the #VmaPool,
not only while creating it, as no copy of the structure is made, not only while creating it, as no copy of the structure is made,
but its original pointer is used for each allocation instead. but its original pointer is used for each allocation instead.
If you want to export all memory allocated by the library from certain memory types, If you want to export all memory allocated by VMA from certain memory types,
also dedicated allocations or other allocations made from default pools, also dedicated allocations or other allocations made from default pools,
an alternative solution is to fill in VmaAllocatorCreateInfo::pTypeExternalMemoryHandleTypes. an alternative solution is to fill in VmaAllocatorCreateInfo::pTypeExternalMemoryHandleTypes.
It should point to an array with `VkExternalMemoryHandleTypeFlagsKHR` to be automatically passed by the library It should point to an array with `VkExternalMemoryHandleTypeFlagsKHR` to be automatically passed by the library
@ -19121,7 +19124,7 @@ Buffers or images exported to a different API like OpenGL may require a differen
higher than the one used by the library automatically, queried from functions like `vkGetBufferMemoryRequirements`. higher than the one used by the library automatically, queried from functions like `vkGetBufferMemoryRequirements`.
To impose such alignment: To impose such alignment:
It is recommended to create \ref custom_memory_pools for such allocations. You can create \ref custom_memory_pools for such allocations.
Set VmaPoolCreateInfo::minAllocationAlignment member to the minimum alignment required for each allocation Set VmaPoolCreateInfo::minAllocationAlignment member to the minimum alignment required for each allocation
to be made out of this pool. to be made out of this pool.
The alignment actually used will be the maximum of this member and the alignment returned for the specific buffer or image The alignment actually used will be the maximum of this member and the alignment returned for the specific buffer or image
@ -19132,6 +19135,7 @@ use special function vmaCreateBufferWithAlignment(), which takes additional para
Note the problem of alignment affects only resources placed inside bigger `VkDeviceMemory` blocks and not dedicated Note the problem of alignment affects only resources placed inside bigger `VkDeviceMemory` blocks and not dedicated
allocations, as these, by definition, always have alignment = 0 because the resource is bound to the beginning of its dedicated block. allocations, as these, by definition, always have alignment = 0 because the resource is bound to the beginning of its dedicated block.
You can ensure that an allocation is created as dedicated by using #VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT.
Contrary to Direct3D 12, Vulkan doesn't have a concept of alignment of the entire memory block passed on its allocation. Contrary to Direct3D 12, Vulkan doesn't have a concept of alignment of the entire memory block passed on its allocation.
\section opengl_interop_extended_allocation_information Extended allocation information \section opengl_interop_extended_allocation_information Extended allocation information