VkMemoryMapPlacedInfoEXT
If VK_MEMORY_MAP_PLACED_BIT_EXT is set in
VkMemoryMapInfo::flags and the pNext chain of
VkMemoryMapInfo includes a VkMemoryMapPlacedInfoEXT structure,
then that structure specifies the placement address of the memory map.
The implementation will place the memory map at the specified address,
replacing any existing maps in the specified memory range.
Replacing memory maps in this way does not implicitly unmap Vulkan memory
objects.
Instead, the application must ensure no other Vulkan memory objects are
mapped anywhere in the specified virtual address range.
If successful, ppData will be set to the same value as
VkMemoryMapPlacedInfoEXT::pPlacedAddress and vkMapMemory2
will return VK_SUCCESS.
If it cannot place the map at the requested address for any reason, the
memory object is left unmapped and vkMapMemory2 will return
VK_ERROR_MEMORY_MAP_FAILED.
The VkMemoryMapPlacedInfoEXT structure is defined as:
typedef struct VkMemoryMapPlacedInfoEXT {
VkStructureType sType;
const void* pNext;
void* pPlacedAddress;
} VkMemoryMapPlacedInfoEXT;
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.pPlacedAddressis the virtual address at which to place the address. IfVkMemoryMapInfo::flagsdoes not containVK_MEMORY_MAP_PLACED_BIT_EXT, this value is ignored.
Valid Usage
VUID-VkMemoryMapPlacedInfoEXT-flags-09576
If VkMemoryMapInfo::flags contains
VK_MEMORY_MAP_PLACED_BIT_EXT, pPlacedAddress must not be
NULL
VUID-VkMemoryMapPlacedInfoEXT-pPlacedAddress-09577
pPlacedAddress must be aligned to an integer multiple of
VkPhysicalDeviceMapMemoryPlacedPropertiesEXT::minPlacedMemoryMapAlignment
VUID-VkMemoryMapPlacedInfoEXT-pPlacedAddress-09578
The address range specified by pPlacedAddress and
VkMemoryMapInfo::size must not overlap any existing Vulkan
memory object mapping
Valid Usage (Implicit)
VUID-VkMemoryMapPlacedInfoEXT-sType-sType
sType must be VK_STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT