[{"data":1,"prerenderedAt":709},["ShallowReactive",2],{"rDMWu55PEU":3},{"title":4,"description":5,"parent":6,"type":7,"xrefs":8,"body":9,"_type":708,"_id":4},"vkCreateDescriptorUpdateTemplate","Create a new descriptor update template","VK_VERSION_1_1","protos",[],{"type":10,"children":11,"toc":706},"root",[12,80,141,146,499,580,700],{"type":13,"tag":14,"props":15,"children":16},"element","p",{},[17,20,27,29,34,36,40,42,49,51,57,59,65,67,70,72,78],{"type":18,"value":19},"text","Updating a large ",{"type":13,"tag":21,"props":22,"children":24},"code",{"className":23},[],[25],{"type":18,"value":26},"VkDescriptorSet",{"type":18,"value":28}," array ",{"type":13,"tag":30,"props":31,"children":33},"normative",{"type":32},"can",[],{"type":18,"value":35}," be an expensive operation\nsince an application ",{"type":13,"tag":30,"props":37,"children":39},{"type":38},"must",[],{"type":18,"value":41}," specify one ",{"type":13,"tag":43,"props":44,"children":46},"a",{"href":45},"/man/VkWriteDescriptorSet",[47],{"type":18,"value":48},"VkWriteDescriptorSet",{"type":18,"value":50}," structure\nfor each descriptor or descriptor array to update, each of which\nre-specifies the same state when updating the same descriptor in multiple\ndescriptor sets.\nFor cases when an application wishes to update the same set of descriptors\nin multiple descriptor sets allocated using the same\n",{"type":13,"tag":21,"props":52,"children":54},{"className":53},[],[55],{"type":18,"value":56},"VkDescriptorSetLayout",{"type":18,"value":58},", ",{"type":13,"tag":43,"props":60,"children":62},{"href":61},"/man/vkUpdateDescriptorSetWithTemplate",[63],{"type":18,"value":64},"vkUpdateDescriptorSetWithTemplate",{"type":18,"value":66}," ",{"type":13,"tag":30,"props":68,"children":69},{"type":32},[],{"type":18,"value":71}," be\nused as a replacement for ",{"type":13,"tag":43,"props":73,"children":75},{"href":74},"/man/vkUpdateDescriptorSets",[76],{"type":18,"value":77},"vkUpdateDescriptorSets",{"type":18,"value":79},".",{"type":13,"tag":14,"props":81,"children":82},{},[83,89,91,95,97,103,105,108,110,114,115,121,123,128,130,134,135,139],{"type":13,"tag":21,"props":84,"children":86},{"className":85},[],[87],{"type":18,"value":88},"VkDescriptorUpdateTemplate",{"type":18,"value":90}," allows implementations to convert a set of\ndescriptor update operations on a single descriptor set to an internal\nformat that, in conjunction with ",{"type":13,"tag":43,"props":92,"children":93},{"href":61},[94],{"type":18,"value":64},{"type":18,"value":96},"\nor ",{"type":13,"tag":43,"props":98,"children":100},{"href":99},"/man/vkCmdPushDescriptorSetWithTemplateKHR",[101],{"type":18,"value":102},"vkCmdPushDescriptorSetWithTemplateKHR",{"type":18,"value":104},"\n, ",{"type":13,"tag":30,"props":106,"children":107},{"type":32},[],{"type":18,"value":109}," be more efficient compared to calling ",{"type":13,"tag":43,"props":111,"children":112},{"href":74},[113],{"type":18,"value":77},{"type":18,"value":96},{"type":13,"tag":43,"props":116,"children":118},{"href":117},"/man/vkCmdPushDescriptorSetKHR",[119],{"type":18,"value":120},"vkCmdPushDescriptorSetKHR",{"type":18,"value":122},"\n.\nThe descriptors themselves are not specified in the\n",{"type":13,"tag":21,"props":124,"children":126},{"className":125},[],[127],{"type":18,"value":88},{"type":18,"value":129},", rather, offsets into an application\nprovided pointer to host memory are specified, which are combined with a\npointer passed to ",{"type":13,"tag":43,"props":131,"children":132},{"href":61},[133],{"type":18,"value":64},{"type":18,"value":96},{"type":13,"tag":43,"props":136,"children":137},{"href":99},[138],{"type":18,"value":102},{"type":18,"value":140},"\n.\nThis allows large batches of updates to be executed without having to\nconvert application data structures into a strictly-defined Vulkan data\nstructure.",{"type":13,"tag":14,"props":142,"children":143},{},[144],{"type":18,"value":145},"To create a descriptor update template, call:",{"type":13,"tag":147,"props":148,"children":149},"code-group",{},[150,283],{"type":13,"tag":151,"props":152,"children":158},"pre",{"className":153,"code":154,"filename":155,"language":156,"meta":157,"style":157},"language-c shiki shiki-themes github-light-default github-dark-default","VkResult vkCreateDescriptorUpdateTemplateKHR(\n VkDevice device,\n const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,\n const VkAllocationCallbacks* pAllocator,\n VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);\n","C","c","",[159],{"type":13,"tag":21,"props":160,"children":161},{"__ignoreMap":157},[162,185,205,234,260],{"type":13,"tag":163,"props":164,"children":167},"span",{"class":165,"line":166},"line",1,[168,174,180],{"type":13,"tag":163,"props":169,"children":171},{"style":170},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[172],{"type":18,"value":173},"VkResult ",{"type":13,"tag":163,"props":175,"children":177},{"style":176},"--shiki-default:#8250DF;--shiki-dark:#D2A8FF",[178],{"type":18,"value":179},"vkCreateDescriptorUpdateTemplateKHR",{"type":13,"tag":163,"props":181,"children":182},{"style":170},[183],{"type":18,"value":184},"(\n",{"type":13,"tag":163,"props":186,"children":188},{"class":165,"line":187},2,[189,194,200],{"type":13,"tag":163,"props":190,"children":191},{"style":170},[192],{"type":18,"value":193}," VkDevice ",{"type":13,"tag":163,"props":195,"children":197},{"style":196},"--shiki-default:#953800;--shiki-dark:#FFA657",[198],{"type":18,"value":199},"device",{"type":13,"tag":163,"props":201,"children":202},{"style":170},[203],{"type":18,"value":204},",\n",{"type":13,"tag":163,"props":206,"children":208},{"class":165,"line":207},3,[209,215,220,225,230],{"type":13,"tag":163,"props":210,"children":212},{"style":211},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[213],{"type":18,"value":214}," const",{"type":13,"tag":163,"props":216,"children":217},{"style":170},[218],{"type":18,"value":219}," VkDescriptorUpdateTemplateCreateInfo",{"type":13,"tag":163,"props":221,"children":222},{"style":211},[223],{"type":18,"value":224},"*",{"type":13,"tag":163,"props":226,"children":227},{"style":196},[228],{"type":18,"value":229}," pCreateInfo",{"type":13,"tag":163,"props":231,"children":232},{"style":170},[233],{"type":18,"value":204},{"type":13,"tag":163,"props":235,"children":237},{"class":165,"line":236},4,[238,242,247,251,256],{"type":13,"tag":163,"props":239,"children":240},{"style":211},[241],{"type":18,"value":214},{"type":13,"tag":163,"props":243,"children":244},{"style":170},[245],{"type":18,"value":246}," VkAllocationCallbacks",{"type":13,"tag":163,"props":248,"children":249},{"style":211},[250],{"type":18,"value":224},{"type":13,"tag":163,"props":252,"children":253},{"style":196},[254],{"type":18,"value":255}," pAllocator",{"type":13,"tag":163,"props":257,"children":258},{"style":170},[259],{"type":18,"value":204},{"type":13,"tag":163,"props":261,"children":263},{"class":165,"line":262},5,[264,269,273,278],{"type":13,"tag":163,"props":265,"children":266},{"style":170},[267],{"type":18,"value":268}," VkDescriptorUpdateTemplate",{"type":13,"tag":163,"props":270,"children":271},{"style":211},[272],{"type":18,"value":224},{"type":13,"tag":163,"props":274,"children":275},{"style":196},[276],{"type":18,"value":277}," pDescriptorUpdateTemplate",{"type":13,"tag":163,"props":279,"children":280},{"style":170},[281],{"type":18,"value":282},");\n",{"type":13,"tag":151,"props":284,"children":289},{"className":285,"code":286,"filename":287,"language":288,"meta":157,"style":157},"language-rs shiki shiki-themes github-light-default github-dark-default","pub fn create_descriptor_update_template_khr(\n device: crate :: vk :: vk::Device,\n p_create_info: *const vk::DescriptorUpdateTemplateCreateInfo,\n p_allocator: *const vk::AllocationCallbacks,\n p_descriptor_update_template: *mut vk::DescriptorUpdateTemplate,\n) -> vk::Result;\n","Rust","rs",[290],{"type":13,"tag":21,"props":291,"children":292},{"__ignoreMap":157},[293,315,366,400,433,467],{"type":13,"tag":163,"props":294,"children":295},{"class":165,"line":166},[296,301,306,311],{"type":13,"tag":163,"props":297,"children":298},{"style":211},[299],{"type":18,"value":300},"pub",{"type":13,"tag":163,"props":302,"children":303},{"style":211},[304],{"type":18,"value":305}," fn",{"type":13,"tag":163,"props":307,"children":308},{"style":176},[309],{"type":18,"value":310}," create_descriptor_update_template_khr",{"type":13,"tag":163,"props":312,"children":313},{"style":170},[314],{"type":18,"value":184},{"type":13,"tag":163,"props":316,"children":317},{"class":165,"line":187},[318,323,328,333,338,343,348,353,357,362],{"type":13,"tag":163,"props":319,"children":320},{"style":170},[321],{"type":18,"value":322}," device",{"type":13,"tag":163,"props":324,"children":325},{"style":211},[326],{"type":18,"value":327},":",{"type":13,"tag":163,"props":329,"children":330},{"style":211},[331],{"type":18,"value":332}," crate",{"type":13,"tag":163,"props":334,"children":335},{"style":211},[336],{"type":18,"value":337}," ::",{"type":13,"tag":163,"props":339,"children":340},{"style":170},[341],{"type":18,"value":342}," vk ",{"type":13,"tag":163,"props":344,"children":345},{"style":211},[346],{"type":18,"value":347},"::",{"type":13,"tag":163,"props":349,"children":350},{"style":196},[351],{"type":18,"value":352}," vk",{"type":13,"tag":163,"props":354,"children":355},{"style":211},[356],{"type":18,"value":347},{"type":13,"tag":163,"props":358,"children":359},{"style":196},[360],{"type":18,"value":361},"Device",{"type":13,"tag":163,"props":363,"children":364},{"style":170},[365],{"type":18,"value":204},{"type":13,"tag":163,"props":367,"children":368},{"class":165,"line":207},[369,374,378,383,387,391,396],{"type":13,"tag":163,"props":370,"children":371},{"style":170},[372],{"type":18,"value":373}," p_create_info",{"type":13,"tag":163,"props":375,"children":376},{"style":211},[377],{"type":18,"value":327},{"type":13,"tag":163,"props":379,"children":380},{"style":211},[381],{"type":18,"value":382}," *const",{"type":13,"tag":163,"props":384,"children":385},{"style":196},[386],{"type":18,"value":352},{"type":13,"tag":163,"props":388,"children":389},{"style":211},[390],{"type":18,"value":347},{"type":13,"tag":163,"props":392,"children":393},{"style":196},[394],{"type":18,"value":395},"DescriptorUpdateTemplateCreateInfo",{"type":13,"tag":163,"props":397,"children":398},{"style":170},[399],{"type":18,"value":204},{"type":13,"tag":163,"props":401,"children":402},{"class":165,"line":236},[403,408,412,416,420,424,429],{"type":13,"tag":163,"props":404,"children":405},{"style":170},[406],{"type":18,"value":407}," p_allocator",{"type":13,"tag":163,"props":409,"children":410},{"style":211},[411],{"type":18,"value":327},{"type":13,"tag":163,"props":413,"children":414},{"style":211},[415],{"type":18,"value":382},{"type":13,"tag":163,"props":417,"children":418},{"style":196},[419],{"type":18,"value":352},{"type":13,"tag":163,"props":421,"children":422},{"style":211},[423],{"type":18,"value":347},{"type":13,"tag":163,"props":425,"children":426},{"style":196},[427],{"type":18,"value":428},"AllocationCallbacks",{"type":13,"tag":163,"props":430,"children":431},{"style":170},[432],{"type":18,"value":204},{"type":13,"tag":163,"props":434,"children":435},{"class":165,"line":262},[436,441,445,450,454,458,463],{"type":13,"tag":163,"props":437,"children":438},{"style":170},[439],{"type":18,"value":440}," p_descriptor_update_template",{"type":13,"tag":163,"props":442,"children":443},{"style":211},[444],{"type":18,"value":327},{"type":13,"tag":163,"props":446,"children":447},{"style":211},[448],{"type":18,"value":449}," *mut",{"type":13,"tag":163,"props":451,"children":452},{"style":196},[453],{"type":18,"value":352},{"type":13,"tag":163,"props":455,"children":456},{"style":211},[457],{"type":18,"value":347},{"type":13,"tag":163,"props":459,"children":460},{"style":196},[461],{"type":18,"value":462},"DescriptorUpdateTemplate",{"type":13,"tag":163,"props":464,"children":465},{"style":170},[466],{"type":18,"value":204},{"type":13,"tag":163,"props":468,"children":470},{"class":165,"line":469},6,[471,476,481,485,489,494],{"type":13,"tag":163,"props":472,"children":473},{"style":170},[474],{"type":18,"value":475},") ",{"type":13,"tag":163,"props":477,"children":478},{"style":211},[479],{"type":18,"value":480},"->",{"type":13,"tag":163,"props":482,"children":483},{"style":196},[484],{"type":18,"value":352},{"type":13,"tag":163,"props":486,"children":487},{"style":211},[488],{"type":18,"value":347},{"type":13,"tag":163,"props":490,"children":491},{"style":196},[492],{"type":18,"value":493},"Result",{"type":13,"tag":163,"props":495,"children":496},{"style":170},[497],{"type":18,"value":498},";\n",{"type":13,"tag":500,"props":501,"children":502},"ul",{},[503,514,544,563],{"type":13,"tag":504,"props":505,"children":506},"li",{},[507,512],{"type":13,"tag":21,"props":508,"children":510},{"className":509},[],[511],{"type":18,"value":199},{"type":18,"value":513}," is the logical device that creates the descriptor update\ntemplate.",{"type":13,"tag":504,"props":515,"children":516},{},[517,523,525,531,533,537,539,543],{"type":13,"tag":21,"props":518,"children":520},{"className":519},[],[521],{"type":18,"value":522},"pCreateInfo",{"type":18,"value":524}," is a pointer to a\n",{"type":13,"tag":43,"props":526,"children":528},{"href":527},"/man/VkDescriptorUpdateTemplateCreateInfo",[529],{"type":18,"value":530},"VkDescriptorUpdateTemplateCreateInfo",{"type":18,"value":532}," structure specifying the set\nof descriptors to update with a single call to\n",{"type":13,"tag":43,"props":534,"children":535},{"href":99},[536],{"type":18,"value":102},{"type":18,"value":538}," or\n",{"type":13,"tag":43,"props":540,"children":541},{"href":61},[542],{"type":18,"value":64},{"type":18,"value":79},{"type":13,"tag":504,"props":545,"children":546},{},[547,553,555,561],{"type":13,"tag":21,"props":548,"children":550},{"className":549},[],[551],{"type":18,"value":552},"pAllocator",{"type":18,"value":554}," controls host memory allocation as described in the\n",{"type":13,"tag":43,"props":556,"children":558},{"href":557},"/chapters/memory#memory-allocation",[559],{"type":18,"value":560},"Memory Allocation",{"type":18,"value":562}," chapter.",{"type":13,"tag":504,"props":564,"children":565},{},[566,572,573,578],{"type":13,"tag":21,"props":567,"children":569},{"className":568},[],[570],{"type":18,"value":571},"pDescriptorUpdateTemplate",{"type":18,"value":524},{"type":13,"tag":21,"props":574,"children":576},{"className":575},[],[577],{"type":18,"value":88},{"type":18,"value":579}," handle in which the resulting\ndescriptor update template object is returned.",{"type":13,"tag":581,"props":582,"children":584},"validity-group",{"name":583},"Valid Usage (Implicit)",[585,612,636,676],{"type":13,"tag":586,"props":587,"children":589},"validity-field",{"name":588},"VUID-vkCreateDescriptorUpdateTemplate-device-parameter",[590],{"type":13,"tag":14,"props":591,"children":592},{},[593,598,599,602,604,610],{"type":13,"tag":21,"props":594,"children":596},{"className":595},[],[597],{"type":18,"value":199},{"type":18,"value":66},{"type":13,"tag":30,"props":600,"children":601},{"type":38},[],{"type":18,"value":603}," be a valid ",{"type":13,"tag":43,"props":605,"children":607},{"href":606},"/man/VkDevice",[608],{"type":18,"value":609},"VkDevice",{"type":18,"value":611}," handle",{"type":13,"tag":586,"props":613,"children":615},{"name":614},"VUID-vkCreateDescriptorUpdateTemplate-pCreateInfo-parameter",[616],{"type":13,"tag":14,"props":617,"children":618},{},[619,624,625,628,630,634],{"type":13,"tag":21,"props":620,"children":622},{"className":621},[],[623],{"type":18,"value":522},{"type":18,"value":66},{"type":13,"tag":30,"props":626,"children":627},{"type":38},[],{"type":18,"value":629}," be a valid pointer to a valid ",{"type":13,"tag":43,"props":631,"children":632},{"href":527},[633],{"type":18,"value":530},{"type":18,"value":635}," structure",{"type":13,"tag":586,"props":637,"children":639},{"name":638},"VUID-vkCreateDescriptorUpdateTemplate-pAllocator-parameter",[640],{"type":13,"tag":14,"props":641,"children":642},{},[643,645,650,652,658,659,664,665,668,669,675],{"type":18,"value":644},"If ",{"type":13,"tag":21,"props":646,"children":648},{"className":647},[],[649],{"type":18,"value":552},{"type":18,"value":651}," is not ",{"type":13,"tag":21,"props":653,"children":655},{"className":654},[],[656],{"type":18,"value":657},"NULL",{"type":18,"value":58},{"type":13,"tag":21,"props":660,"children":662},{"className":661},[],[663],{"type":18,"value":552},{"type":18,"value":66},{"type":13,"tag":30,"props":666,"children":667},{"type":38},[],{"type":18,"value":629},{"type":13,"tag":43,"props":670,"children":672},{"href":671},"/man/VkAllocationCallbacks",[673],{"type":18,"value":674},"VkAllocationCallbacks",{"type":18,"value":635},{"type":13,"tag":586,"props":677,"children":679},{"name":678},"VUID-vkCreateDescriptorUpdateTemplate-pDescriptorUpdateTemplate-parameter",[680],{"type":13,"tag":14,"props":681,"children":682},{},[683,688,689,692,694,699],{"type":13,"tag":21,"props":684,"children":686},{"className":685},[],[687],{"type":18,"value":571},{"type":18,"value":66},{"type":13,"tag":30,"props":690,"children":691},{"type":38},[],{"type":18,"value":693}," be a valid pointer to a ",{"type":13,"tag":43,"props":695,"children":697},{"href":696},"/man/VkDescriptorUpdateTemplate",[698],{"type":18,"value":88},{"type":18,"value":611},{"type":13,"tag":701,"props":702,"children":703},"style",{},[704],{"type":18,"value":705},"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":157,"searchDepth":187,"depth":187,"links":707},[],"markdown",1725732612613]