## C Specification

To determine the image capabilities compatible with an external memory handle type, call:

VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
VkPhysicalDevice                            physicalDevice,
VkFormat                                    format,
VkImageType                                 type,
VkImageTiling                               tiling,
VkImageUsageFlags                           usage,
VkImageCreateFlags                          flags,
VkExternalMemoryHandleTypeFlagsNV           externalHandleType,
VkExternalImageFormatPropertiesNV*          pExternalImageFormatProperties);

## Parameters

• physicalDevice is the physical device from which to query the image capabilities

• format is the image format, corresponding to VkImageCreateInfo::format.

• type is the image type, corresponding to VkImageCreateInfo::imageType.

• tiling is the image tiling, corresponding to VkImageCreateInfo::tiling.

• usage is the intended usage of the image, corresponding to VkImageCreateInfo::usage.

• flags is a bitmask describing additional parameters of the image, corresponding to VkImageCreateInfo::flags.

• externalHandleType is either one of the bits from VkExternalMemoryHandleTypeFlagBitsNV, or 0.

• pExternalImageFormatProperties is a pointer to a VkExternalImageFormatPropertiesNV structure in which capabilities are returned.

## Description

If externalHandleType is 0, pExternalImageFormatProperties->imageFormatProperties will return the same values as a call to vkGetPhysicalDeviceImageFormatProperties, and the other members of pExternalImageFormatProperties will all be 0. Otherwise, they are filled in as described for VkExternalImageFormatPropertiesNV.

Valid Usage (Implicit)
Return Codes
On success, this command returns
• VK_SUCCESS

On failure, this command returns
• VK_ERROR_OUT_OF_HOST_MEMORY

• VK_ERROR_OUT_OF_DEVICE_MEMORY

• VK_ERROR_FORMAT_NOT_SUPPORTED