mirror of
https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git
synced 2024-11-25 16:14:35 +00:00
Minor improvements in documentation
This commit is contained in:
parent
853ceacb3f
commit
0479c369d3
@ -72,7 +72,7 @@ License: MIT
|
||||
- [Memory initialization](@ref debugging_memory_usage_initialization)
|
||||
- [Margins](@ref debugging_memory_usage_margins)
|
||||
- [Corruption detection](@ref debugging_memory_usage_corruption_detection)
|
||||
- \subpage opengl_interop
|
||||
- \subpage other_api_interop
|
||||
- \subpage usage_patterns
|
||||
- [GPU-only resource](@ref usage_patterns_gpu_only)
|
||||
- [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.
|
||||
|
||||
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,
|
||||
|
||||
@ -19089,22 +19092,22 @@ Margin validation (corruption detection) works only for memory types that are
|
||||
`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
|
||||
|
||||
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
|
||||
while creating the custom pool.
|
||||
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,
|
||||
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,
|
||||
an alternative solution is to fill in VmaAllocatorCreateInfo::pTypeExternalMemoryHandleTypes.
|
||||
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`.
|
||||
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
|
||||
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
|
||||
@ -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
|
||||
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.
|
||||
|
||||
\section opengl_interop_extended_allocation_information Extended allocation information
|
||||
|
Loading…
Reference in New Issue
Block a user