Optical Flow

Optical Flow Queues

VK_NV_optical_flow adds a optical flow queue type bit VK_QUEUE_OPTICAL_FLOW_BIT_NV to VkQueueFlagBits. Optical flow operations are supported by queues with an advertised queue capability of VK_QUEUE_OPTICAL_FLOW_BIT_NV. As in the case of other queue types, an application must use vkGetPhysicalDeviceQueueFamilyProperties to query whether the physical device has support for the Optical Flow Queue. When the implementation reports the VK_QUEUE_OPTICAL_FLOW_BIT_NV bit for a queue family, it advertises general support for Vulkan queue operations described in Devices and Queues.

Optical Flow Image Formats

vkGetPhysicalDeviceOpticalFlowImageFormatsNVQuery image formats for optical flow
VkOpticalFlowImageFormatInfoNVStructure describing optical flow image format info
VkOpticalFlowUsageFlagBitsNVBits specifying usage for optical flow operations
VkOpticalFlowUsageFlagsNVBitmask of VkOpticalFlowUsageFlagBitsNV
VkOpticalFlowImageFormatPropertiesNVStructure describing properties of an optical flow image format

Optical Flow Session

Optical Flow Session Object

VkOpticalFlowSessionNVOpaque handle to an optical flow session object

Creating an Optical Flow Session

vkCreateOpticalFlowSessionNVCreates an optical flow session object
VkOpticalFlowSessionCreateInfoNVStructure specifying parameters of a newly created optical flow session
VkOpticalFlowSessionCreatePrivateDataInfoNVStructure for NV internal use only
VkOpticalFlowGridSizeFlagBitsNVBits specifying grid sizes for optical flow operations
VkOpticalFlowGridSizeFlagsNVBitmask of VkOpticalFlowGridSizeFlagBitsNV
VkOpticalFlowPerformanceLevelNVOptical flow performance level types
VkOpticalFlowSessionCreateFlagBitsNVBits specifying flags for optical flow session
VkOpticalFlowSessionCreateFlagsNVBitmask of VkOpticalFlowSessionCreateFlagBitsNV

Destroying an Optical Flow Session

vkDestroyOpticalFlowSessionNVDestroy optical flow session object

Binding Vulkan Image Views to an Optical Flow Session

vkBindOpticalFlowSessionImageNVBind image to an optical flow session
VkOpticalFlowSessionBindingPointNVBinding points of an optical flow session

Optical Flow Execution

vkCmdOpticalFlowExecuteNVCalculate optical flow vectors
VkOpticalFlowExecuteInfoNVStructure specifying parameters of a optical flow vector calculation
VkOpticalFlowExecuteFlagBitsNVBits specifying flags for a optical flow vector calculation
VkOpticalFlowExecuteFlagsNVBitmask of VkOpticalFlowExecuteFlagBitsNV