| // 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. |
| -- |