// refBegin vkGetPhysicalDeviceExternalImageFormatPropertiesNV determine image capabilities compatible with external memory handle types

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

include::../../api/protos/vkGetPhysicalDeviceExternalImageFormatPropertiesNV.txt[]

  * pname:physicalDevice is the physical device from which to query the
    image capabilities
  * pname:format is the image format, corresponding to
    slink:VkImageCreateInfo::pname:format.
  * pname:type is the image type, corresponding to
    slink:VkImageCreateInfo::pname:imageType.
  * pname:tiling is the image tiling, corresponding to
    slink:VkImageCreateInfo::pname:tiling.
  * pname:usage is the intended usage of the image, corresponding to
    slink:VkImageCreateInfo::pname:usage.
  * pname:flags is a bitmask describing additional parameters of the image,
    corresponding to slink:VkImageCreateInfo::pname:flags.
  * pname:externalHandleType is either one of the bits from
    slink:VkExternalMemoryHandleTypeFlagBitsNV, or 0.
  * pname:pExternalImageFormatProperties points to an instance of the
    slink:VkExternalImageFormatPropertiesNV structure in which capabilities
    are returned.

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

include::../../validity/protos/vkGetPhysicalDeviceExternalImageFormatPropertiesNV.txt[]

// refBegin VkExternalImageFormatPropertiesNV - Structure specifying external image format properties

The sname:VkExternalImageFormatPropertiesNV structure is defined as:

include::../../api/structs/VkExternalImageFormatPropertiesNV.txt[]

  * pname:imageFormatProperties will be filled in as when calling
    flink:vkGetPhysicalDeviceImageFormatProperties, but the values returned
    may: vary depending on the external handle type requested.
  * pname:externalMemoryFeatures is a bitmask of
    elink:VkExternalMemoryFeatureFlagBitsNV indicating properties of the
    external memory handle type
    (flink:vkGetPhysicalDeviceExternalImageFormatPropertiesNV::pname:externalHandleType)
    being queried, or 0 if the external memory handle type is 0.
  * pname:exportFromImportedHandleTypes is a bitmask of
    elink:VkExternalMemoryHandleTypeFlagBitsNV containing a bit set for
    every external handle type that may: be used to create memory from which
    the handles of the type specified in
    flink:vkGetPhysicalDeviceExternalImageFormatPropertiesNV::pname:externalHandleType
    can: be exported, or 0 if the external memory handle type is 0.
  * pname:compatibleHandleTypes is a bitmask of
    elink:VkExternalMemoryHandleTypeFlagBitsNV containing a bit set for
    every external handle type that may: be specified simultaneously with
    the handle type specified by
    flink:vkGetPhysicalDeviceExternalImageFormatPropertiesNV::pname:externalHandleType
    when calling flink:vkAllocateMemory, or 0 if the external memory handle
    type is 0.
    pname:compatibleHandleTypes will always contain
    flink:vkGetPhysicalDeviceExternalImageFormatPropertiesNV::pname:externalHandleType

include::../../validity/structs/VkExternalImageFormatPropertiesNV.txt[]

// refBegin VkExternalMemoryFeatureFlagBitsNV - Bitmask specifying external memory features

The bits in slink:VkExternalMemoryFeatureFlagBitsNV are defined as follows:

include::../../api/enums/VkExternalMemoryFeatureFlagBitsNV.txt[]

  * ename:VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV: External memory
    of the specified type must: be created as a dedicated allocation when
    used in the manner specified.
  * ename:VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV: The implementation
    supports exporting handles of the specified type.
  * ename:VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV: The implementation
    supports importing handles of the specified type.

// refEnd VkExternalMemoryFeatureFlagBitsNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV VkExternalImageFormatPropertiesNV
