Function Prototype

vkGetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM

Query image formats for data graph optical flow

To enumerate the supported image formats for a specific data graph optical flow usage, call:

VkResult vkGetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM(
    VkPhysicalDevice                                physicalDevice,
    uint32_t                                        queueFamilyIndex,
    const VkQueueFamilyDataGraphPropertiesARM*      pQueueFamilyDataGraphProperties,
    const VkDataGraphOpticalFlowImageFormatInfoARM* pOpticalFlowImageFormatInfo,
    uint32_t*                 pFormatCount,
    VkDataGraphOpticalFlowImageFormatPropertiesARM* pImageFormatProperties);
  • physicalDevice is the physical device being queried.
  • queueFamilyIndex is the index of the queue family being queried.
  • pQueueFamilyDataGraphProperties is a pointer to a VkQueueFamilyDataGraphPropertiesARM structure that selects the processing engine and operation set for which the properties are queried.
  • pOpticalFlowImageFormatInfo is a pointer to a VkDataGraphOpticalFlowImageFormatInfoARM structure specifying the optical flow usage for which information is returned.
  • pFormatCount is a pointer to an integer related to the number of optical flow properties available or queried, as described below.
  • pImageFormatProperties is a pointer to an array of VkDataGraphOpticalFlowImageFormatPropertiesARM structures in which supported formats and image parameters are returned.

If pImageFormatProperties is NULL, then the number of optical flow properties supported for the given physicalDevice is returned in pFormatCount. Otherwise, pFormatCount must point to a variable set by the user to the number of elements in the pImageFormatProperties array, and on return the variable is overwritten with the number of values actually written to pImageFormatProperties. If the value of pFormatCount is less than the number of optical flow properties supported, at most pFormatCount values will be written to pImageFormatProperties, and VK_INCOMPLETE will be returned instead of VK_SUCCESS, to indicate that not all the available values were returned. Before creating an image to be used as a optical flow image, obtain the supported image creation parameters by querying with vkGetPhysicalDeviceFormatProperties2 and vkGetPhysicalDeviceImageFormatProperties2 using one of the reported formats and adding VkDataGraphOpticalFlowImageFormatInfoARM to the pNext chain of VkPhysicalDeviceImageFormatInfo2. When querying the parameters with vkGetPhysicalDeviceImageFormatProperties2 for images used for optical flow operations, the VkDataGraphOpticalFlowImageFormatInfoARM::usage field should contain one or more of the bits defined in VkDataGraphOpticalFlowImageUsageFlagBitsARM.

Valid Usage

VUID-vkGetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM-pQueueFamilyDataGraphProperties-09965

pQueueFamilyDataGraphProperties must point to a structure whose operation member has its name member equal to OpticalFlow

Valid Usage (Implicit)

VK_FORMAT_B8G8R8A8_UNORM, VK_FORMAT_R8G8B8A8_UNORM, VK_FORMAT_R8G8B8_UNORM, VK_FORMAT_B8G8R8_UNORM, VK_FORMAT_R8_UNORM, and VK_FORMAT_B10G11R11_UFLOAT_PACK32 are initially supported for images with optical flow usageVK_DATA_GRAPH_OPTICAL_FLOW_IMAGE_USAGE_INPUT_BIT_ARM.VK_FORMAT_R16G16_SFLOAT is initially supported for images with optical flow usageVK_DATA_GRAPH_OPTICAL_FLOW_IMAGE_USAGE_OUTPUT_BIT_ARM and VK_DATA_GRAPH_OPTICAL_FLOW_IMAGE_USAGE_HINT_BIT_ARM.VK_FORMAT_R16_UINT is initially supported for images with optical flow usageVK_DATA_GRAPH_OPTICAL_FLOW_IMAGE_USAGE_COST_BIT_ARM.