[{"data":1,"prerenderedAt":492},["ShallowReactive",2],{"GKgF2XfpMS":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":491,"_id":4},"vkCmdSetPatchControlPointsEXT","Specify the number of control points per patch dynamically for a command buffer","VK_EXT_extended_dynamic_state2, VK_EXT_shader_object",[8,9],"primary","secondary","both",[12],"graphics",[14],"state","protos",[],{"type":18,"children":19,"toc":489},"root",[20,37,210,236,286,340,437,483],{"type":21,"tag":22,"props":23,"children":24},"element","p",{},[25,28,35],{"type":26,"value":27},"text","To ",{"type":21,"tag":29,"props":30,"children":32},"a",{"href":31},"/chapters/pipelines#pipelines-dynamic-state",[33],{"type":26,"value":34},"dynamically set",{"type":26,"value":36}," the number of control points\nper patch, call:",{"type":21,"tag":38,"props":39,"children":40},"code-group",{},[41,117],{"type":21,"tag":42,"props":43,"children":49},"pre",{"className":44,"code":45,"filename":46,"language":47,"meta":48,"style":48},"language-c shiki shiki-themes github-light-default github-dark-default","void vkCmdSetPatchControlPointsEXT(\n VkCommandBuffer commandBuffer,\n uint32_t patchControlPoints);\n","C","c","",[50],{"type":21,"tag":51,"props":52,"children":53},"code",{"__ignoreMap":48},[54,78,98],{"type":21,"tag":55,"props":56,"children":59},"span",{"class":57,"line":58},"line",1,[60,66,72],{"type":21,"tag":55,"props":61,"children":63},{"style":62},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[64],{"type":26,"value":65},"void",{"type":21,"tag":55,"props":67,"children":69},{"style":68},"--shiki-default:#8250DF;--shiki-dark:#D2A8FF",[70],{"type":26,"value":71}," vkCmdSetPatchControlPointsEXT",{"type":21,"tag":55,"props":73,"children":75},{"style":74},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[76],{"type":26,"value":77},"(\n",{"type":21,"tag":55,"props":79,"children":81},{"class":57,"line":80},2,[82,87,93],{"type":21,"tag":55,"props":83,"children":84},{"style":74},[85],{"type":26,"value":86}," VkCommandBuffer ",{"type":21,"tag":55,"props":88,"children":90},{"style":89},"--shiki-default:#953800;--shiki-dark:#FFA657",[91],{"type":26,"value":92},"commandBuffer",{"type":21,"tag":55,"props":94,"children":95},{"style":74},[96],{"type":26,"value":97},",\n",{"type":21,"tag":55,"props":99,"children":101},{"class":57,"line":100},3,[102,107,112],{"type":21,"tag":55,"props":103,"children":104},{"style":62},[105],{"type":26,"value":106}," uint32_t",{"type":21,"tag":55,"props":108,"children":109},{"style":89},[110],{"type":26,"value":111}," patchControlPoints",{"type":21,"tag":55,"props":113,"children":114},{"style":74},[115],{"type":26,"value":116},");\n",{"type":21,"tag":42,"props":118,"children":123},{"className":119,"code":120,"filename":121,"language":122,"meta":48,"style":48},"language-rs shiki shiki-themes github-light-default github-dark-default","pub fn cmd_set_patch_control_points_ext(\n command_buffer: vk::CommandBuffer,\n patch_control_points: u32,\n);\n","Rust","rs",[124],{"type":21,"tag":51,"props":125,"children":126},{"__ignoreMap":48},[127,149,181,202],{"type":21,"tag":55,"props":128,"children":129},{"class":57,"line":58},[130,135,140,145],{"type":21,"tag":55,"props":131,"children":132},{"style":62},[133],{"type":26,"value":134},"pub",{"type":21,"tag":55,"props":136,"children":137},{"style":62},[138],{"type":26,"value":139}," fn",{"type":21,"tag":55,"props":141,"children":142},{"style":68},[143],{"type":26,"value":144}," cmd_set_patch_control_points_ext",{"type":21,"tag":55,"props":146,"children":147},{"style":74},[148],{"type":26,"value":77},{"type":21,"tag":55,"props":150,"children":151},{"class":57,"line":80},[152,157,162,167,172,177],{"type":21,"tag":55,"props":153,"children":154},{"style":74},[155],{"type":26,"value":156}," command_buffer",{"type":21,"tag":55,"props":158,"children":159},{"style":62},[160],{"type":26,"value":161},":",{"type":21,"tag":55,"props":163,"children":164},{"style":89},[165],{"type":26,"value":166}," vk",{"type":21,"tag":55,"props":168,"children":169},{"style":62},[170],{"type":26,"value":171},"::",{"type":21,"tag":55,"props":173,"children":174},{"style":89},[175],{"type":26,"value":176},"CommandBuffer",{"type":21,"tag":55,"props":178,"children":179},{"style":74},[180],{"type":26,"value":97},{"type":21,"tag":55,"props":182,"children":183},{"class":57,"line":100},[184,189,193,198],{"type":21,"tag":55,"props":185,"children":186},{"style":74},[187],{"type":26,"value":188}," patch_control_points",{"type":21,"tag":55,"props":190,"children":191},{"style":62},[192],{"type":26,"value":161},{"type":21,"tag":55,"props":194,"children":195},{"style":89},[196],{"type":26,"value":197}," u32",{"type":21,"tag":55,"props":199,"children":200},{"style":74},[201],{"type":26,"value":97},{"type":21,"tag":55,"props":203,"children":205},{"class":57,"line":204},4,[206],{"type":21,"tag":55,"props":207,"children":208},{"style":74},[209],{"type":26,"value":116},{"type":21,"tag":211,"props":212,"children":213},"ul",{},[214,225],{"type":21,"tag":215,"props":216,"children":217},"li",{},[218,223],{"type":21,"tag":51,"props":219,"children":221},{"className":220},[],[222],{"type":26,"value":92},{"type":26,"value":224}," is the command buffer into which the command will be\nrecorded.",{"type":21,"tag":215,"props":226,"children":227},{},[228,234],{"type":21,"tag":51,"props":229,"children":231},{"className":230},[],[232],{"type":26,"value":233},"patchControlPoints",{"type":26,"value":235}," specifies the number of control points per\npatch.",{"type":21,"tag":22,"props":237,"children":238},{},[239,241,247,249,255,257,263,264,270,272,278,279,284],{"type":26,"value":240},"This command sets the number of control points per patch for subsequent\ndrawing commands\nwhen drawing using ",{"type":21,"tag":29,"props":242,"children":244},{"href":243},"/chapters/shaders#shaders-objects",[245],{"type":26,"value":246},"shader objects",{"type":26,"value":248},", or\nwhen the graphics pipeline is created with\n",{"type":21,"tag":51,"props":250,"children":252},{"className":251},[],[253],{"type":26,"value":254},"VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT",{"type":26,"value":256}," set in\n",{"type":21,"tag":29,"props":258,"children":260},{"href":259},"/man/VkPipelineDynamicStateCreateInfo",[261],{"type":26,"value":262},"VkPipelineDynamicStateCreateInfo",{"type":26,"value":171},{"type":21,"tag":51,"props":265,"children":267},{"className":266},[],[268],{"type":26,"value":269},"pDynamicStates",{"type":26,"value":271},".\nOtherwise, this state is specified by the\n",{"type":21,"tag":29,"props":273,"children":275},{"href":274},"/man/VkPipelineTessellationStateCreateInfo",[276],{"type":26,"value":277},"VkPipelineTessellationStateCreateInfo",{"type":26,"value":171},{"type":21,"tag":51,"props":280,"children":282},{"className":281},[],[283],{"type":26,"value":233},{"type":26,"value":285}," value\nused to create the currently active pipeline.",{"type":21,"tag":287,"props":288,"children":290},"validity-group",{"name":289},"Valid Usage",[291,308],{"type":21,"tag":292,"props":293,"children":295},"validity-field",{"name":294},"VUID-vkCmdSetPatchControlPointsEXT-None-09422",[296],{"type":21,"tag":22,"props":297,"children":298},{},[299,301,306],{"type":26,"value":300},"At least one of the following ",{"type":21,"tag":302,"props":303,"children":305},"normative",{"type":304},"must",[],{"type":26,"value":307}," be true:",{"type":21,"tag":292,"props":309,"children":311},{"name":310},"VUID-vkCmdSetPatchControlPointsEXT-patchControlPoints-04874",[312],{"type":21,"tag":22,"props":313,"children":314},{},[315,320,322,325,327,333,334],{"type":21,"tag":51,"props":316,"children":318},{"className":317},[],[319],{"type":26,"value":233},{"type":26,"value":321}," ",{"type":21,"tag":302,"props":323,"children":324},{"type":304},[],{"type":26,"value":326}," be greater than zero and less than or\nequal to ",{"type":21,"tag":51,"props":328,"children":330},{"className":329},[],[331],{"type":26,"value":332},"VkPhysicalDeviceLimits",{"type":26,"value":171},{"type":21,"tag":51,"props":335,"children":337},{"className":336},[],[338],{"type":26,"value":339},"maxTessellationPatchSize",{"type":21,"tag":287,"props":341,"children":343},{"name":342},"Valid Usage (Implicit)",[344,370,394,423],{"type":21,"tag":292,"props":345,"children":347},{"name":346},"VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-parameter",[348],{"type":21,"tag":22,"props":349,"children":350},{},[351,356,357,360,362,368],{"type":21,"tag":51,"props":352,"children":354},{"className":353},[],[355],{"type":26,"value":92},{"type":26,"value":321},{"type":21,"tag":302,"props":358,"children":359},{"type":304},[],{"type":26,"value":361}," be a valid ",{"type":21,"tag":29,"props":363,"children":365},{"href":364},"/man/VkCommandBuffer",[366],{"type":26,"value":367},"VkCommandBuffer",{"type":26,"value":369}," handle",{"type":21,"tag":292,"props":371,"children":373},{"name":372},"VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-recording",[374],{"type":21,"tag":22,"props":375,"children":376},{},[377,382,383,386,388],{"type":21,"tag":51,"props":378,"children":380},{"className":379},[],[381],{"type":26,"value":92},{"type":26,"value":321},{"type":21,"tag":302,"props":384,"children":385},{"type":304},[],{"type":26,"value":387}," be in the ",{"type":21,"tag":29,"props":389,"children":391},{"href":390},"/chapters/commandbuffers#commandbuffers-lifecycle",[392],{"type":26,"value":393},"recording state",{"type":21,"tag":292,"props":395,"children":397},{"name":396},"VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-cmdpool",[398],{"type":21,"tag":22,"props":399,"children":400},{},[401,403,409,411,416,418,421],{"type":26,"value":402},"The ",{"type":21,"tag":51,"props":404,"children":406},{"className":405},[],[407],{"type":26,"value":408},"VkCommandPool",{"type":26,"value":410}," that ",{"type":21,"tag":51,"props":412,"children":414},{"className":413},[],[415],{"type":26,"value":92},{"type":26,"value":417}," was allocated from ",{"type":21,"tag":302,"props":419,"children":420},{"type":304},[],{"type":26,"value":422}," support graphics operations",{"type":21,"tag":292,"props":424,"children":426},{"name":425},"VUID-vkCmdSetPatchControlPointsEXT-videocoding",[427],{"type":21,"tag":22,"props":428,"children":429},{},[430,432,435],{"type":26,"value":431},"This command ",{"type":21,"tag":302,"props":433,"children":434},{"type":304},[],{"type":26,"value":436}," only be called outside of a video coding scope",{"type":21,"tag":438,"props":439,"children":441},"validity-box",{"name":440},"Host Synchronization",[442],{"type":21,"tag":211,"props":443,"children":444},{},[445,461],{"type":21,"tag":215,"props":446,"children":447},{},[448,450,455,456,459],{"type":26,"value":449},"Host access to ",{"type":21,"tag":51,"props":451,"children":453},{"className":452},[],[454],{"type":26,"value":92},{"type":26,"value":321},{"type":21,"tag":302,"props":457,"children":458},{"type":304},[],{"type":26,"value":460}," be externally synchronized",{"type":21,"tag":215,"props":462,"children":463},{},[464,466,471,472,477,478,481],{"type":26,"value":465},"Host access to the ",{"type":21,"tag":51,"props":467,"children":469},{"className":468},[],[470],{"type":26,"value":408},{"type":26,"value":410},{"type":21,"tag":51,"props":473,"children":475},{"className":474},[],[476],{"type":26,"value":92},{"type":26,"value":417},{"type":21,"tag":302,"props":479,"children":480},{"type":304},[],{"type":26,"value":482}," be externally synchronized\n::",{"type":21,"tag":484,"props":485,"children":486},"style",{},[487],{"type":26,"value":488},"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":48,"searchDepth":80,"depth":80,"links":490},[],"markdown",1725732609437]