Class VkMemoryAllocateFlagsInfo

  • All Implemented Interfaces:
    java.lang.AutoCloseable, NativeResource, Pointer
    Direct Known Subclasses:

    public class VkMemoryAllocateFlagsInfo
    extends Struct
    implements NativeResource
    Structure controlling how many instances of memory will be allocated.

    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.


    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)

    Member documentation

    • sType – the type of this structure.
    • pNextNULL or a pointer to an extension-specific structure.
    • flags – a bitmask of VkMemoryAllocateFlagBits controlling the allocation.
    • deviceMask – a mask of physical devices in the logical device, indicating that memory must be allocated on each device in the mask, if MEMORY_ALLOCATE_DEVICE_MASK_BIT is set in flags.


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