vkCmdOpticalFlowExecuteNV
Default direction of flow estimation is forward which calculates the optical flow from input frame to reference frame. Optionally backward flow estimation can be additionally calculated. An output flow vector (Vx, Vy) means that current pixel (x, y) of input frame can be found at location (x+Vx, y+Vy) in reference frame. A backward flow vector (Vx, Vy) means that current pixel (x, y) of reference frame can be found at location (x+Vx, y+Vy) in input frame.
To calculate optical flow vectors from two input frames, call:
void vkCmdOpticalFlowExecuteNV(
VkCommandBuffer commandBuffer,
VkOpticalFlowSessionNV session,
const VkOpticalFlowExecuteInfoNV* pExecuteInfo);
commandBufferis the command buffer into which the command will be recorded.sessionis the optical flow session object on which this command is operating.pExecuteInfoInfo is a pointer to a VkOpticalFlowExecuteInfoNV.
Valid Usage (Implicit)
VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-parameter
commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdOpticalFlowExecuteNV-session-parameter
session must be a valid VkOpticalFlowSessionNV handle
VUID-vkCmdOpticalFlowExecuteNV-pExecuteInfo-parameter
pExecuteInfo must be a valid pointer to a valid VkOpticalFlowExecuteInfoNV structure
VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-recording
commandBuffer must be in the recording state
VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-cmdpool
The VkCommandPool that commandBuffer was allocated from must support optical flow operations
VUID-vkCmdOpticalFlowExecuteNV-renderpass
This command must only be called outside of a render pass instance
VUID-vkCmdOpticalFlowExecuteNV-videocoding
This command must only be called outside of a video coding scope
VUID-vkCmdOpticalFlowExecuteNV-commonparent
Both of commandBuffer, and session must have been created, allocated, or retrieved from the same VkDevice
Host Synchronization
- Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized ::