Class VkMemoryAllocateFlagsInfo

java.lang.Object
org.lwjgl.system.Pointer.Default
org.lwjgl.system.Struct<VkMemoryAllocateFlagsInfo>
org.lwjgl.vulkan.VkMemoryAllocateFlagsInfo
All Implemented Interfaces:
AutoCloseable, org.lwjgl.system.NativeResource, org.lwjgl.system.Pointer
Direct Known Subclasses:
VkMemoryAllocateFlagsInfoKHR

public class VkMemoryAllocateFlagsInfo extends org.lwjgl.system.Struct<VkMemoryAllocateFlagsInfo> implements org.lwjgl.system.NativeResource
Structure controlling how many instances of memory will be allocated.
Description

If MEMORY_ALLOCATE_DEVICE_MASK_BIT is not set, the number of instances allocated depends on whether MEMORY_HEAP_MULTI_INSTANCE_BIT is set in the memory heap. If MEMORY_HEAP_MULTI_INSTANCE_BIT is set, then memory is allocated for every physical device in the logical device (as if deviceMask has bits set for all device indices). If MEMORY_HEAP_MULTI_INSTANCE_BIT is not set, then a single instance of memory is allocated (as if deviceMask is set to one).

On some implementations, allocations from a multi-instance heap may consume memory on all physical devices even if the deviceMask excludes some devices. If VkPhysicalDeviceGroupProperties::subsetAllocation is TRUE, then memory is only consumed for the devices in the device mask.

Note

In practice, most allocations on a multi-instance heap will be allocated across all physical devices. Unicast allocation support is an optional optimization for a minority of allocations.

Valid Usage
Valid Usage (Implicit)

Layout


 struct VkMemoryAllocateFlagsInfo {
     VkStructureType sType();
     void const * pNext();
     VkMemoryAllocateFlags flags();
     uint32_t deviceMask();
 }