/* Ċ Ġ* Ġ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 _ buffer _ device _ address Ġ= Ġ" KHR Buffer Device Address ". native Class VK (" KHR _ buffer _ device _ address ", Ġtype Ġ= Ġ" device ", Ġpostfix Ġ= Ġ" KHR ") Ġ{ ĊĠĠĠ Ġdocumentation Ġ= ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ ĠThis Ġextension Ġallows Ġthe Ġapplication Ġto Ġquery Ġa Ġ 6 4 - bit Ġbuffer Ġdevice Ġaddress Ġvalue Ġfor Ġa Ġbuffer , Ġwhich Ġcan Ġbe Ġused Ġto Ġaccess Ġthe Ġbuffer Ġmemory Ġvia Ġthe Ġ{@ code ĠPhysical Storage Buffer } Ġstorage Ġclass Ġin Ġthe Ġ< a Ġtarget ="_ blank " Ġhref =" https :// github . com / Kh ronos Group / GLSL / blob / master / extensions / ext / GLSL _ EXT _ buffer _ reference . txt ">{ @ code ĠGL _ EXT _ buffer _ reference }</ a > ĠGL SL Ġextension Ġand Ġ< a Ġtarget ="_ blank " Ġhref =" https :// html preview . github . io /? https :// github . com / Kh ronos Group / SPI RV - Registry / blob / master / extensions / KHR / SP V _ KHR _ physical _ storage _ buffer . html ">{ @ code ĠSP V _ KHR _ physical _ storage _ buffer }</ a > ĠSPI R - V Ġextension . ĊĊĠĠĠĠĠĠĠ ĠAnother Ġway Ġto Ġdescribe Ġthis Ġextension Ġis Ġthat Ġit Ġadds ĠâĢľ {@ code Ġpointers Ġto Ġbuffer Ġmemory Ġin Ġshaders } âĢĿ. ĠBy Ġcalling Ġ# Get Buffer Device Address () Ġwith Ġa Ġ{@ code ĠVk Buffer }, Ġit Ġwill Ġreturn Ġa Ġ{@ code ĠVk Device Address } Ġvalue Ġwhich Ġrepresents Ġthe Ġaddress Ġof Ġthe Ġstart Ġof Ġthe Ġbuffer . ĊĊĠĠĠĠĠĠĠ Ġ# Get Buffer Opaque Capture Address () Ġand Ġ# GetDevice Memory Opaque Capture Address () Ġallow Ġopaque Ġaddresses Ġfor Ġbuffers Ġand Ġmemory Ġobjects Ġto Ġbe Ġqueried Ġfor Ġthe Ġcurrent Ġprocess . ĠA Ġtrace Ġcapture Ġand Ġreplay Ġtool Ġcan Ġthen Ġsupply Ġthese Ġaddresses Ġto Ġbe Ġused Ġat Ġreplay Ġtime Ġto Ġmatch Ġthe Ġaddresses Ġused Ġwhen Ġthe Ġtrace Ġwas Ġcaptured . ĠTo Ġenable Ġtools Ġto Ġinsert Ġthese Ġqueries , Ġnew Ġmemory Ġallocation Ġflags Ġmust Ġbe Ġspecified Ġfor Ġmemory Ġobjects Ġthat Ġwill Ġbe Ġbound Ġto Ġbuffers Ġaccessed Ġvia Ġthe Ġ{@ code ĠPhysical Storage Buffer } Ġstorage Ġclass . ĠNote Ġthat Ġthis Ġmechanism Ġis Ġintended Ġonly Ġto Ġsupport Ġcapture / replay Ġtools , Ġand Ġis Ġnot Ġrecommended Ġfor Ġuse Ġin Ġother Ġapplications . ĊĊĠĠĠĠĠĠĠ ĠThere Ġare Ġvarious Ġuse Ġcases Ġthis Ġextension Ġis Ġdesigned Ġfor . ĠIt Ġis Ġrequired Ġfor Ġray Ġtracing , Ġuseful Ġfor ĠDX 1 2 Ġport ability , Ġand Ġby Ġallowing Ġbuffer Ġaddresses Ġto Ġbe Ġstored Ġin Ġmemory Ġit Ġenables Ġmore Ġcomplex Ġdata Ġstructures Ġto Ġbe Ġcreated . ĊĊĠĠĠĠĠĠĠ ĠThis Ġextension Ġcan Ġalso Ġbe Ġused Ġto Ġhard code Ġa Ġdedicated Ġdebug Ġchannel Ġinto Ġall Ġshaders Ġby Ġquerying Ġa Ġpointer Ġat Ġstartup Ġand Ġpushing Ġthat Ġinto Ġshaders Ġas Ġa Ġrun - time Ġconstant Ġ( e . g . Ġspecial ization Ġconstant ) Ġthat Ġavoids Ġimpact ing Ġother Ġdescriptor Ġlimits . ĊĊĠĠĠĠĠĠĠ ĠThere Ġare Ġexamples Ġof Ġusage Ġin Ġthe Ġ< a Ġtarget ="_ blank " Ġhref =" https :// github . com / Kh ronos Group / GLSL / blob / master / extensions / ext / GLSL _ EXT _ buffer _ reference . txt ">{ @ code ĠGL _ EXT _ buffer _ reference }</ a > Ġspec Ġfor Ġhow Ġto Ġuse Ġthis Ġin Ġa Ġhigh - level Ġsh ading Ġlanguage Ġsuch Ġas ĠGL SL . ĠThe Ġ< a Ġtarget ="_ blank " Ġhref =" https :// github . com / Kh ronos Group / GLSL / blob / master / extensions / ext / GLSL _ EXT _ buffer _ reference 2 . txt ">{ @ code ĠGL _ EXT _ buffer _ reference 2 }</ a > Ġand Ġ< a Ġtarget ="_ blank " Ġhref =" https :// github . com / Kh ronos Group / GLSL / blob / master / extensions / ext / GLSL _ EXT _ buffer _ reference _ uvec 2 . txt ">{ @ code ĠGL _ EXT _ buffer _ reference _ uvec 2 }</ a > Ġextensions Ġwere Ġalso Ġadded Ġto Ġhelp Ġcover Ġa Ġfew Ġadditional Ġedge Ġcases . ĊĊĠĠĠĠĠĠĠ Ġ< h 5 > Promotion Ġto ĠVulkan Ġ 1 . 2 </ h 5 > ĊĠĠĠĠĠĠĠ ĠAll Ġfunctionality Ġin Ġthis Ġextension Ġis Ġincluded Ġin Ġcore ĠVulkan Ġ 1 . 2 , Ġwith Ġthe ĠK HR Ġsuffix Ġomitted . ĠHowever , Ġif ĠVulkan Ġ 1 . 2 Ġis Ġsupported Ġand Ġthis Ġextension Ġis Ġnot , Ġthe Ġ{@ code Ġbuffer Device Address } Ġfeature Ġis Ġoptional . ĠThe Ġoriginal Ġtype , Ġenum Ġand Ġcommand Ġnames Ġare Ġstill Ġavailable Ġas Ġaliases Ġof Ġthe Ġcore Ġfunctionality . ĊĊĠĠĠĠĠĠĠ Ġ< h 5 > Promotion Ġto ĠVulkan Ġ 1 . 3 </ h 5 > ĊĠĠĠĠĠĠĠ ĠSupport Ġfor Ġthe Ġ{@ code Ġbuffer Device Address } Ġfeature Ġis Ġmandatory Ġin ĠVulkan Ġ 1 . 3 , Ġregardless Ġof Ġwhether Ġthis Ġextension Ġis Ġsupported . ĊĊĠĠĠĠĠĠĠ Ġ< h 5 > VK _ KHR _ buffer _ device _ address </ h 5 > ĊĠĠĠĠĠĠĠ Ġ< dl > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Name ĠString </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd >{@ code ĠVK _ KHR _ buffer _ device _ address }</ dd > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Extension ĠType </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd > Device Ġextension </ dd > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Registered ĠExtension ĠNumber </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd > 2 5 8 </ 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 > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > Requires Ġ{@ link ĠK HR Get PhysicalDevice Properties 2 ĠVK _ KHR _ get _ physical _ device _ properties 2 }</ 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 . 3 - extensions / html / vk spec . html \ # versions - 1 . 2 - prom otions "> Vulkan Ġ 1 . 2 </ a ></ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ</ ul ></ dd > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Contact </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd >< ul > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > J eff ĠB ol z Ġ< a Ġtarget ="_ blank " Ġhref =" https :// github . com / Kh ronos Group / Vulkan - Docs / issues / new ? body =[ VK _ KHR _ buffer _ device _ address ] % 2 0 @ je ff bol zn v % 2 5 0 A % 3 C % 3 CH ere % 2 0 describe % 2 0 the % 2 0 issue % 2 0 or % 2 0 question % 2 0 you % 2 0 have % 2 0 about % 2 0 the % 2 0 VK _ KHR _ buffer _ device _ address % 2 0 extension % 3 E % 3 E "> je ff bol zn v </ a ></ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ</ ul ></ dd > ĊĠĠĠĠĠĠĠ Ġ</ dl > ĊĊĠĠĠĠĠĠĠ Ġ< h 5 > Other ĠExtension ĠMetadata </ h 5 > ĊĠĠĠĠĠĠĠ Ġ< dl > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Last ĠModified ĠDate </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd > 2 0 1 9 - 0 6 - 2 4 </ dd > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > IP ĠStatus </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd > No Ġknown ĠIP Ġclaims .</ dd > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Interactions Ġand ĠExternal ĠDependencies </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd >< ul > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > Prom oted Ġto ĠVulkan Ġ 1 . 2 ĠCore </ li > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > This Ġextension Ġrequires Ġ< a Ġtarget ="_ blank " Ġhref =" https :// html preview . github . io /? https :// github . com / Kh ronos Group / SPI RV - Registry / blob / master / extensions / KHR / SP V _ KHR _ physical _ storage _ buffer . html ">{ @ code ĠSP V _ KHR _ physical _ storage _ buffer }</ a ></ li > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > This Ġextension Ġprovides ĠAPI Ġsupport Ġfor Ġ< a Ġtarget ="_ blank " Ġhref =" https :// github . com / Kh ronos Group / GLSL / blob / master / extensions / ext / GLSL _ EXT _ buffer _ reference . txt ">{ @ code ĠGL _ EXT _ buffer _ reference }</ a > Ġand Ġ< a Ġtarget ="_ blank " Ġhref =" https :// github . com / Kh ronos Group / GLSL / blob / master / extensions / ext / GLSL _ EXT _ buffer _ reference 2 . txt ">{ @ code ĠGL _ EXT _ buffer _ reference 2 }</ a > Ġand Ġ< a Ġtarget ="_ blank " Ġhref =" https :// github . com / Kh ronos Group / GLSL / blob / master / extensions / ext / GLSL _ EXT _ buffer _ reference _ uvec 2 . txt ">{ @ code ĠGL _ EXT _ buffer _ reference _ uvec 2 }</ a ></ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ</ ul ></ dd > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Contribut ors </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd >< ul > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > J eff ĠB ol z , ĠNVIDIA </ li > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > Ne il ĠHen ning , ĠAMD </ li > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > To bias ĠH ector , ĠAMD </ li > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > J ason ĠE k strand , ĠIntel </ li > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > Bal dur ĠKar l sson , ĠVal ve </ li > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > Jan - Har ald ĠF red ri ks en , ĠArm </ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ</ ul ></ dd > ĊĠĠĠĠĠĠĠ Ġ</ dl > ĊĠĠĠĠĠĠĠ Ġ""" ĊĊĠĠĠ ĠInt Constant ( ĊĠĠĠĠĠĠĠ Ġ" The Ġextension Ġspecification Ġversion .", ĊĊĠĠĠĠĠĠĠ Ġ" KHR _ BUFFER _ DEVICE _ ADDRESS _ SPEC _ VERSION " .." 1 " ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠString Constant ( ĊĠĠĠĠĠĠĠ Ġ" The Ġextension Ġname .", ĊĊĠĠĠĠĠĠĠ Ġ" KHR _ BUFFER _ DEVICE _ ADDRESS _ EXTENSION _ NAME " .." VK _ KHR _ buffer _ device _ address " ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠEnum Constant ( ĊĠĠĠĠĠĠĠ Ġ" Ext ends Ġ{@ code ĠVk Structure Type }. ", ĊĊĠĠĠĠĠĠĠ Ġ" STRUCTURE _ TYPE _ PHYSICAL _ DEVICE _ BUFFER _ DEVICE _ ADDRESS _ FEATURES _ KHR " .." 1 0 0 0 2 5 7 0 0 0 ", ĊĠĠĠĠĠĠĠ Ġ" STRUCTURE _ TYPE _ BUFFER _ DEVICE _ ADDRESS _ INFO _ KHR " .." 1 0 0 0 2 4 4 0 0 1 ", ĊĠĠĠĠĠĠĠ Ġ" STRUCTURE _ TYPE _ BUFFER _ OP A QUE _ CAPTURE _ ADDRESS _ CREATE _ INFO _ KHR " .." 1 0 0 0 2 5 7 0 0 2 ", ĊĠĠĠĠĠĠĠ Ġ" STRUCTURE _ TYPE _ MEMORY _ OP A QUE _ CAPTURE _ ADDRESS _ ALLOC ATE _ INFO _ KHR " .." 1 0 0 0 2 5 7 0 0 3 ", ĊĠĠĠĠĠĠĠ Ġ" STRUCTURE _ TYPE _ DEVICE _ MEMORY _ OP A QUE _ CAPTURE _ ADDRESS _ INFO _ KHR " .." 1 0 0 0 2 5 7 0 0 4 " ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠEnum Constant ( ĊĠĠĠĠĠĠĠ Ġ" Ext ends Ġ{@ code ĠVk Buffer Usage Flag Bits }. ", ĊĊĠĠĠĠĠĠĠ Ġ" BUFFER _ USAGE _ SHADER _ DEVICE _ ADDRESS _ BIT _ KHR ". enum ( 0 x 0 0 0 2 0 0 0 0 ) ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠEnum Constant ( ĊĠĠĠĠĠĠĠ Ġ" Ext ends Ġ{@ code ĠVk Buffer Create Flag Bits }. ", ĊĊĠĠĠĠĠĠĠ Ġ" BUFFER _ CREATE _ DEVICE _ ADDRESS _ CAPTURE _ RE PLAY _ BIT _ KHR ". enum ( 0 x 0 0 0 0 0 0 1 0 ) ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠEnum Constant ( ĊĠĠĠĠĠĠĠ Ġ" Ext ends Ġ{@ code ĠVk Memory Allocate Flag Bits }. ", ĊĊĠĠĠĠĠĠĠ Ġ" MEMORY _ ALLOC ATE _ DEVICE _ ADDRESS _ BIT _ KHR ". enum ( 0 x 0 0 0 0 0 0 0 2 ), ĊĠĠĠĠĠĠĠ Ġ" MEMORY _ ALLOC ATE _ DEVICE _ ADDRESS _ CAPTURE _ RE PLAY _ BIT _ KHR ". enum ( 0 x 0 0 0 0 0 0 0 4 ) ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠEnum Constant ( ĊĠĠĠĠĠĠĠ Ġ" Ext ends Ġ{@ code ĠVk Result }. ", ĊĊĠĠĠĠĠĠĠ Ġ" ERROR _ INVALID _ OP A QUE _ CAPTURE _ ADDRESS _ KHR " .. "- 1 0 0 0 2 5 7 0 0 0 " ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠVk Device Address ( ĊĠĠĠĠĠĠĠ Ġ" Get Buffer Device Address KHR ", ĊĠĠĠĠĠĠĠ Ġ" See Ġ# Get Buffer Device Address (). ", ĊĊĠĠĠĠĠĠĠ ĠVk Device (" device ", Ġ" the Ġlogical Ġdevice Ġthat Ġthe Ġbuffer Ġwas Ġcreated Ġon ."), ĊĠĠĠĠĠĠĠ ĠVk Buffer Device Address Info . const . p (" p Info ", Ġ" a Ġpointer Ġto Ġa Ġ## Vk Buffer Device Address Info Ġstructure Ġspecifying Ġthe Ġbuffer Ġto Ġretrieve Ġan Ġaddress Ġfor .") ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġuint 6 4 _ t ( ĊĠĠĠĠĠĠĠ Ġ" Get Buffer Opaque Capture Address KHR ", ĊĠĠĠĠĠĠĠ Ġ" See Ġ# Get Buffer Opaque Capture Address (). ", ĊĊĠĠĠĠĠĠĠ ĠVk Device (" device ", Ġ" the Ġlogical Ġdevice Ġthat Ġthe Ġbuffer Ġwas Ġcreated Ġon ."), ĊĠĠĠĠĠĠĠ ĠVk Buffer Device Address Info . const . p (" p Info ", Ġ" a Ġpointer Ġto Ġa Ġ## Vk Buffer Device Address Info Ġstructure Ġspecifying Ġthe Ġbuffer Ġto Ġretrieve Ġan Ġaddress Ġfor .") ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġuint 6 4 _ t ( ĊĠĠĠĠĠĠĠ Ġ" GetDevice Memory Opaque Capture Address KHR ", ĊĠĠĠĠĠĠĠ Ġ" See Ġ# GetDevice Memory Opaque Capture Address (). ", ĊĊĠĠĠĠĠĠĠ ĠVk Device (" device ", Ġ" the Ġlogical Ġdevice Ġthat Ġthe Ġmemory Ġobject Ġwas Ġallocated Ġon ."), ĊĠĠĠĠĠĠĠ ĠVk Device Memory Opaque Capture Address Info . const . p (" p Info ", Ġ" a Ġpointer Ġto Ġa Ġ## VkDevice Memory Opaque Capture Address Info Ġstructure Ġspecifying Ġthe Ġmemory Ġobject Ġto Ġretrieve Ġan Ġaddress Ġfor .") ĊĠĠĠ Ġ) Ċ }