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
-
physicalDevice
is the physical device being queried. -
pVideoFormatInfo
is a pointer to a VkPhysicalDeviceVideoFormatInfoKHR structure specifying the codec and video profile for which information is returned. -
pVideoFormatPropertyCount
is a pointer to an integer related to the number of video format properties available or queried, as described below. -
pVideoFormatProperties
is 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.