[{"data":1,"prerenderedAt":1192},["ShallowReactive",2],{"azloB3TxF4":3},{"title":4,"description":5,"parent":6,"cmd_buf_level":7,"render_pass_scope":10,"supported_queue_types":11,"tasks":14,"type":16,"xrefs":17,"body":18,"_type":1191,"_id":4},"vkCmdPushDescriptorSetKHR","Pushes descriptor updates into a command buffer","VK_KHR_push_descriptor",[8,9],"primary","secondary","both",[12,13],"graphics","compute",[15],"state","protos",[],{"type":19,"children":20,"toc":1189},"root",[21,36,41,407,506,517,550,586,617,643,709,909,1137,1183],{"type":22,"tag":23,"props":24,"children":25},"element","p",{},[26,29,34],{"type":27,"value":28},"text","In addition to allocating descriptor sets and binding them to a command\nbuffer, an application ",{"type":22,"tag":30,"props":31,"children":33},"normative",{"type":32},"can",[],{"type":27,"value":35}," record descriptor updates into the command\nbuffer.",{"type":22,"tag":23,"props":37,"children":38},{},[39],{"type":27,"value":40},"To push descriptor updates into a command buffer, call:",{"type":22,"tag":42,"props":43,"children":44},"code-group",{},[45,202],{"type":22,"tag":46,"props":47,"children":53},"pre",{"className":48,"code":49,"filename":50,"language":51,"meta":52,"style":52},"language-c shiki shiki-themes github-light-default github-dark-default","void vkCmdPushDescriptorSetKHR(\n VkCommandBuffer commandBuffer,\n VkPipelineBindPoint pipelineBindPoint,\n VkPipelineLayout layout,\n uint32_t set,\n uint32_t descriptorWriteCount,\n const VkWriteDescriptorSet* pDescriptorWrites);\n","C","c","",[54],{"type":22,"tag":55,"props":56,"children":57},"code",{"__ignoreMap":52},[58,82,102,120,138,156,173],{"type":22,"tag":59,"props":60,"children":63},"span",{"class":61,"line":62},"line",1,[64,70,76],{"type":22,"tag":59,"props":65,"children":67},{"style":66},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[68],{"type":27,"value":69},"void",{"type":22,"tag":59,"props":71,"children":73},{"style":72},"--shiki-default:#8250DF;--shiki-dark:#D2A8FF",[74],{"type":27,"value":75}," vkCmdPushDescriptorSetKHR",{"type":22,"tag":59,"props":77,"children":79},{"style":78},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[80],{"type":27,"value":81},"(\n",{"type":22,"tag":59,"props":83,"children":85},{"class":61,"line":84},2,[86,91,97],{"type":22,"tag":59,"props":87,"children":88},{"style":78},[89],{"type":27,"value":90}," VkCommandBuffer ",{"type":22,"tag":59,"props":92,"children":94},{"style":93},"--shiki-default:#953800;--shiki-dark:#FFA657",[95],{"type":27,"value":96},"commandBuffer",{"type":22,"tag":59,"props":98,"children":99},{"style":78},[100],{"type":27,"value":101},",\n",{"type":22,"tag":59,"props":103,"children":105},{"class":61,"line":104},3,[106,111,116],{"type":22,"tag":59,"props":107,"children":108},{"style":78},[109],{"type":27,"value":110}," VkPipelineBindPoint ",{"type":22,"tag":59,"props":112,"children":113},{"style":93},[114],{"type":27,"value":115},"pipelineBindPoint",{"type":22,"tag":59,"props":117,"children":118},{"style":78},[119],{"type":27,"value":101},{"type":22,"tag":59,"props":121,"children":123},{"class":61,"line":122},4,[124,129,134],{"type":22,"tag":59,"props":125,"children":126},{"style":78},[127],{"type":27,"value":128}," VkPipelineLayout ",{"type":22,"tag":59,"props":130,"children":131},{"style":93},[132],{"type":27,"value":133},"layout",{"type":22,"tag":59,"props":135,"children":136},{"style":78},[137],{"type":27,"value":101},{"type":22,"tag":59,"props":139,"children":141},{"class":61,"line":140},5,[142,147,152],{"type":22,"tag":59,"props":143,"children":144},{"style":66},[145],{"type":27,"value":146}," uint32_t",{"type":22,"tag":59,"props":148,"children":149},{"style":93},[150],{"type":27,"value":151}," set",{"type":22,"tag":59,"props":153,"children":154},{"style":78},[155],{"type":27,"value":101},{"type":22,"tag":59,"props":157,"children":159},{"class":61,"line":158},6,[160,164,169],{"type":22,"tag":59,"props":161,"children":162},{"style":66},[163],{"type":27,"value":146},{"type":22,"tag":59,"props":165,"children":166},{"style":93},[167],{"type":27,"value":168}," descriptorWriteCount",{"type":22,"tag":59,"props":170,"children":171},{"style":78},[172],{"type":27,"value":101},{"type":22,"tag":59,"props":174,"children":176},{"class":61,"line":175},7,[177,182,187,192,197],{"type":22,"tag":59,"props":178,"children":179},{"style":66},[180],{"type":27,"value":181}," const",{"type":22,"tag":59,"props":183,"children":184},{"style":78},[185],{"type":27,"value":186}," VkWriteDescriptorSet",{"type":22,"tag":59,"props":188,"children":189},{"style":66},[190],{"type":27,"value":191},"*",{"type":22,"tag":59,"props":193,"children":194},{"style":93},[195],{"type":27,"value":196}," pDescriptorWrites",{"type":22,"tag":59,"props":198,"children":199},{"style":78},[200],{"type":27,"value":201},");\n",{"type":22,"tag":46,"props":203,"children":208},{"className":204,"code":205,"filename":206,"language":207,"meta":52,"style":52},"language-rs shiki shiki-themes github-light-default github-dark-default","pub fn cmd_push_descriptor_set_khr(\n command_buffer: vk::CommandBuffer,\n pipeline_bind_point: vk::PipelineBindPoint,\n layout: vk::PipelineLayout,\n set: u32,\n descriptor_write_count: u32,\n p_descriptor_writes: *const vk::WriteDescriptorSet,\n);\n","Rust","rs",[209],{"type":22,"tag":55,"props":210,"children":211},{"__ignoreMap":52},[212,234,266,295,324,345,365,399],{"type":22,"tag":59,"props":213,"children":214},{"class":61,"line":62},[215,220,225,230],{"type":22,"tag":59,"props":216,"children":217},{"style":66},[218],{"type":27,"value":219},"pub",{"type":22,"tag":59,"props":221,"children":222},{"style":66},[223],{"type":27,"value":224}," fn",{"type":22,"tag":59,"props":226,"children":227},{"style":72},[228],{"type":27,"value":229}," cmd_push_descriptor_set_khr",{"type":22,"tag":59,"props":231,"children":232},{"style":78},[233],{"type":27,"value":81},{"type":22,"tag":59,"props":235,"children":236},{"class":61,"line":84},[237,242,247,252,257,262],{"type":22,"tag":59,"props":238,"children":239},{"style":78},[240],{"type":27,"value":241}," command_buffer",{"type":22,"tag":59,"props":243,"children":244},{"style":66},[245],{"type":27,"value":246},":",{"type":22,"tag":59,"props":248,"children":249},{"style":93},[250],{"type":27,"value":251}," vk",{"type":22,"tag":59,"props":253,"children":254},{"style":66},[255],{"type":27,"value":256},"::",{"type":22,"tag":59,"props":258,"children":259},{"style":93},[260],{"type":27,"value":261},"CommandBuffer",{"type":22,"tag":59,"props":263,"children":264},{"style":78},[265],{"type":27,"value":101},{"type":22,"tag":59,"props":267,"children":268},{"class":61,"line":104},[269,274,278,282,286,291],{"type":22,"tag":59,"props":270,"children":271},{"style":78},[272],{"type":27,"value":273}," pipeline_bind_point",{"type":22,"tag":59,"props":275,"children":276},{"style":66},[277],{"type":27,"value":246},{"type":22,"tag":59,"props":279,"children":280},{"style":93},[281],{"type":27,"value":251},{"type":22,"tag":59,"props":283,"children":284},{"style":66},[285],{"type":27,"value":256},{"type":22,"tag":59,"props":287,"children":288},{"style":93},[289],{"type":27,"value":290},"PipelineBindPoint",{"type":22,"tag":59,"props":292,"children":293},{"style":78},[294],{"type":27,"value":101},{"type":22,"tag":59,"props":296,"children":297},{"class":61,"line":122},[298,303,307,311,315,320],{"type":22,"tag":59,"props":299,"children":300},{"style":78},[301],{"type":27,"value":302}," layout",{"type":22,"tag":59,"props":304,"children":305},{"style":66},[306],{"type":27,"value":246},{"type":22,"tag":59,"props":308,"children":309},{"style":93},[310],{"type":27,"value":251},{"type":22,"tag":59,"props":312,"children":313},{"style":66},[314],{"type":27,"value":256},{"type":22,"tag":59,"props":316,"children":317},{"style":93},[318],{"type":27,"value":319},"PipelineLayout",{"type":22,"tag":59,"props":321,"children":322},{"style":78},[323],{"type":27,"value":101},{"type":22,"tag":59,"props":325,"children":326},{"class":61,"line":140},[327,332,336,341],{"type":22,"tag":59,"props":328,"children":329},{"style":78},[330],{"type":27,"value":331}," set",{"type":22,"tag":59,"props":333,"children":334},{"style":66},[335],{"type":27,"value":246},{"type":22,"tag":59,"props":337,"children":338},{"style":93},[339],{"type":27,"value":340}," u32",{"type":22,"tag":59,"props":342,"children":343},{"style":78},[344],{"type":27,"value":101},{"type":22,"tag":59,"props":346,"children":347},{"class":61,"line":158},[348,353,357,361],{"type":22,"tag":59,"props":349,"children":350},{"style":78},[351],{"type":27,"value":352}," descriptor_write_count",{"type":22,"tag":59,"props":354,"children":355},{"style":66},[356],{"type":27,"value":246},{"type":22,"tag":59,"props":358,"children":359},{"style":93},[360],{"type":27,"value":340},{"type":22,"tag":59,"props":362,"children":363},{"style":78},[364],{"type":27,"value":101},{"type":22,"tag":59,"props":366,"children":367},{"class":61,"line":175},[368,373,377,382,386,390,395],{"type":22,"tag":59,"props":369,"children":370},{"style":78},[371],{"type":27,"value":372}," p_descriptor_writes",{"type":22,"tag":59,"props":374,"children":375},{"style":66},[376],{"type":27,"value":246},{"type":22,"tag":59,"props":378,"children":379},{"style":66},[380],{"type":27,"value":381}," *const",{"type":22,"tag":59,"props":383,"children":384},{"style":93},[385],{"type":27,"value":251},{"type":22,"tag":59,"props":387,"children":388},{"style":66},[389],{"type":27,"value":256},{"type":22,"tag":59,"props":391,"children":392},{"style":93},[393],{"type":27,"value":394},"WriteDescriptorSet",{"type":22,"tag":59,"props":396,"children":397},{"style":78},[398],{"type":27,"value":101},{"type":22,"tag":59,"props":400,"children":402},{"class":61,"line":401},8,[403],{"type":22,"tag":59,"props":404,"children":405},{"style":78},[406],{"type":27,"value":201},{"type":22,"tag":408,"props":409,"children":410},"ul",{},[411,422,441,458,469,488],{"type":22,"tag":412,"props":413,"children":414},"li",{},[415,420],{"type":22,"tag":55,"props":416,"children":418},{"className":417},[],[419],{"type":27,"value":96},{"type":27,"value":421}," is the command buffer that the descriptors will be\nrecorded in.",{"type":22,"tag":412,"props":423,"children":424},{},[425,430,432,439],{"type":22,"tag":55,"props":426,"children":428},{"className":427},[],[429],{"type":27,"value":115},{"type":27,"value":431}," is a ",{"type":22,"tag":433,"props":434,"children":436},"a",{"href":435},"/man/VkPipelineBindPoint",[437],{"type":27,"value":438},"VkPipelineBindPoint",{"type":27,"value":440}," indicating the\ntype of the pipeline that will use the descriptors.\nThere is a separate set of push descriptor bindings for each pipeline\ntype, so binding one does not disturb the others.",{"type":22,"tag":412,"props":442,"children":443},{},[444,449,450,456],{"type":22,"tag":55,"props":445,"children":447},{"className":446},[],[448],{"type":27,"value":133},{"type":27,"value":431},{"type":22,"tag":433,"props":451,"children":453},{"href":452},"/man/VkPipelineLayout",[454],{"type":27,"value":455},"VkPipelineLayout",{"type":27,"value":457}," object used to program the\nbindings.",{"type":22,"tag":412,"props":459,"children":460},{},[461,467],{"type":22,"tag":55,"props":462,"children":464},{"className":463},[],[465],{"type":27,"value":466},"set",{"type":27,"value":468}," is the set number of the descriptor set in the pipeline layout\nthat will be updated.",{"type":22,"tag":412,"props":470,"children":471},{},[472,478,480,486],{"type":22,"tag":55,"props":473,"children":475},{"className":474},[],[476],{"type":27,"value":477},"descriptorWriteCount",{"type":27,"value":479}," is the number of elements in the\n",{"type":22,"tag":55,"props":481,"children":483},{"className":482},[],[484],{"type":27,"value":485},"pDescriptorWrites",{"type":27,"value":487}," array.",{"type":22,"tag":412,"props":489,"children":490},{},[491,496,498,504],{"type":22,"tag":55,"props":492,"children":494},{"className":493},[],[495],{"type":27,"value":485},{"type":27,"value":497}," is a pointer to an array of\n",{"type":22,"tag":433,"props":499,"children":501},{"href":500},"/man/VkWriteDescriptorSet",[502],{"type":27,"value":503},"VkWriteDescriptorSet",{"type":27,"value":505}," structures describing the descriptors to be\nupdated.",{"type":22,"tag":23,"props":507,"children":508},{},[509,515],{"type":22,"tag":510,"props":511,"children":512},"em",{},[513],{"type":27,"value":514},"Push descriptors",{"type":27,"value":516}," are a small bank of descriptors whose storage is\ninternally managed by the command buffer rather than being written into a\ndescriptor set and later bound to a command buffer.\nPush descriptors allow for incremental updates of descriptors without\nmanaging the lifetime of descriptor sets.",{"type":22,"tag":23,"props":518,"children":519},{},[520,522,525,527,533,535,540,542,548],{"type":27,"value":521},"When a command buffer begins recording, all push descriptors are undefined:.\nPush descriptors ",{"type":22,"tag":30,"props":523,"children":524},{"type":32},[],{"type":27,"value":526}," be updated incrementally and cause shaders to use the\nupdated descriptors for subsequent ",{"type":22,"tag":433,"props":528,"children":530},{"href":529},"/man/vkCmdBindPipeline#pipelines-bindpoint-commands",[531],{"type":27,"value":532},"bound\npipeline commands",{"type":27,"value":534}," with the pipeline type set by ",{"type":22,"tag":55,"props":536,"children":538},{"className":537},[],[539],{"type":27,"value":115},{"type":27,"value":541},"\nuntil the descriptor is overwritten, or else until the set is disturbed as\ndescribed in ",{"type":22,"tag":433,"props":543,"children":545},{"href":544},"/chapters/descriptorsets#descriptorsets-compatibility",[546],{"type":27,"value":547},"Pipeline Layout\nCompatibility",{"type":27,"value":549},".\nWhen the set is disturbed or push descriptors with a different descriptor\nset layout are set, all push descriptors are undefined:.",{"type":22,"tag":23,"props":551,"children":552},{},[553,555,561,563,567,569,572,574,579,581,584],{"type":27,"value":554},"Push descriptors that are ",{"type":22,"tag":433,"props":556,"children":558},{"href":557},"/chapters/shaders#shaders-staticuse",[559],{"type":27,"value":560},"statically used",{"type":27,"value":562}," by a\npipeline ",{"type":22,"tag":30,"props":564,"children":566},{"type":565},"must",[],{"type":27,"value":568}," not be undefined: at the time that a drawing or dispatching\ncommand is recorded to execute using that pipeline.\nThis includes immutable sampler descriptors, which ",{"type":22,"tag":30,"props":570,"children":571},{"type":565},[],{"type":27,"value":573}," be pushed before\nthey are accessed by a pipeline (the immutable samplers are pushed, rather\nthan the samplers in ",{"type":22,"tag":55,"props":575,"children":577},{"className":576},[],[578],{"type":27,"value":485},{"type":27,"value":580},").\nPush descriptors that are not statically used ",{"type":22,"tag":30,"props":582,"children":583},{"type":32},[],{"type":27,"value":585}," remain undefined:.",{"type":22,"tag":23,"props":587,"children":588},{},[589,591,594,596,602,604,610,612,615],{"type":27,"value":590},"Push descriptors do not use dynamic offsets.\nInstead, the corresponding non-dynamic descriptor types ",{"type":22,"tag":30,"props":592,"children":593},{"type":32},[],{"type":27,"value":595}," be used and the\n",{"type":22,"tag":55,"props":597,"children":599},{"className":598},[],[600],{"type":27,"value":601},"offset",{"type":27,"value":603}," member of ",{"type":22,"tag":433,"props":605,"children":607},{"href":606},"/man/VkDescriptorBufferInfo",[608],{"type":27,"value":609},"VkDescriptorBufferInfo",{"type":27,"value":611}," ",{"type":22,"tag":30,"props":613,"children":614},{"type":32},[],{"type":27,"value":616}," be changed each\ntime the descriptor is written.",{"type":22,"tag":23,"props":618,"children":619},{},[620,622,627,629,633,635,641],{"type":27,"value":621},"Each element of ",{"type":22,"tag":55,"props":623,"children":625},{"className":624},[],[626],{"type":27,"value":485},{"type":27,"value":628}," is interpreted as in\n",{"type":22,"tag":433,"props":630,"children":631},{"href":500},[632],{"type":27,"value":503},{"type":27,"value":634},", except the ",{"type":22,"tag":55,"props":636,"children":638},{"className":637},[],[639],{"type":27,"value":640},"dstSet",{"type":27,"value":642}," member is ignored.",{"type":22,"tag":23,"props":644,"children":645},{},[646,648,652,654,660,662,668,670,676,678,684,686,692,694,700,702,707],{"type":27,"value":647},"To push an immutable sampler, use a ",{"type":22,"tag":433,"props":649,"children":650},{"href":500},[651],{"type":27,"value":503},{"type":27,"value":653}," with\n",{"type":22,"tag":55,"props":655,"children":657},{"className":656},[],[658],{"type":27,"value":659},"dstBinding",{"type":27,"value":661}," and ",{"type":22,"tag":55,"props":663,"children":665},{"className":664},[],[666],{"type":27,"value":667},"dstArrayElement",{"type":27,"value":669}," selecting the immutable sampler’s\nbinding.\nIf the descriptor type is ",{"type":22,"tag":55,"props":671,"children":673},{"className":672},[],[674],{"type":27,"value":675},"VK_DESCRIPTOR_TYPE_SAMPLER",{"type":27,"value":677},", the\n",{"type":22,"tag":55,"props":679,"children":681},{"className":680},[],[682],{"type":27,"value":683},"pImageInfo",{"type":27,"value":685}," parameter is ignored and the immutable sampler is taken\nfrom the push descriptor set layout in the pipeline layout.\nIf the descriptor type is ",{"type":22,"tag":55,"props":687,"children":689},{"className":688},[],[690],{"type":27,"value":691},"VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER",{"type":27,"value":693},",\nthe ",{"type":22,"tag":55,"props":695,"children":697},{"className":696},[],[698],{"type":27,"value":699},"sampler",{"type":27,"value":701}," member of the ",{"type":22,"tag":55,"props":703,"children":705},{"className":704},[],[706],{"type":27,"value":683},{"type":27,"value":708}," parameter is ignored and\nthe immutable sampler is taken from the push descriptor set layout in the\npipeline layout.",{"type":22,"tag":710,"props":711,"children":713},"validity-group",{"name":712},"Valid Usage",[714,755,779,876],{"type":22,"tag":715,"props":716,"children":718},"validity-field",{"name":717},"VUID-vkCmdPushDescriptorSetKHR-set-00364",[719],{"type":22,"tag":23,"props":720,"children":721},{},[722,727,728,731,733,739,740,746,748,753],{"type":22,"tag":55,"props":723,"children":725},{"className":724},[],[726],{"type":27,"value":466},{"type":27,"value":611},{"type":22,"tag":30,"props":729,"children":730},{"type":565},[],{"type":27,"value":732}," be less than\n",{"type":22,"tag":433,"props":734,"children":736},{"href":735},"/man/VkPipelineLayoutCreateInfo",[737],{"type":27,"value":738},"VkPipelineLayoutCreateInfo",{"type":27,"value":256},{"type":22,"tag":55,"props":741,"children":743},{"className":742},[],[744],{"type":27,"value":745},"setLayoutCount",{"type":27,"value":747}," provided when\n",{"type":22,"tag":55,"props":749,"children":751},{"className":750},[],[752],{"type":27,"value":133},{"type":27,"value":754}," was created",{"type":22,"tag":715,"props":756,"children":758},{"name":757},"VUID-vkCmdPushDescriptorSetKHR-set-00365",[759],{"type":22,"tag":23,"props":760,"children":761},{},[762,767,768,771,773],{"type":22,"tag":55,"props":763,"children":765},{"className":764},[],[766],{"type":27,"value":466},{"type":27,"value":611},{"type":22,"tag":30,"props":769,"children":770},{"type":565},[],{"type":27,"value":772}," be the unique set number in the pipeline layout that\nuses a descriptor set layout that was created with\n",{"type":22,"tag":55,"props":774,"children":776},{"className":775},[],[777],{"type":27,"value":778},"VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR",{"type":22,"tag":715,"props":780,"children":782},{"name":781},"VUID-vkCmdPushDescriptorSetKHR-pDescriptorWrites-06494",[783],{"type":22,"tag":23,"props":784,"children":785},{},[786,788,793,795,801,803,808,809,814,815,821,822,828,830,836,837,842,843,848,849,852,854,859,860,866,868,874],{"type":27,"value":787},"For each element i where\n",{"type":22,"tag":55,"props":789,"children":791},{"className":790},[],[792],{"type":27,"value":485},{"type":27,"value":794},"[i].",{"type":22,"tag":55,"props":796,"children":798},{"className":797},[],[799],{"type":27,"value":800},"descriptorType",{"type":27,"value":802}," is\n",{"type":22,"tag":55,"props":804,"children":806},{"className":805},[],[807],{"type":27,"value":675},{"type":27,"value":101},{"type":22,"tag":55,"props":810,"children":812},{"className":811},[],[813],{"type":27,"value":691},{"type":27,"value":101},{"type":22,"tag":55,"props":816,"children":818},{"className":817},[],[819],{"type":27,"value":820},"VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE",{"type":27,"value":101},{"type":22,"tag":55,"props":823,"children":825},{"className":824},[],[826],{"type":27,"value":827},"VK_DESCRIPTOR_TYPE_STORAGE_IMAGE",{"type":27,"value":829},", or\n",{"type":22,"tag":55,"props":831,"children":833},{"className":832},[],[834],{"type":27,"value":835},"VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT",{"type":27,"value":101},{"type":22,"tag":55,"props":838,"children":840},{"className":839},[],[841],{"type":27,"value":485},{"type":27,"value":794},{"type":22,"tag":55,"props":844,"children":846},{"className":845},[],[847],{"type":27,"value":683},{"type":27,"value":611},{"type":22,"tag":30,"props":850,"children":851},{"type":565},[],{"type":27,"value":853}," be a valid pointer to\nan array of ",{"type":22,"tag":55,"props":855,"children":857},{"className":856},[],[858],{"type":27,"value":485},{"type":27,"value":794},{"type":22,"tag":55,"props":861,"children":863},{"className":862},[],[864],{"type":27,"value":865},"descriptorCount",{"type":27,"value":867}," valid\n",{"type":22,"tag":55,"props":869,"children":871},{"className":870},[],[872],{"type":27,"value":873},"VkDescriptorImageInfo",{"type":27,"value":875}," structures",{"type":22,"tag":715,"props":877,"children":879},{"name":878},"VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-00363",[880],{"type":22,"tag":23,"props":881,"children":882},{},[883,888,889,892,894,899,901,907],{"type":22,"tag":55,"props":884,"children":886},{"className":885},[],[887],{"type":27,"value":115},{"type":27,"value":611},{"type":22,"tag":30,"props":890,"children":891},{"type":565},[],{"type":27,"value":893}," be supported by the ",{"type":22,"tag":55,"props":895,"children":897},{"className":896},[],[898],{"type":27,"value":96},{"type":27,"value":900},"’s\nparent ",{"type":22,"tag":55,"props":902,"children":904},{"className":903},[],[905],{"type":27,"value":906},"VkCommandPool",{"type":27,"value":908},"’s queue family",{"type":22,"tag":710,"props":910,"children":912},{"name":911},"Valid Usage (Implicit)",[913,939,962,984,1014,1038,1066,1080,1104],{"type":22,"tag":715,"props":914,"children":916},{"name":915},"VUID-vkCmdPushDescriptorSetKHR-commandBuffer-parameter",[917],{"type":22,"tag":23,"props":918,"children":919},{},[920,925,926,929,931,937],{"type":22,"tag":55,"props":921,"children":923},{"className":922},[],[924],{"type":27,"value":96},{"type":27,"value":611},{"type":22,"tag":30,"props":927,"children":928},{"type":565},[],{"type":27,"value":930}," be a valid ",{"type":22,"tag":433,"props":932,"children":934},{"href":933},"/man/VkCommandBuffer",[935],{"type":27,"value":936},"VkCommandBuffer",{"type":27,"value":938}," handle",{"type":22,"tag":715,"props":940,"children":942},{"name":941},"VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-parameter",[943],{"type":22,"tag":23,"props":944,"children":945},{},[946,951,952,955,956,960],{"type":22,"tag":55,"props":947,"children":949},{"className":948},[],[950],{"type":27,"value":115},{"type":27,"value":611},{"type":22,"tag":30,"props":953,"children":954},{"type":565},[],{"type":27,"value":930},{"type":22,"tag":433,"props":957,"children":958},{"href":435},[959],{"type":27,"value":438},{"type":27,"value":961}," value",{"type":22,"tag":715,"props":963,"children":965},{"name":964},"VUID-vkCmdPushDescriptorSetKHR-layout-parameter",[966],{"type":22,"tag":23,"props":967,"children":968},{},[969,974,975,978,979,983],{"type":22,"tag":55,"props":970,"children":972},{"className":971},[],[973],{"type":27,"value":133},{"type":27,"value":611},{"type":22,"tag":30,"props":976,"children":977},{"type":565},[],{"type":27,"value":930},{"type":22,"tag":433,"props":980,"children":981},{"href":452},[982],{"type":27,"value":455},{"type":27,"value":938},{"type":22,"tag":715,"props":985,"children":987},{"name":986},"VUID-vkCmdPushDescriptorSetKHR-pDescriptorWrites-parameter",[988],{"type":22,"tag":23,"props":989,"children":990},{},[991,996,997,1000,1002,1007,1009,1013],{"type":22,"tag":55,"props":992,"children":994},{"className":993},[],[995],{"type":27,"value":485},{"type":27,"value":611},{"type":22,"tag":30,"props":998,"children":999},{"type":565},[],{"type":27,"value":1001}," be a valid pointer to an array of ",{"type":22,"tag":55,"props":1003,"children":1005},{"className":1004},[],[1006],{"type":27,"value":477},{"type":27,"value":1008}," valid ",{"type":22,"tag":433,"props":1010,"children":1011},{"href":500},[1012],{"type":27,"value":503},{"type":27,"value":875},{"type":22,"tag":715,"props":1015,"children":1017},{"name":1016},"VUID-vkCmdPushDescriptorSetKHR-commandBuffer-recording",[1018],{"type":22,"tag":23,"props":1019,"children":1020},{},[1021,1026,1027,1030,1032],{"type":22,"tag":55,"props":1022,"children":1024},{"className":1023},[],[1025],{"type":27,"value":96},{"type":27,"value":611},{"type":22,"tag":30,"props":1028,"children":1029},{"type":565},[],{"type":27,"value":1031}," be in the ",{"type":22,"tag":433,"props":1033,"children":1035},{"href":1034},"/chapters/commandbuffers#commandbuffers-lifecycle",[1036],{"type":27,"value":1037},"recording state",{"type":22,"tag":715,"props":1039,"children":1041},{"name":1040},"VUID-vkCmdPushDescriptorSetKHR-commandBuffer-cmdpool",[1042],{"type":22,"tag":23,"props":1043,"children":1044},{},[1045,1047,1052,1054,1059,1061,1064],{"type":27,"value":1046},"The ",{"type":22,"tag":55,"props":1048,"children":1050},{"className":1049},[],[1051],{"type":27,"value":906},{"type":27,"value":1053}," that ",{"type":22,"tag":55,"props":1055,"children":1057},{"className":1056},[],[1058],{"type":27,"value":96},{"type":27,"value":1060}," was allocated from ",{"type":22,"tag":30,"props":1062,"children":1063},{"type":565},[],{"type":27,"value":1065}," support graphics, or compute operations",{"type":22,"tag":715,"props":1067,"children":1069},{"name":1068},"VUID-vkCmdPushDescriptorSetKHR-videocoding",[1070],{"type":22,"tag":23,"props":1071,"children":1072},{},[1073,1075,1078],{"type":27,"value":1074},"This command ",{"type":22,"tag":30,"props":1076,"children":1077},{"type":565},[],{"type":27,"value":1079}," only be called outside of a video coding scope",{"type":22,"tag":715,"props":1081,"children":1083},{"name":1082},"VUID-vkCmdPushDescriptorSetKHR-descriptorWriteCount-arraylength",[1084],{"type":22,"tag":23,"props":1085,"children":1086},{},[1087,1092,1093,1096,1098],{"type":22,"tag":55,"props":1088,"children":1090},{"className":1089},[],[1091],{"type":27,"value":477},{"type":27,"value":611},{"type":22,"tag":30,"props":1094,"children":1095},{"type":565},[],{"type":27,"value":1097}," be greater than ",{"type":22,"tag":55,"props":1099,"children":1101},{"className":1100},[],[1102],{"type":27,"value":1103},"0",{"type":22,"tag":715,"props":1105,"children":1107},{"name":1106},"VUID-vkCmdPushDescriptorSetKHR-commonparent",[1108],{"type":22,"tag":23,"props":1109,"children":1110},{},[1111,1113,1118,1120,1125,1126,1129,1131],{"type":27,"value":1112},"Both of ",{"type":22,"tag":55,"props":1114,"children":1116},{"className":1115},[],[1117],{"type":27,"value":96},{"type":27,"value":1119},", and ",{"type":22,"tag":55,"props":1121,"children":1123},{"className":1122},[],[1124],{"type":27,"value":133},{"type":27,"value":611},{"type":22,"tag":30,"props":1127,"children":1128},{"type":565},[],{"type":27,"value":1130}," have been created, allocated, or retrieved from the same ",{"type":22,"tag":433,"props":1132,"children":1134},{"href":1133},"/man/VkDevice",[1135],{"type":27,"value":1136},"VkDevice",{"type":22,"tag":1138,"props":1139,"children":1141},"validity-box",{"name":1140},"Host Synchronization",[1142],{"type":22,"tag":408,"props":1143,"children":1144},{},[1145,1161],{"type":22,"tag":412,"props":1146,"children":1147},{},[1148,1150,1155,1156,1159],{"type":27,"value":1149},"Host access to ",{"type":22,"tag":55,"props":1151,"children":1153},{"className":1152},[],[1154],{"type":27,"value":96},{"type":27,"value":611},{"type":22,"tag":30,"props":1157,"children":1158},{"type":565},[],{"type":27,"value":1160}," be externally synchronized",{"type":22,"tag":412,"props":1162,"children":1163},{},[1164,1166,1171,1172,1177,1178,1181],{"type":27,"value":1165},"Host access to the ",{"type":22,"tag":55,"props":1167,"children":1169},{"className":1168},[],[1170],{"type":27,"value":906},{"type":27,"value":1053},{"type":22,"tag":55,"props":1173,"children":1175},{"className":1174},[],[1176],{"type":27,"value":96},{"type":27,"value":1060},{"type":22,"tag":30,"props":1179,"children":1180},{"type":565},[],{"type":27,"value":1182}," be externally synchronized\n::",{"type":22,"tag":1184,"props":1185,"children":1186},"style",{},[1187],{"type":27,"value":1188},"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":52,"searchDepth":84,"depth":84,"links":1190},[],"markdown",1725732607381]