[{"data":1,"prerenderedAt":556},["ShallowReactive",2],{"2tOEwvKn0u":3},{"title":4,"description":5,"parent":6,"cmd_buf_level":7,"render_pass_scope":10,"supported_queue_types":11,"tasks":13,"type":15,"xrefs":16,"body":17,"_type":555,"_id":4},"vkCmdOpticalFlowExecuteNV","Calculate optical flow vectors","VK_NV_optical_flow",[8,9],"primary","secondary","outside",[12],"opticalflow",[14],"action","protos",[],{"type":18,"children":19,"toc":553},"root",[20,28,33,276,321,517,547],{"type":21,"tag":22,"props":23,"children":24},"element","p",{},[25],{"type":26,"value":27},"text","Default direction of flow estimation is forward which calculates the optical\nflow from input frame to reference frame.\nOptionally backward flow estimation can be additionally calculated.\nAn output flow vector (Vx, Vy) means that current pixel (x, y) of input\nframe can be found at location (x+Vx, y+Vy) in reference frame.\nA backward flow vector (Vx, Vy) means that current pixel (x, y) of reference\nframe can be found at location (x+Vx, y+Vy) in input frame.",{"type":21,"tag":22,"props":29,"children":30},{},[31],{"type":26,"value":32},"To calculate optical flow vectors from two input frames, call:",{"type":21,"tag":34,"props":35,"children":36},"code-group",{},[37,141],{"type":21,"tag":38,"props":39,"children":45},"pre",{"className":40,"code":41,"filename":42,"language":43,"meta":44,"style":44},"language-c shiki shiki-themes github-light-default github-dark-default","void vkCmdOpticalFlowExecuteNV(\n VkCommandBuffer commandBuffer,\n VkOpticalFlowSessionNV session,\n const VkOpticalFlowExecuteInfoNV* pExecuteInfo);\n","C","c","",[46],{"type":21,"tag":47,"props":48,"children":49},"code",{"__ignoreMap":44},[50,74,94,112],{"type":21,"tag":51,"props":52,"children":55},"span",{"class":53,"line":54},"line",1,[56,62,68],{"type":21,"tag":51,"props":57,"children":59},{"style":58},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[60],{"type":26,"value":61},"void",{"type":21,"tag":51,"props":63,"children":65},{"style":64},"--shiki-default:#8250DF;--shiki-dark:#D2A8FF",[66],{"type":26,"value":67}," vkCmdOpticalFlowExecuteNV",{"type":21,"tag":51,"props":69,"children":71},{"style":70},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[72],{"type":26,"value":73},"(\n",{"type":21,"tag":51,"props":75,"children":77},{"class":53,"line":76},2,[78,83,89],{"type":21,"tag":51,"props":79,"children":80},{"style":70},[81],{"type":26,"value":82}," VkCommandBuffer ",{"type":21,"tag":51,"props":84,"children":86},{"style":85},"--shiki-default:#953800;--shiki-dark:#FFA657",[87],{"type":26,"value":88},"commandBuffer",{"type":21,"tag":51,"props":90,"children":91},{"style":70},[92],{"type":26,"value":93},",\n",{"type":21,"tag":51,"props":95,"children":97},{"class":53,"line":96},3,[98,103,108],{"type":21,"tag":51,"props":99,"children":100},{"style":70},[101],{"type":26,"value":102}," VkOpticalFlowSessionNV ",{"type":21,"tag":51,"props":104,"children":105},{"style":85},[106],{"type":26,"value":107},"session",{"type":21,"tag":51,"props":109,"children":110},{"style":70},[111],{"type":26,"value":93},{"type":21,"tag":51,"props":113,"children":115},{"class":53,"line":114},4,[116,121,126,131,136],{"type":21,"tag":51,"props":117,"children":118},{"style":58},[119],{"type":26,"value":120}," const",{"type":21,"tag":51,"props":122,"children":123},{"style":70},[124],{"type":26,"value":125}," VkOpticalFlowExecuteInfoNV",{"type":21,"tag":51,"props":127,"children":128},{"style":58},[129],{"type":26,"value":130},"*",{"type":21,"tag":51,"props":132,"children":133},{"style":85},[134],{"type":26,"value":135}," pExecuteInfo",{"type":21,"tag":51,"props":137,"children":138},{"style":70},[139],{"type":26,"value":140},");\n",{"type":21,"tag":38,"props":142,"children":147},{"className":143,"code":144,"filename":145,"language":146,"meta":44,"style":44},"language-rs shiki shiki-themes github-light-default github-dark-default","pub fn cmd_optical_flow_execute_nv(\n command_buffer: vk::CommandBuffer,\n session: vk::OpticalFlowSessionNV,\n p_execute_info: *const vk::OpticalFlowExecuteInfoNV,\n);\n","Rust","rs",[148],{"type":21,"tag":47,"props":149,"children":150},{"__ignoreMap":44},[151,173,205,234,268],{"type":21,"tag":51,"props":152,"children":153},{"class":53,"line":54},[154,159,164,169],{"type":21,"tag":51,"props":155,"children":156},{"style":58},[157],{"type":26,"value":158},"pub",{"type":21,"tag":51,"props":160,"children":161},{"style":58},[162],{"type":26,"value":163}," fn",{"type":21,"tag":51,"props":165,"children":166},{"style":64},[167],{"type":26,"value":168}," cmd_optical_flow_execute_nv",{"type":21,"tag":51,"props":170,"children":171},{"style":70},[172],{"type":26,"value":73},{"type":21,"tag":51,"props":174,"children":175},{"class":53,"line":76},[176,181,186,191,196,201],{"type":21,"tag":51,"props":177,"children":178},{"style":70},[179],{"type":26,"value":180}," command_buffer",{"type":21,"tag":51,"props":182,"children":183},{"style":58},[184],{"type":26,"value":185},":",{"type":21,"tag":51,"props":187,"children":188},{"style":85},[189],{"type":26,"value":190}," vk",{"type":21,"tag":51,"props":192,"children":193},{"style":58},[194],{"type":26,"value":195},"::",{"type":21,"tag":51,"props":197,"children":198},{"style":85},[199],{"type":26,"value":200},"CommandBuffer",{"type":21,"tag":51,"props":202,"children":203},{"style":70},[204],{"type":26,"value":93},{"type":21,"tag":51,"props":206,"children":207},{"class":53,"line":96},[208,213,217,221,225,230],{"type":21,"tag":51,"props":209,"children":210},{"style":70},[211],{"type":26,"value":212}," session",{"type":21,"tag":51,"props":214,"children":215},{"style":58},[216],{"type":26,"value":185},{"type":21,"tag":51,"props":218,"children":219},{"style":85},[220],{"type":26,"value":190},{"type":21,"tag":51,"props":222,"children":223},{"style":58},[224],{"type":26,"value":195},{"type":21,"tag":51,"props":226,"children":227},{"style":85},[228],{"type":26,"value":229},"OpticalFlowSessionNV",{"type":21,"tag":51,"props":231,"children":232},{"style":70},[233],{"type":26,"value":93},{"type":21,"tag":51,"props":235,"children":236},{"class":53,"line":114},[237,242,246,251,255,259,264],{"type":21,"tag":51,"props":238,"children":239},{"style":70},[240],{"type":26,"value":241}," p_execute_info",{"type":21,"tag":51,"props":243,"children":244},{"style":58},[245],{"type":26,"value":185},{"type":21,"tag":51,"props":247,"children":248},{"style":58},[249],{"type":26,"value":250}," *const",{"type":21,"tag":51,"props":252,"children":253},{"style":85},[254],{"type":26,"value":190},{"type":21,"tag":51,"props":256,"children":257},{"style":58},[258],{"type":26,"value":195},{"type":21,"tag":51,"props":260,"children":261},{"style":85},[262],{"type":26,"value":263},"OpticalFlowExecuteInfoNV",{"type":21,"tag":51,"props":265,"children":266},{"style":70},[267],{"type":26,"value":93},{"type":21,"tag":51,"props":269,"children":271},{"class":53,"line":270},5,[272],{"type":21,"tag":51,"props":273,"children":274},{"style":70},[275],{"type":26,"value":140},{"type":21,"tag":277,"props":278,"children":279},"ul",{},[280,291,301],{"type":21,"tag":281,"props":282,"children":283},"li",{},[284,289],{"type":21,"tag":47,"props":285,"children":287},{"className":286},[],[288],{"type":26,"value":88},{"type":26,"value":290}," is the command buffer into which the command will be\nrecorded.",{"type":21,"tag":281,"props":292,"children":293},{},[294,299],{"type":21,"tag":47,"props":295,"children":297},{"className":296},[],[298],{"type":26,"value":107},{"type":26,"value":300}," is the optical flow session object on which this command\nis operating.",{"type":21,"tag":281,"props":302,"children":303},{},[304,310,312,319],{"type":21,"tag":47,"props":305,"children":307},{"className":306},[],[308],{"type":26,"value":309},"pExecuteInfo",{"type":26,"value":311}," Info is a pointer to a\n",{"type":21,"tag":313,"props":314,"children":316},"a",{"href":315},"/man/VkOpticalFlowExecuteInfoNV",[317],{"type":26,"value":318},"VkOpticalFlowExecuteInfoNV",{"type":26,"value":320},".",{"type":21,"tag":322,"props":323,"children":325},"validity-group",{"name":324},"Valid Usage (Implicit)",[326,356,380,404,428,457,471,484],{"type":21,"tag":327,"props":328,"children":330},"validity-field",{"name":329},"VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-parameter",[331],{"type":21,"tag":22,"props":332,"children":333},{},[334,339,341,346,348,354],{"type":21,"tag":47,"props":335,"children":337},{"className":336},[],[338],{"type":26,"value":88},{"type":26,"value":340}," ",{"type":21,"tag":342,"props":343,"children":345},"normative",{"type":344},"must",[],{"type":26,"value":347}," be a valid ",{"type":21,"tag":313,"props":349,"children":351},{"href":350},"/man/VkCommandBuffer",[352],{"type":26,"value":353},"VkCommandBuffer",{"type":26,"value":355}," handle",{"type":21,"tag":327,"props":357,"children":359},{"name":358},"VUID-vkCmdOpticalFlowExecuteNV-session-parameter",[360],{"type":21,"tag":22,"props":361,"children":362},{},[363,368,369,372,373,379],{"type":21,"tag":47,"props":364,"children":366},{"className":365},[],[367],{"type":26,"value":107},{"type":26,"value":340},{"type":21,"tag":342,"props":370,"children":371},{"type":344},[],{"type":26,"value":347},{"type":21,"tag":313,"props":374,"children":376},{"href":375},"/man/VkOpticalFlowSessionNV",[377],{"type":26,"value":378},"VkOpticalFlowSessionNV",{"type":26,"value":355},{"type":21,"tag":327,"props":381,"children":383},{"name":382},"VUID-vkCmdOpticalFlowExecuteNV-pExecuteInfo-parameter",[384],{"type":21,"tag":22,"props":385,"children":386},{},[387,392,393,396,398,402],{"type":21,"tag":47,"props":388,"children":390},{"className":389},[],[391],{"type":26,"value":309},{"type":26,"value":340},{"type":21,"tag":342,"props":394,"children":395},{"type":344},[],{"type":26,"value":397}," be a valid pointer to a valid ",{"type":21,"tag":313,"props":399,"children":400},{"href":315},[401],{"type":26,"value":318},{"type":26,"value":403}," structure",{"type":21,"tag":327,"props":405,"children":407},{"name":406},"VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-recording",[408],{"type":21,"tag":22,"props":409,"children":410},{},[411,416,417,420,422],{"type":21,"tag":47,"props":412,"children":414},{"className":413},[],[415],{"type":26,"value":88},{"type":26,"value":340},{"type":21,"tag":342,"props":418,"children":419},{"type":344},[],{"type":26,"value":421}," be in the ",{"type":21,"tag":313,"props":423,"children":425},{"href":424},"/chapters/commandbuffers#commandbuffers-lifecycle",[426],{"type":26,"value":427},"recording state",{"type":21,"tag":327,"props":429,"children":431},{"name":430},"VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-cmdpool",[432],{"type":21,"tag":22,"props":433,"children":434},{},[435,437,443,445,450,452,455],{"type":26,"value":436},"The ",{"type":21,"tag":47,"props":438,"children":440},{"className":439},[],[441],{"type":26,"value":442},"VkCommandPool",{"type":26,"value":444}," that ",{"type":21,"tag":47,"props":446,"children":448},{"className":447},[],[449],{"type":26,"value":88},{"type":26,"value":451}," was allocated from ",{"type":21,"tag":342,"props":453,"children":454},{"type":344},[],{"type":26,"value":456}," support optical flow operations",{"type":21,"tag":327,"props":458,"children":460},{"name":459},"VUID-vkCmdOpticalFlowExecuteNV-renderpass",[461],{"type":21,"tag":22,"props":462,"children":463},{},[464,466,469],{"type":26,"value":465},"This command ",{"type":21,"tag":342,"props":467,"children":468},{"type":344},[],{"type":26,"value":470}," only be called outside of a render pass instance",{"type":21,"tag":327,"props":472,"children":474},{"name":473},"VUID-vkCmdOpticalFlowExecuteNV-videocoding",[475],{"type":21,"tag":22,"props":476,"children":477},{},[478,479,482],{"type":26,"value":465},{"type":21,"tag":342,"props":480,"children":481},{"type":344},[],{"type":26,"value":483}," only be called outside of a video coding scope",{"type":21,"tag":327,"props":485,"children":487},{"name":486},"VUID-vkCmdOpticalFlowExecuteNV-commonparent",[488],{"type":21,"tag":22,"props":489,"children":490},{},[491,493,498,500,505,506,509,511],{"type":26,"value":492},"Both of ",{"type":21,"tag":47,"props":494,"children":496},{"className":495},[],[497],{"type":26,"value":88},{"type":26,"value":499},", and ",{"type":21,"tag":47,"props":501,"children":503},{"className":502},[],[504],{"type":26,"value":107},{"type":26,"value":340},{"type":21,"tag":342,"props":507,"children":508},{"type":344},[],{"type":26,"value":510}," have been created, allocated, or retrieved from the same ",{"type":21,"tag":313,"props":512,"children":514},{"href":513},"/man/VkDevice",[515],{"type":26,"value":516},"VkDevice",{"type":21,"tag":518,"props":519,"children":521},"validity-box",{"name":520},"Host Synchronization",[522],{"type":21,"tag":277,"props":523,"children":524},{},[525],{"type":21,"tag":281,"props":526,"children":527},{},[528,530,535,536,541,542,545],{"type":26,"value":529},"Host access to the ",{"type":21,"tag":47,"props":531,"children":533},{"className":532},[],[534],{"type":26,"value":442},{"type":26,"value":444},{"type":21,"tag":47,"props":537,"children":539},{"className":538},[],[540],{"type":26,"value":88},{"type":26,"value":451},{"type":21,"tag":342,"props":543,"children":544},{"type":344},[],{"type":26,"value":546}," be externally synchronized\n::",{"type":21,"tag":548,"props":549,"children":550},"style",{},[551],{"type":26,"value":552},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":44,"searchDepth":76,"depth":76,"links":554},[],"markdown",1729612502295]