VkMemoryMapPlacedInfoEXT
If VK_MEMORY_MAP_PLACED_BIT_EXT
is set in
VkMemoryMapInfoKHR
::flags
and the pNext
chain of
VkMemoryMapInfoKHR 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
vkMapMemory2KHR
will return VK_SUCCESS
.
If it cannot place the map at the requested address for any reason, the
memory object is left unmapped and vkMapMemory2KHR
will return
VK_ERROR_MEMORY_MAP_FAILED
.
The VkMemoryMapPlacedInfoEXT
structure is defined as:
typedef struct VkMemoryMapPlacedInfoEXT {
VkStructureType sType;
const void* pNext;
void* pPlacedAddress;
} VkMemoryMapPlacedInfoEXT;
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.pPlacedAddress
is the virtual address at which to place the address. IfVkMemoryMapInfoKHR
::flags
does not containVK_MEMORY_MAP_PLACED_BIT_EXT
, this value is ignored.
Valid Usage
VUID-VkMemoryMapPlacedInfoEXT-flags-09576
If VkMemoryMapInfoKHR
::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
VkMemoryMapInfoKHR
::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