[{"data":1,"prerenderedAt":728},["ShallowReactive",2],{"tosQtf86Js":3},{"title":4,"description":5,"parent":6,"cmd_buf_level":7,"render_pass_scope":9,"video_coding_scope":10,"supported_queue_types":11,"tasks":14,"type":16,"xrefs":17,"body":18,"_type":727,"_id":4},"vkCmdControlVideoCodingKHR","Control video coding parameters","VK_KHR_video_queue",[8],"primary","outside","inside",[12,13],"decode","encode",[15],"action","protos",[],{"type":19,"children":20,"toc":725},"root",[21,29,225,260,265,309,330,354,397,442,516,673,719],{"type":22,"tag":23,"props":24,"children":25},"element","p",{},[26],{"type":27,"value":28},"text","To apply dynamic controls to the currently bound video session object, call:",{"type":22,"tag":30,"props":31,"children":32},"code-group",{},[33,119],{"type":22,"tag":34,"props":35,"children":41},"pre",{"className":36,"code":37,"filename":38,"language":39,"meta":40,"style":40},"language-c shiki shiki-themes github-light-default github-dark-default","void vkCmdControlVideoCodingKHR(\n VkCommandBuffer commandBuffer,\n const VkVideoCodingControlInfoKHR* pCodingControlInfo);\n","C","c","",[42],{"type":22,"tag":43,"props":44,"children":45},"code",{"__ignoreMap":40},[46,70,90],{"type":22,"tag":47,"props":48,"children":51},"span",{"class":49,"line":50},"line",1,[52,58,64],{"type":22,"tag":47,"props":53,"children":55},{"style":54},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[56],{"type":27,"value":57},"void",{"type":22,"tag":47,"props":59,"children":61},{"style":60},"--shiki-default:#8250DF;--shiki-dark:#D2A8FF",[62],{"type":27,"value":63}," vkCmdControlVideoCodingKHR",{"type":22,"tag":47,"props":65,"children":67},{"style":66},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[68],{"type":27,"value":69},"(\n",{"type":22,"tag":47,"props":71,"children":73},{"class":49,"line":72},2,[74,79,85],{"type":22,"tag":47,"props":75,"children":76},{"style":66},[77],{"type":27,"value":78}," VkCommandBuffer ",{"type":22,"tag":47,"props":80,"children":82},{"style":81},"--shiki-default:#953800;--shiki-dark:#FFA657",[83],{"type":27,"value":84},"commandBuffer",{"type":22,"tag":47,"props":86,"children":87},{"style":66},[88],{"type":27,"value":89},",\n",{"type":22,"tag":47,"props":91,"children":93},{"class":49,"line":92},3,[94,99,104,109,114],{"type":22,"tag":47,"props":95,"children":96},{"style":54},[97],{"type":27,"value":98}," const",{"type":22,"tag":47,"props":100,"children":101},{"style":66},[102],{"type":27,"value":103}," VkVideoCodingControlInfoKHR",{"type":22,"tag":47,"props":105,"children":106},{"style":54},[107],{"type":27,"value":108},"*",{"type":22,"tag":47,"props":110,"children":111},{"style":81},[112],{"type":27,"value":113}," pCodingControlInfo",{"type":22,"tag":47,"props":115,"children":116},{"style":66},[117],{"type":27,"value":118},");\n",{"type":22,"tag":34,"props":120,"children":125},{"className":121,"code":122,"filename":123,"language":124,"meta":40,"style":40},"language-rs shiki shiki-themes github-light-default github-dark-default","pub fn cmd_control_video_coding_khr(\n command_buffer: vk::CommandBuffer,\n p_coding_control_info: *const vk::VideoCodingControlInfoKHR,\n);\n","Rust","rs",[126],{"type":22,"tag":43,"props":127,"children":128},{"__ignoreMap":40},[129,151,183,217],{"type":22,"tag":47,"props":130,"children":131},{"class":49,"line":50},[132,137,142,147],{"type":22,"tag":47,"props":133,"children":134},{"style":54},[135],{"type":27,"value":136},"pub",{"type":22,"tag":47,"props":138,"children":139},{"style":54},[140],{"type":27,"value":141}," fn",{"type":22,"tag":47,"props":143,"children":144},{"style":60},[145],{"type":27,"value":146}," cmd_control_video_coding_khr",{"type":22,"tag":47,"props":148,"children":149},{"style":66},[150],{"type":27,"value":69},{"type":22,"tag":47,"props":152,"children":153},{"class":49,"line":72},[154,159,164,169,174,179],{"type":22,"tag":47,"props":155,"children":156},{"style":66},[157],{"type":27,"value":158}," command_buffer",{"type":22,"tag":47,"props":160,"children":161},{"style":54},[162],{"type":27,"value":163},":",{"type":22,"tag":47,"props":165,"children":166},{"style":81},[167],{"type":27,"value":168}," vk",{"type":22,"tag":47,"props":170,"children":171},{"style":54},[172],{"type":27,"value":173},"::",{"type":22,"tag":47,"props":175,"children":176},{"style":81},[177],{"type":27,"value":178},"CommandBuffer",{"type":22,"tag":47,"props":180,"children":181},{"style":66},[182],{"type":27,"value":89},{"type":22,"tag":47,"props":184,"children":185},{"class":49,"line":92},[186,191,195,200,204,208,213],{"type":22,"tag":47,"props":187,"children":188},{"style":66},[189],{"type":27,"value":190}," p_coding_control_info",{"type":22,"tag":47,"props":192,"children":193},{"style":54},[194],{"type":27,"value":163},{"type":22,"tag":47,"props":196,"children":197},{"style":54},[198],{"type":27,"value":199}," *const",{"type":22,"tag":47,"props":201,"children":202},{"style":81},[203],{"type":27,"value":168},{"type":22,"tag":47,"props":205,"children":206},{"style":54},[207],{"type":27,"value":173},{"type":22,"tag":47,"props":209,"children":210},{"style":81},[211],{"type":27,"value":212},"VideoCodingControlInfoKHR",{"type":22,"tag":47,"props":214,"children":215},{"style":66},[216],{"type":27,"value":89},{"type":22,"tag":47,"props":218,"children":220},{"class":49,"line":219},4,[221],{"type":22,"tag":47,"props":222,"children":223},{"style":66},[224],{"type":27,"value":118},{"type":22,"tag":226,"props":227,"children":228},"ul",{},[229,240],{"type":22,"tag":230,"props":231,"children":232},"li",{},[233,238],{"type":22,"tag":43,"props":234,"children":236},{"className":235},[],[237],{"type":27,"value":84},{"type":27,"value":239}," is the command buffer in which to record the\ncommand.",{"type":22,"tag":230,"props":241,"children":242},{},[243,249,251,258],{"type":22,"tag":43,"props":244,"children":246},{"className":245},[],[247],{"type":27,"value":248},"pCodingControlInfo",{"type":27,"value":250}," is a pointer to a\n",{"type":22,"tag":252,"props":253,"children":255},"a",{"href":254},"/man/VkVideoCodingControlInfoKHR",[256],{"type":27,"value":257},"VkVideoCodingControlInfoKHR",{"type":27,"value":259}," structure specifying the control\nparameters.",{"type":22,"tag":23,"props":261,"children":262},{},[263],{"type":27,"value":264},"The control parameters provided in this call are applied to the video\nsession at the time the command executes on the device and are in effect\nuntil a subsequent call to this command with the same video session bound\nchanges the corresponding control parameters.",{"type":22,"tag":23,"props":266,"children":267},{},[268,270,275,277,283,285,291,293,299,301,307],{"type":27,"value":269},"A newly created video session ",{"type":22,"tag":271,"props":272,"children":274},"normative",{"type":273},"must",[],{"type":27,"value":276}," be reset before performing video coding\noperations using it by including ",{"type":22,"tag":43,"props":278,"children":280},{"className":279},[],[281],{"type":27,"value":282},"VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR",{"type":27,"value":284},"\nin ",{"type":22,"tag":43,"props":286,"children":288},{"className":287},[],[289],{"type":27,"value":290},"pCodingControlInfo→flags",{"type":27,"value":292},".\nThe reset operation also returns all DPB slots of the video session to the\n",{"type":22,"tag":252,"props":294,"children":296},{"href":295},"/chapters/video-coding#dpb-slot-states",[297],{"type":27,"value":298},"inactive state",{"type":27,"value":300},".\nCorrespondingly, any DPB slot index associated with the\n",{"type":22,"tag":252,"props":302,"children":304},{"href":303},"/man/vkCmdBeginVideoCodingKHR#bound-reference-picture-resources",[305],{"type":27,"value":306},"bound reference picture resources",{"type":27,"value":308}," is\nremoved.",{"type":22,"tag":23,"props":310,"children":311},{},[312,314,320,322,328],{"type":27,"value":313},"For encode sessions, the reset operation returns ",{"type":22,"tag":252,"props":315,"children":317},{"href":316},"/chapters/video-coding#encode-rate-control",[318],{"type":27,"value":319},"rate\ncontrol",{"type":27,"value":321}," configuration to implementation default settings and sets the\n",{"type":22,"tag":252,"props":323,"children":325},{"href":324},"/chapters/video-coding#encode-quality-level",[326],{"type":27,"value":327},"video encode quality level",{"type":27,"value":329}," to zero.",{"type":22,"tag":23,"props":331,"children":332},{},[333,335,339,341,347,349,352],{"type":27,"value":334},"After video coding operations are performed using a video session, the reset\noperation ",{"type":22,"tag":271,"props":336,"children":338},{"type":337},"can",[],{"type":27,"value":340}," be used to return the video session to the same ",{"type":22,"tag":342,"props":343,"children":344},"em",{},[345],{"type":27,"value":346},"initial",{"type":27,"value":348},"\nstate as after the reset of a newly created video session.\nThis ",{"type":22,"tag":271,"props":350,"children":351},{"type":337},[],{"type":27,"value":353}," be used, for example, when different video sequences are needed to\nbe processed with the same video session object.",{"type":22,"tag":23,"props":355,"children":356},{},[357,359,364,366,372,374,379,381,387,389,395],{"type":27,"value":358},"If ",{"type":22,"tag":43,"props":360,"children":362},{"className":361},[],[363],{"type":27,"value":290},{"type":27,"value":365}," includes\n",{"type":22,"tag":43,"props":367,"children":369},{"className":368},[],[370],{"type":27,"value":371},"VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR",{"type":27,"value":373},", then the command\nreplaces the ",{"type":22,"tag":252,"props":375,"children":376},{"href":316},[377],{"type":27,"value":378},"rate control",{"type":27,"value":380}," configuration maintained\nby the video session with the configuration specified in the\n",{"type":22,"tag":252,"props":382,"children":384},{"href":383},"/man/VkVideoEncodeRateControlInfoKHR",[385],{"type":27,"value":386},"VkVideoEncodeRateControlInfoKHR",{"type":27,"value":388}," structure included in the\n",{"type":22,"tag":43,"props":390,"children":392},{"className":391},[],[393],{"type":27,"value":394},"pCodingControlInfo→pNext",{"type":27,"value":396}," chain.",{"type":22,"tag":23,"props":398,"children":399},{},[400,401,406,407,413,415,419,421,427,429,435,436,441],{"type":27,"value":358},{"type":22,"tag":43,"props":402,"children":404},{"className":403},[],[405],{"type":27,"value":290},{"type":27,"value":365},{"type":22,"tag":43,"props":408,"children":410},{"className":409},[],[411],{"type":27,"value":412},"VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR",{"type":27,"value":414},", then the command\nchanges the current ",{"type":22,"tag":252,"props":416,"children":417},{"href":324},[418],{"type":27,"value":327},{"type":27,"value":420}," to\nthe value specified in the ",{"type":22,"tag":43,"props":422,"children":424},{"className":423},[],[425],{"type":27,"value":426},"qualityLevel",{"type":27,"value":428}," member of the\n",{"type":22,"tag":252,"props":430,"children":432},{"href":431},"/man/VkVideoEncodeQualityLevelInfoKHR",[433],{"type":27,"value":434},"VkVideoEncodeQualityLevelInfoKHR",{"type":27,"value":388},{"type":22,"tag":43,"props":437,"children":439},{"className":438},[],[440],{"type":27,"value":394},{"type":27,"value":396},{"type":22,"tag":443,"props":444,"children":446},"validity-group",{"name":445},"Valid Usage",[447,483],{"type":22,"tag":448,"props":449,"children":451},"validity-field",{"name":450},"VUID-vkCmdControlVideoCodingKHR-flags-07017",[452],{"type":22,"tag":23,"props":453,"children":454},{},[455,456,461,463,468,470,473,475,481],{"type":27,"value":358},{"type":22,"tag":43,"props":457,"children":459},{"className":458},[],[460],{"type":27,"value":290},{"type":27,"value":462}," does not include\n",{"type":22,"tag":43,"props":464,"children":466},{"className":465},[],[467],{"type":27,"value":282},{"type":27,"value":469},", then the bound video\nsession ",{"type":22,"tag":271,"props":471,"children":472},{"type":273},[],{"type":27,"value":474}," not be in ",{"type":22,"tag":252,"props":476,"children":478},{"href":477},"/man/vkCreateVideoSessionKHR#video-session-uninitialized",[479],{"type":27,"value":480},"uninitialized",{"type":27,"value":482},"\nstate at the time the command is executed on the device",{"type":22,"tag":448,"props":484,"children":486},{"name":485},"VUID-vkCmdControlVideoCodingKHR-pCodingControlInfo-08243",[487],{"type":22,"tag":23,"props":488,"children":489},{},[490,492,497,499,502,504,509,511],{"type":27,"value":491},"If the bound video session was not created with an encode operation,\nthen ",{"type":22,"tag":43,"props":493,"children":495},{"className":494},[],[496],{"type":27,"value":290},{"type":27,"value":498}," ",{"type":22,"tag":271,"props":500,"children":501},{"type":273},[],{"type":27,"value":503}," not include\n",{"type":22,"tag":43,"props":505,"children":507},{"className":506},[],[508],{"type":27,"value":371},{"type":27,"value":510}," or\n",{"type":22,"tag":43,"props":512,"children":514},{"className":513},[],[515],{"type":27,"value":412},{"type":22,"tag":443,"props":517,"children":519},{"name":518},"Valid Usage (Implicit)",[520,546,570,594,623,637,650],{"type":22,"tag":448,"props":521,"children":523},{"name":522},"VUID-vkCmdControlVideoCodingKHR-commandBuffer-parameter",[524],{"type":22,"tag":23,"props":525,"children":526},{},[527,532,533,536,538,544],{"type":22,"tag":43,"props":528,"children":530},{"className":529},[],[531],{"type":27,"value":84},{"type":27,"value":498},{"type":22,"tag":271,"props":534,"children":535},{"type":273},[],{"type":27,"value":537}," be a valid ",{"type":22,"tag":252,"props":539,"children":541},{"href":540},"/man/VkCommandBuffer",[542],{"type":27,"value":543},"VkCommandBuffer",{"type":27,"value":545}," handle",{"type":22,"tag":448,"props":547,"children":549},{"name":548},"VUID-vkCmdControlVideoCodingKHR-pCodingControlInfo-parameter",[550],{"type":22,"tag":23,"props":551,"children":552},{},[553,558,559,562,564,568],{"type":22,"tag":43,"props":554,"children":556},{"className":555},[],[557],{"type":27,"value":248},{"type":27,"value":498},{"type":22,"tag":271,"props":560,"children":561},{"type":273},[],{"type":27,"value":563}," be a valid pointer to a valid ",{"type":22,"tag":252,"props":565,"children":566},{"href":254},[567],{"type":27,"value":257},{"type":27,"value":569}," structure",{"type":22,"tag":448,"props":571,"children":573},{"name":572},"VUID-vkCmdControlVideoCodingKHR-commandBuffer-recording",[574],{"type":22,"tag":23,"props":575,"children":576},{},[577,582,583,586,588],{"type":22,"tag":43,"props":578,"children":580},{"className":579},[],[581],{"type":27,"value":84},{"type":27,"value":498},{"type":22,"tag":271,"props":584,"children":585},{"type":273},[],{"type":27,"value":587}," be in the ",{"type":22,"tag":252,"props":589,"children":591},{"href":590},"/chapters/commandbuffers#commandbuffers-lifecycle",[592],{"type":27,"value":593},"recording state",{"type":22,"tag":448,"props":595,"children":597},{"name":596},"VUID-vkCmdControlVideoCodingKHR-commandBuffer-cmdpool",[598],{"type":22,"tag":23,"props":599,"children":600},{},[601,603,609,611,616,618,621],{"type":27,"value":602},"The ",{"type":22,"tag":43,"props":604,"children":606},{"className":605},[],[607],{"type":27,"value":608},"VkCommandPool",{"type":27,"value":610}," that ",{"type":22,"tag":43,"props":612,"children":614},{"className":613},[],[615],{"type":27,"value":84},{"type":27,"value":617}," was allocated from ",{"type":22,"tag":271,"props":619,"children":620},{"type":273},[],{"type":27,"value":622}," support decode, or encode operations",{"type":22,"tag":448,"props":624,"children":626},{"name":625},"VUID-vkCmdControlVideoCodingKHR-renderpass",[627],{"type":22,"tag":23,"props":628,"children":629},{},[630,632,635],{"type":27,"value":631},"This command ",{"type":22,"tag":271,"props":633,"children":634},{"type":273},[],{"type":27,"value":636}," only be called outside of a render pass instance",{"type":22,"tag":448,"props":638,"children":640},{"name":639},"VUID-vkCmdControlVideoCodingKHR-videocoding",[641],{"type":22,"tag":23,"props":642,"children":643},{},[644,645,648],{"type":27,"value":631},{"type":22,"tag":271,"props":646,"children":647},{"type":273},[],{"type":27,"value":649}," only be called inside of a video coding scope",{"type":22,"tag":448,"props":651,"children":653},{"name":652},"VUID-vkCmdControlVideoCodingKHR-bufferlevel",[654],{"type":22,"tag":23,"props":655,"children":656},{},[657,662,663,666,668],{"type":22,"tag":43,"props":658,"children":660},{"className":659},[],[661],{"type":27,"value":84},{"type":27,"value":498},{"type":22,"tag":271,"props":664,"children":665},{"type":273},[],{"type":27,"value":667}," be a primary ",{"type":22,"tag":43,"props":669,"children":671},{"className":670},[],[672],{"type":27,"value":543},{"type":22,"tag":674,"props":675,"children":677},"validity-box",{"name":676},"Host Synchronization",[678],{"type":22,"tag":226,"props":679,"children":680},{},[681,697],{"type":22,"tag":230,"props":682,"children":683},{},[684,686,691,692,695],{"type":27,"value":685},"Host access to ",{"type":22,"tag":43,"props":687,"children":689},{"className":688},[],[690],{"type":27,"value":84},{"type":27,"value":498},{"type":22,"tag":271,"props":693,"children":694},{"type":273},[],{"type":27,"value":696}," be externally synchronized",{"type":22,"tag":230,"props":698,"children":699},{},[700,702,707,708,713,714,717],{"type":27,"value":701},"Host access to the ",{"type":22,"tag":43,"props":703,"children":705},{"className":704},[],[706],{"type":27,"value":608},{"type":27,"value":610},{"type":22,"tag":43,"props":709,"children":711},{"className":710},[],[712],{"type":27,"value":84},{"type":27,"value":617},{"type":22,"tag":271,"props":715,"children":716},{"type":273},[],{"type":27,"value":718}," be externally synchronized\n::",{"type":22,"tag":720,"props":721,"children":722},"style",{},[723],{"type":27,"value":724},"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":40,"searchDepth":72,"depth":72,"links":726},[],"markdown",1725732598564]