C Specification
To enumerate the supported output, input and DPB image formats for a specific codec operation and video profile, call:
// Provided by VK_KHR_video_queue
VkResult vkGetPhysicalDeviceVideoFormatPropertiesKHR(
VkPhysicalDevice physicalDevice,
const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo,
uint32_t* pVideoFormatPropertyCount,
VkVideoFormatPropertiesKHR* pVideoFormatProperties);
Parameters
-
physicalDeviceis the physical device being queried. -
pVideoFormatInfois a pointer to a VkPhysicalDeviceVideoFormatInfoKHR structure specifying the codec and video profile for which information is returned. -
pVideoFormatPropertyCountis a pointer to an integer related to the number of video format properties available or queried, as described below. -
pVideoFormatPropertiesis a pointer to an array of VkVideoFormatPropertiesKHR structures in which supported formats are returned.
Description
If pVideoFormatProperties is NULL, then the number of video format
properties supported for the given physicalDevice is returned in
pVideoFormatPropertyCount.
Otherwise, pVideoFormatPropertyCount must point to a variable set by
the user to the number of elements in the pVideoFormatProperties
array, and on return the variable is overwritten with the number of values
actually written to pVideoFormatProperties.
If the value of pVideoFormatPropertyCount is less than the number of
video format properties supported, at most pVideoFormatPropertyCount
values will be written to pVideoFormatProperties, and
VK_INCOMPLETE will be returned instead of VK_SUCCESS, to
indicate that not all the available values were returned.
If an implementation reports
VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR is
supported but
VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR is not
supported in VkVideoDecodeCapabilitiesKHR::flags, then to query
for video format properties for decode DPB or output, imageUsage must
have both VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR and
VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR set.
Otherwise, the call will fail with VK_ERROR_FORMAT_NOT_SUPPORTED.
If an implementation reports
VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR is
supported but
VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR is not
supported in VkVideoDecodeCapabilitiesKHR::flags, then to query
for video format properties for decode DPB, imageUsage must have
VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR set and
VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR not set.
Otherwise, the call will fail with VK_ERROR_FORMAT_NOT_SUPPORTED.
Similarly, to query for video format properties for decode output,
imageUsage must have VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR
set and VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR not set.
Otherwise, the call will fail with VK_ERROR_FORMAT_NOT_SUPPORTED.
|
Note:
For most use cases, only decode or encode related usage flags are going to be specified. For a use case such as transcode, if the image were to be shared between decode and encode session(s), then both decode and encode related usage flags can be set. |
Document Notes
For more information, see the Vulkan Specification
This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.