blob: 156187e972f76ea006b45b3913b41c8a0bf1d263 [file] [log] [blame]
// Copyright (c) 2018-2020 NVIDIA Corporation
//
// SPDX-License-Identifier: CC-BY-4.0
[open,refpage='vkGetPhysicalDeviceExternalImageFormatPropertiesNV',desc='Determine image capabilities compatible with external memory handle types',type='protos']
--
To determine the image capabilities compatible with an external memory
handle type, call:
include::{generated}/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
elink:VkExternalMemoryHandleTypeFlagBitsNV, or 0.
* pname:pExternalImageFormatProperties is a pointer to a
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::{generated}/validity/protos/vkGetPhysicalDeviceExternalImageFormatPropertiesNV.txt[]
--
[open,refpage='VkExternalImageFormatPropertiesNV',desc='Structure specifying external image format properties',type='structs']
--
The sname:VkExternalImageFormatPropertiesNV structure is defined as:
include::{generated}/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::{generated}/validity/structs/VkExternalImageFormatPropertiesNV.txt[]
--
[open,refpage='VkExternalMemoryFeatureFlagBitsNV',desc='Bitmask specifying external memory features',type='enums',xrefs='vkGetPhysicalDeviceExternalImageFormatPropertiesNV VkExternalImageFormatPropertiesNV']
--
Bits which can: be set in
slink:VkExternalImageFormatPropertiesNV::pname:externalMemoryFeatures,
indicating properties of the external memory handle type, are:
include::{generated}/api/enums/VkExternalMemoryFeatureFlagBitsNV.txt[]
* ename:VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV specifies that
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 specifies that the
implementation supports exporting handles of the specified type.
* ename:VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV specifies that the
implementation supports importing handles of the specified type.
--
[open,refpage='VkExternalMemoryFeatureFlagsNV',desc='Bitmask of VkExternalMemoryFeatureFlagBitsNV',type='flags']
--
include::{generated}/api/flags/VkExternalMemoryFeatureFlagsNV.txt[]
tname:VkExternalMemoryFeatureFlagsNV is a bitmask type for setting a mask of
zero or more elink:VkExternalMemoryFeatureFlagBitsNV.
--