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