mirror of
https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git
synced 2024-11-22 15:04:34 +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)
|
- [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
|
||||||
|
Loading…
Reference in New Issue
Block a user