/* Ċ Ġ* ĠCopyright ĠL WJ GL . ĠAll Ġrights Ġreserved . Ċ Ġ* ĠLicense Ġterms : Ġhttps :// www . lwjgl . org / license Ċ Ġ* ĠM ACH INE ĠGENERATED ĠFILE , ĠDO ĠNOT ĠEDIT Ċ Ġ*/ Ċ package Ġv ulkan . templates Ċ Ċ import Ġorg . lwjgl . generator .* Ċ import Ġv ulkan .* Ċ Ċ val ĠK HR _ descriptor _ update _ template Ġ= Ġ" KHR Descriptor Update Template ". native Class VK (" KHR _ descriptor _ update _ template ", Ġtype Ġ= Ġ" device ", Ġpostfix Ġ= ĠK HR ) Ġ{ ĊĠĠĠ Ġdocumentation Ġ= ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ ĠApplications Ġmay Ġwish Ġto Ġupdate Ġa Ġfixed Ġset Ġof Ġdescriptors Ġin Ġa Ġlarge Ġnumber Ġof Ġdescriptor Ġsets Ġvery Ġfrequently , Ġi . e . Ġduring Ġinitial iz aton Ġphase Ġor Ġif Ġit Ġis Ġrequired Ġto Ġrebuild Ġdescriptor Ġsets Ġfor Ġeach Ġframe . ĠFor Ġthose Ġcases Ġit Ġis Ġalso Ġnot Ġunlikely Ġthat Ġall Ġinformation Ġrequired Ġto Ġupdate Ġa Ġsingle Ġdescriptor Ġset Ġis Ġstored Ġin Ġa Ġsingle Ġstruct . ĠThis Ġextension Ġprovides Ġa Ġway Ġto Ġupdate Ġa Ġfixed Ġset Ġof Ġdescriptors Ġin Ġa Ġsingle Ġ{@ code ĠVk DescriptorSet } Ġwith Ġa Ġpointer Ġto Ġa Ġuser Ġdefined Ġdata Ġstructure Ġdescribing Ġthe Ġnew Ġdescriptors . ĊĊĠĠĠĠĠĠĠ Ġ< h 5 > Promotion Ġto ĠVulkan Ġ 1 . 1 </ h 5 > ĊĠĠĠĠĠĠĠ Ġ# Cmd Push DescriptorSet With Template KHR () Ġis Ġincluded Ġas Ġan Ġinteraction Ġwith Ġ{@ link ĠK HR Push Descriptor ĠVK _ KHR _ push _ descriptor }. ĠIf ĠVulkan Ġ 1 . 1 Ġand Ġ{@ code ĠVK _ KHR _ push _ descriptor } Ġare Ġsupported , Ġthis Ġis Ġincluded Ġby Ġ{@ link ĠK HR Push Descriptor ĠVK _ KHR _ push _ descriptor }. ĊĊĠĠĠĠĠĠĠ ĠThe Ġbase Ġfunctionality Ġin Ġthis Ġextension Ġis Ġincluded Ġin Ġcore ĠVulkan Ġ 1 . 1 , Ġwith Ġthe ĠK HR Ġsuffix Ġomitted . ĠThe Ġoriginal Ġtype , Ġenum Ġand Ġcommand Ġnames Ġare Ġstill Ġavailable Ġas Ġaliases Ġof Ġthe Ġcore Ġfunctionality . ĊĊĠĠĠĠĠĠĠ Ġ< h 5 > VK _ KHR _ descriptor _ update _ template </ h 5 > ĊĠĠĠĠĠĠĠ Ġ< dl > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Name ĠString </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd >{@ code ĠVK _ KHR _ descriptor _ update _ template }</ dd > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Extension ĠType </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd > Device Ġextension </ dd > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Registered ĠExtension ĠNumber </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd > 8 6 </ dd > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Revision </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd > 1 </ dd > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Extension Ġand ĠVersion ĠDependencies </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd >< ul > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > Requires ĠVulkan Ġ 1 . 0 </ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ</ ul ></ dd > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > De precation Ġstate </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd >< ul > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< li >< em > Prom oted </ em > Ġto Ġ< a Ġtarget ="_ blank " Ġhref =" https :// www . kh ronos . org / registry / v ulkan / specs / 1 . 2 - extensions / html / vk spec . html \ # versions - 1 . 1 - prom otions "> Vulkan Ġ 1 . 1 </ a ></ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ</ ul ></ dd > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Contact </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd >< ul > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > Mark us ĠT aven r ath Ġ< a Ġtarget ="_ blank " Ġhref =" https :// github . com / Kh ronos Group / Vulkan - Docs / issues / new ? title = VK _ KHR _ descriptor _ update _ template :% 2 0 & amp ; body =@ mt aven r ath % 2 0 "> mt aven r ath </ a ></ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ</ ul ></ dd > ĊĠĠĠĠĠĠĠ Ġ</ dl > ĊĊĠĠĠĠĠĠĠ Ġ< h 5 > Other ĠExtension ĠMetadata </ h 5 > ĊĠĠĠĠĠĠĠ Ġ< dl > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Last ĠModified ĠDate </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd > 2 0 1 7 - 0 9 - 0 5 </ dd > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > IP ĠStatus </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd > No Ġknown ĠIP Ġclaims .</ dd > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Interactions Ġand ĠExternal ĠDependencies </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd >< ul > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > Inter acts Ġwith Ġ{@ link ĠK HR Push Descriptor ĠVK _ KHR _ push _ descriptor }</ li > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > Prom oted Ġto ĠVulkan Ġ 1 . 1 ĠCore </ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ</ ul ></ dd > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Contribut ors </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd >< ul > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > J eff ĠB ol z , ĠNVIDIA </ li > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > Michael ĠW or ce ster , ĠIm ag ination ĠTechnologies </ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ</ ul ></ dd > ĊĠĠĠĠĠĠĠ Ġ</ dl > ĊĠĠĠĠĠĠĠ Ġ""" ĊĊĠĠĠ ĠInt Constant ( ĊĠĠĠĠĠĠĠ Ġ" The Ġextension Ġspecification Ġversion .", ĊĊĠĠĠĠĠĠĠ Ġ" KHR _ DESCRIPTOR _ UPDATE _ TEMPLATE _ SPEC _ VERSION " .." 1 " ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠString Constant ( ĊĠĠĠĠĠĠĠ Ġ" The Ġextension Ġname .", ĊĊĠĠĠĠĠĠĠ Ġ" KHR _ DESCRIPTOR _ UPDATE _ TEMPLATE _ EXTENSION _ NAME " .." VK _ KHR _ descriptor _ update _ template " ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠEnum Constant ( ĊĠĠĠĠĠĠĠ Ġ" Ext ends Ġ{@ code ĠVk Structure Type }. ", ĊĊĠĠĠĠĠĠĠ Ġ" STRUCTURE _ TYPE _ DESCRIPTOR _ UPDATE _ TEMPLATE _ CREATE _ INFO _ KHR " .." 1 0 0 0 0 8 5 0 0 0 " ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠEnum Constant ( ĊĠĠĠĠĠĠĠ Ġ" Ext ends Ġ{@ code ĠVk ObjectType }. ", ĊĊĠĠĠĠĠĠĠ Ġ" OBJECT _ TYPE _ DESCRIPTOR _ UPDATE _ TEMPLATE _ KHR " .." 1 0 0 0 0 8 5 0 0 0 " ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠEnum Constant ( ĊĠĠĠĠĠĠĠ Ġ" Ext ends Ġ{@ code ĠVk Descriptor Update Template Type }. ", ĊĊĠĠĠĠĠĠĠ Ġ" DESCRIPTOR _ UPDATE _ TEMPLATE _ TYPE _ DESCRIPTOR _ SET _ KHR " .." 0 " ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠEnum Constant ( ĊĠĠĠĠĠĠĠ Ġ" Ext ends Ġ{@ code ĠVk Descriptor Update Template Type }. ", ĊĊĠĠĠĠĠĠĠ Ġ" DESCRIPTOR _ UPDATE _ TEMPLATE _ TYPE _ PUSH _ DESCRIPT ORS _ KHR " .." 1 " ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠEnum Constant ( ĊĠĠĠĠĠĠĠ Ġ" Ext ends Ġ{@ code ĠVk Debug Report ObjectType EXT }. ", ĊĊĠĠĠĠĠĠĠ Ġ" DEBUG _ REPORT _ OBJECT _ TYPE _ DESCRIPTOR _ UPDATE _ TEMPLATE _ KHR _ EXT " .." 1 0 0 0 0 8 5 0 0 0 " ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠVk Result ( ĊĠĠĠĠĠĠĠ Ġ" Create Descriptor Update Template KHR ", ĊĠĠĠĠĠĠĠ Ġ" See Ġ# Create Descriptor Update Template (). ", ĊĊĠĠĠĠĠĠĠ ĠVk Device (" device ", Ġ" the Ġlogical Ġdevice Ġthat Ġcreates Ġthe Ġdescriptor Ġupdate Ġtemplate ."), ĊĠĠĠĠĠĠĠ ĠVk Descriptor Update Template CreateInfo . const . p (" p CreateInfo ", Ġ" a Ġpointer Ġto Ġa Ġ## Vk Descriptor Update Template CreateInfo Ġstructure Ġspecifying Ġthe Ġset Ġof Ġdescriptors Ġto Ġupdate Ġwith Ġa Ġsingle Ġcall Ġto Ġ# Cmd Push DescriptorSet With Template KHR () Ġor Ġ# Update DescriptorSet With Template (). "), ĊĠĠĠĠĠĠĠ Ġnullable .. Vk Allocation Callbacks . const . p (" p Allocator ", Ġ" controls Ġhost Ġmemory Ġallocation Ġas Ġdescribed Ġin Ġthe Ġ< a Ġtarget =\" _ blank \" Ġhref =\" https :// www . kh ronos . org / registry / v ulkan / specs / 1 . 2 - extensions / html / vk spec . html \\ # memory - allocation \"> Memory ĠAl location </ a > Ġchapter ."), ĊĠĠĠĠĠĠĠ ĠCheck ( 1 ) .. Vk Descriptor Update Template . p (" p Descriptor Update Template ", Ġ" a Ġpointer Ġto Ġa Ġ{@ code ĠVk Descriptor Update Template } Ġhandle Ġin Ġwhich Ġthe Ġresulting Ġdescriptor Ġupdate Ġtemplate Ġobject Ġis Ġreturned .") ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġvoid ( ĊĠĠĠĠĠĠĠ Ġ" Destroy Descriptor Update Template KHR ", ĊĠĠĠĠĠĠĠ Ġ" See Ġ# Destroy Descriptor Update Template (). ", ĊĊĠĠĠĠĠĠĠ ĠVk Device (" device ", Ġ" the Ġlogical Ġdevice Ġthat Ġhas Ġbeen Ġused Ġto Ġcreate Ġthe Ġdescriptor Ġupdate Ġtemplate "), ĊĠĠĠĠĠĠĠ ĠVk Descriptor Update Template (" descriptor Update Template ", Ġ" the Ġdescriptor Ġupdate Ġtemplate Ġto Ġdestroy ."), ĊĠĠĠĠĠĠĠ Ġnullable .. Vk Allocation Callbacks . const . p (" p Allocator ", Ġ" controls Ġhost Ġmemory Ġallocation Ġas Ġdescribed Ġin Ġthe Ġ< a Ġtarget =\" _ blank \" Ġhref =\" https :// www . kh ronos . org / registry / v ulkan / specs / 1 . 2 - extensions / html / vk spec . html \\ # memory - allocation \"> Memory ĠAl location </ a > Ġchapter .") ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġvoid ( ĊĠĠĠĠĠĠĠ Ġ" Update DescriptorSet With Template KHR ", ĊĠĠĠĠĠĠĠ Ġ" See Ġ# Update DescriptorSet With Template (). ", ĊĊĠĠĠĠĠĠĠ ĠVk Device (" device ", Ġ" the Ġlogical Ġdevice Ġthat Ġupdates Ġthe Ġdescriptor Ġset ."), ĊĠĠĠĠĠĠĠ ĠVk DescriptorSet (" descriptor Set ", Ġ" the Ġdescriptor Ġset Ġto Ġupdate "), ĊĠĠĠĠĠĠĠ ĠVk Descriptor Update Template (" descriptor Update Template ", Ġ" a Ġ{@ code ĠVk Descriptor Update Template } Ġobject Ġspecifying Ġthe Ġupdate Ġmapping Ġbetween Ġ{@ code ĠpData } Ġand Ġthe Ġdescriptor Ġset Ġto Ġupdate ."), ĊĠĠĠĠĠĠĠ Ġopaque _ const _ p (" pData ", Ġ" a Ġpointer Ġto Ġmemory Ġcontaining Ġone Ġor Ġmore Ġ## Vk Descriptor Image Info , Ġ## Vk Descriptor Buffer Info , Ġor Ġ{@ code ĠVk Buffer View } Ġstructures Ġor Ġ{@ code ĠVk AccelerationStructure KHR } Ġor Ġ{@ code ĠVk AccelerationStructure NV } Ġhandles Ġused Ġto Ġwrite Ġthe Ġdescriptors .") ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠDep ends On (" VK _ KHR _ push _ descriptor ") .. void ( ĊĠĠĠĠĠĠĠ Ġ" Cmd Push DescriptorSet With Template KHR ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ ĠP ushes Ġdescriptor Ġupdates Ġinto Ġa Ġcommand Ġbuffer Ġusing Ġa Ġdescriptor Ġupdate Ġtemplate . ĊĊĠĠĠĠĠĠĠ Ġ< h 5 > C ĠSpecification </ h 5 > ĊĠĠĠĠĠĠĠ ĠIt Ġis Ġalso Ġpossible Ġto Ġuse Ġa Ġdescriptor Ġupdate Ġtemplate Ġto Ġspecify Ġthe Ġpush Ġdescriptors Ġto Ġupdate . ĠTo Ġdo Ġso , Ġcall : ĊĊĠĠĠĠĠĠĠ Ġ< pre >< code > Ċ ï¿ ¿ void ĠvkCmd Push DescriptorSet With Template KHR ( Ċ ï¿ ¿ ĠĠĠ ĠVk CommandBuffer ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcommand Buffer , Ċ ï¿ ¿ ĠĠĠ ĠVk Descriptor Update Template ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescriptor Update Template , Ċ ï¿ ¿ ĠĠĠ ĠVk Pipeline Layout ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout , Ċ ï¿ ¿ ĠĠĠ Ġuint 3 2 _ t ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset , Ċ ï¿ ¿ ĠĠĠ Ġconst Ġvoid * ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠpData );</ code ></ pre > ĊĊĠĠĠĠĠĠĠ Ġ< h 5 > Valid ĠUsage </ h 5 > ĊĠĠĠĠĠĠĠ Ġ< ul > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > The Ġ{@ code Ġpipeline Bind Point } Ġspecified Ġduring Ġthe Ġcreation Ġof Ġthe Ġdescriptor Ġupdate Ġtemplate Ġ< b > must </ b > Ġbe Ġsupported Ġby Ġthe Ġ{@ code Ġcommand Buffer } âĢĻ s Ġparent Ġ{@ code ĠVk Command Pool } âĢĻ s Ġqueue Ġfamily </ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< li >{@ code ĠpData } Ġ< b > must </ b > Ġbe Ġa Ġvalid Ġpointer Ġto Ġa Ġmemory Ġcontaining Ġone Ġor Ġmore Ġvalid Ġinstances Ġof Ġ## Vk Descriptor Image Info , Ġ## Vk Descriptor Buffer Info , Ġor Ġ{@ code ĠVk Buffer View } Ġin Ġa Ġlayout Ġdefined Ġby Ġ{@ code Ġdescriptor Update Template } Ġwhen Ġit Ġwas Ġcreated Ġwith Ġ# Create Descriptor Update Template ()</ li > ĊĠĠĠĠĠĠĠ Ġ</ ul > ĊĊĠĠĠĠĠĠĠ Ġ< h 5 > Valid ĠUsage Ġ( Implicit )</ h 5 > ĊĠĠĠĠĠĠĠ Ġ< ul > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< li >{@ code Ġcommand Buffer } Ġ< b > must </ b > Ġbe Ġa Ġvalid Ġ{@ code ĠVk CommandBuffer } Ġhandle </ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< li >{@ code Ġdescriptor Update Template } Ġ< b > must </ b > Ġbe Ġa Ġvalid Ġ{@ code ĠVk Descriptor Update Template } Ġhandle </ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< li >{@ code Ġlayout } Ġ< b > must </ b > Ġbe Ġa Ġvalid Ġ{@ code ĠVk Pipeline Layout } Ġhandle </ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< li >{@ code Ġcommand Buffer } Ġ< b > must </ b > Ġbe Ġin Ġthe Ġ< a Ġtarget ="_ blank " Ġhref =" https :// www . kh ronos . org / registry / v ulkan / specs / 1 . 2 - extensions / html / vk spec . html \ # command buffers - lifecycle "> recording Ġstate </ a ></ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > The Ġ{@ code ĠVk Command Pool } Ġthat Ġ{@ code Ġcommand Buffer } Ġwas Ġallocated Ġfrom Ġ< b > must </ b > Ġsupport Ġgraphics , Ġor Ġcompute Ġoperations </ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > Each Ġof Ġ{@ code Ġcommand Buffer }, Ġ{@ code Ġdescriptor Update Template }, Ġand Ġ{@ code Ġlayout } Ġ< b > must </ b > Ġhave Ġbeen Ġcreated , Ġallocated , Ġor Ġretrieved Ġfrom Ġthe Ġsame Ġ{@ code ĠVk Device }</ li > ĊĠĠĠĠĠĠĠ Ġ</ ul > ĊĊĠĠĠĠĠĠĠ Ġ< h 5 > Host ĠSynchron ization </ h 5 > ĊĠĠĠĠĠĠĠ Ġ< ul > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > Host Ġaccess Ġto Ġ{@ code Ġcommand Buffer } Ġ< b > must </ b > Ġbe Ġextern ally Ġsynchronized </ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > Host Ġaccess Ġto Ġthe Ġ{@ code ĠVk Command Pool } Ġthat Ġ{@ code Ġcommand Buffer } Ġwas Ġallocated Ġfrom Ġ< b > must </ b > Ġbe Ġextern ally Ġsynchronized </ li > ĊĠĠĠĠĠĠĠ Ġ</ ul > ĊĊĠĠĠĠĠĠĠ Ġ< h 5 > Command ĠProperties </ h 5 > ĊĠĠĠĠĠĠĠ Ġ< table Ġclass =" lwjgl "> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< thead >< tr >< th >< a Ġtarget ="_ blank " Ġhref =" https :// www . kh ronos . org / registry / v ulkan / specs / 1 . 2 - extensions / html / vk spec . html \ # Vk CommandBuffer Level "> Command ĠBuffer ĠLevel s </ a ></ th >< th >< a Ġtarget ="_ blank " Ġhref =" https :// www . kh ronos . org / registry / v ulkan / specs / 1 . 2 - extensions / html / vk spec . html \ # vkCmd Begin RenderPass "> Render ĠPass ĠScope </ a ></ th >< th >< a Ġtarget ="_ blank " Ġhref =" https :// www . kh ronos . org / registry / v ulkan / specs / 1 . 2 - extensions / html / vk spec . html \ # Vk Queue Flag Bits "> Supported ĠQueue ĠTypes </ a ></ th ></ tr ></ thead > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< tbody >< tr >< td > Primary ĠSecondary </ td >< td > Both </ td >< td > Graphics ĠCompute </ td ></ tr ></ tbody > ĊĠĠĠĠĠĠĠ Ġ</ table > ĊĊĠĠĠĠĠĠĠ Ġ< pre >< code > Ċ ï¿ ¿ struct ĠApp Data Structure Ċ ï¿ ¿ { Ċ ï¿ ¿ ĠĠĠ ĠVk Descriptor Image Info Ġ Ġimage Info ; ĠĠĠĠĠĠĠĠĠ Ġ// Ġa Ġsingle Ġimage Ġinfo Ċ ï¿ ¿ ĠĠĠ Ġ// Ġ... Ġsome Ġmore Ġapplication Ġrelated Ġdata Ċ ï¿ ¿ }; Ċ ï¿ ¿ Ċ ï¿ ¿ const ĠVk Descriptor Update Template Entry Ġdescriptor Update Template Entries [] Ġ= Ċ ï¿ ¿ { Ċ ï¿ ¿ ĠĠĠ Ġ// Ġbinding Ġto Ġa Ġsingle Ġimage Ġdescriptor Ċ ï¿ ¿ ĠĠĠ Ġ{ Ċ ï¿ ¿ ĠĠĠĠĠĠĠĠ 0 , ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġbinding Ċ ï¿ ¿ ĠĠĠĠĠĠĠĠ 0 , ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdst Array Element Ċ ï¿ ¿ ĠĠĠĠĠĠĠĠ 1 , ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdescriptor Count Ċ ï¿ ¿ ĠĠĠĠĠĠĠ ĠVK _ DESCRIPTOR _ TYPE _ COMB IN ED _ IMAGE _ SAMPLER , ĠĠ Ġ// Ġdescriptor Type Ċ ï¿ ¿ ĠĠĠĠĠĠĠ Ġoffsetof ( AppData Structure , Ġimage Info ), ĠĠĠĠĠĠ Ġ// Ġoffset Ċ ï¿ ¿ ĠĠĠĠĠĠĠĠ 0 ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġstride Ġis Ġnot Ġrequired Ġif Ġdescriptor Count Ġis Ġ 1 Ċ ï¿ ¿ ĠĠĠ Ġ} Ċ ï¿ ¿ }; Ċ ï¿ ¿ Ċ ï¿ ¿ // Ġcreate Ġa Ġdescriptor Ġupdate Ġtemplate Ġfor Ġpush Ġdescriptor Ġset Ġupdates Ċ ï¿ ¿ const ĠVk Descriptor Update Template CreateInfo Ġcreate Info Ġ= Ċ ï¿ ¿ { Ċ ï¿ ¿ ĠĠĠ ĠVK _ STRUCTURE _ TYPE _ DESCRIPTOR _ UPDATE _ TEMPLATE _ CREATE _ INFO , Ġ Ġ// Ġs Type Ċ ï¿ ¿ ĠĠĠ ĠNULL , ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġp Next Ċ ï¿ ¿ ĠĠĠĠ 0 , ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġflags Ċ ï¿ ¿ ĠĠĠĠ 1 , ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdescriptor Update Entry Count Ċ ï¿ ¿ ĠĠĠ Ġdescriptor Update Template Entries , ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġp Descriptor Update Entries Ċ ï¿ ¿ ĠĠĠ ĠVK _ DESCRIPTOR _ UPDATE _ TEMPLATE _ TYPE _ PUSH _ DESCRIPT ORS _ KHR , ĠĠ Ġ// Ġtemplate Type Ċ ï¿ ¿ ĠĠĠĠ 0 , ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdescriptor Set Layout , Ġignored Ġby Ġgiven Ġtemplate Type Ċ ï¿ ¿ ĠĠĠ ĠVK _ PIPELINE _ BIND _ POINT _ GRAPH ICS , ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġpipeline Bind Point Ċ ï¿ ¿ ĠĠĠ Ġmy Pipeline Layout , ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġpipeline Layout Ċ ï¿ ¿ ĠĠĠĠ 0 , ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġset Ċ ï¿ ¿ }; Ċ ï¿ ¿ Ċ ï¿ ¿ Vk Descriptor Update Template Ġmy Descriptor Update Template ; Ċ ï¿ ¿ my Result Ġ= Ġvk Create Descriptor Update Template ( Ċ ï¿ ¿ ĠĠĠ Ġmy Device , Ċ ï¿ ¿ ĠĠĠ Ġ& amp ; create Info , Ċ ï¿ ¿ ĠĠĠ ĠNULL , Ċ ï¿ ¿ ĠĠĠ Ġ& amp ; my Descriptor Update Template ); Ċ ï¿ ¿ Ċ ï¿ ¿ AppData Structure Ġapp Data ; Ċ ï¿ ¿ // Ġfill Ġapp Data Ġhere Ġor Ġcache Ġit Ġin Ġyour Ġengine Ċ ï¿ ¿ vkCmd Push DescriptorSet With Template KHR ( my Cmd Buffer , Ġmy Descriptor Update Template , Ġmy Pipeline Layout , Ġ 0 ,& amp ; app Data );</ code ></ pre > ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĊĠĠĠĠĠĠĠ ĠVk CommandBuffer (" commandBuffer ", Ġ" the Ġcommand Ġbuffer Ġthat Ġthe Ġdescriptors Ġwill Ġbe Ġrecorded Ġin ."), ĊĠĠĠĠĠĠĠ ĠVk Descriptor Update Template (" descriptor Update Template ", Ġ" a Ġdescriptor Ġupdate Ġtemplate Ġdefining Ġhow Ġto Ġinterpret Ġthe Ġdescriptor Ġinformation Ġin Ġ{@ code ĠpData }. "), ĊĠĠĠĠĠĠĠ ĠVk Pipeline Layout (" layout ", Ġ" a Ġ{@ code ĠVk Pipeline Layout } Ġobject Ġused Ġto Ġprogram Ġthe Ġbindings . ĠIt Ġ< b > must </ b > Ġbe Ġcompatible Ġwith Ġthe Ġlayout Ġused Ġto Ġcreate Ġthe Ġ{@ code Ġdescriptor Update Template } Ġhandle ."), ĊĠĠĠĠĠĠĠ Ġuint 3 2 _ t (" set ", Ġ" the Ġset Ġnumber Ġof Ġthe Ġdescriptor Ġset Ġin Ġthe Ġpipeline Ġlayout Ġthat Ġwill Ġbe Ġupdated . ĠThis Ġ< b > must </ b > Ġbe Ġthe Ġsame Ġnumber Ġused Ġto Ġcreate Ġthe Ġ{@ code Ġdescriptor Update Template } Ġhandle ."), ĊĠĠĠĠĠĠĠ Ġopaque _ const _ p (" pData ", Ġ" a Ġpointer Ġto Ġmemory Ġcontaining Ġdescriptors Ġfor Ġthe Ġtemp lated Ġupdate .") ĊĠĠĠ Ġ) Ċ }