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);
commandBuffer
is the command buffer into which the command will be recorded.session
is the optical flow session object on which this command is operating.pExecuteInfo
Info 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
VkCommandPool
thatcommandBuffer
was allocated from must be externally synchronized ::