vkGetMemoryAndroidHardwareBufferANDROID
To export an Android hardware buffer referencing the payload of a Vulkan device memory object, call:
VkResult vkGetMemoryAndroidHardwareBufferANDROID(
VkDevice device,
const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
struct AHardwareBuffer** pBuffer);
device
is the logical device that created the device memory being exported.pInfo
is a pointer to a VkMemoryGetAndroidHardwareBufferInfoANDROID structure containing parameters of the export operation.pBuffer
will return an Android hardware buffer referencing the payload of the device memory object.
Each call to vkGetMemoryAndroidHardwareBufferANDROID
must return an
Android hardware buffer with a new reference acquired in addition to the
reference held by the VkDeviceMemory.
To avoid leaking resources, the application must release the reference by
calling AHardwareBuffer_release
when it is no longer needed.
When called with the same handle in
VkMemoryGetAndroidHardwareBufferInfoANDROID::memory
,
vkGetMemoryAndroidHardwareBufferANDROID
must return the same Android
hardware buffer object.
If the device memory was created by importing an Android hardware buffer,
vkGetMemoryAndroidHardwareBufferANDROID
must return that same Android
hardware buffer object.
Valid Usage (Implicit)
VUID-vkGetMemoryAndroidHardwareBufferANDROID-device-parameter
device
must be a valid VkDevice handle
VUID-vkGetMemoryAndroidHardwareBufferANDROID-pInfo-parameter
pInfo
must be a valid pointer to a valid VkMemoryGetAndroidHardwareBufferInfoANDROID structure
VUID-vkGetMemoryAndroidHardwareBufferANDROID-pBuffer-parameter
pBuffer
must be a valid pointer to a valid pointer to an AHardwareBuffer value