/* Ċ Ġ* Ġ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 _ device _ group _ creation Ġ= Ġ" KHR Device Group Creation ". native Class VK (" KHR _ device _ group _ creation ", Ġtype Ġ= Ġ" instance ", Ġpostfix Ġ= ĠK HR ) Ġ{ ĊĠĠĠ Ġdocumentation Ġ= ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ ĠThis Ġextension Ġprovides Ġinstance - level Ġcommands Ġto Ġenumerate Ġgroups Ġof Ġphysical Ġdevices , Ġand Ġto Ġcreate Ġa Ġlogical Ġdevice Ġfrom Ġa Ġsubset Ġof Ġone Ġof Ġthose Ġgroups . ĠSuch Ġa Ġlogical Ġdevice Ġcan Ġthen Ġbe Ġused Ġwith Ġnew Ġfeatures Ġin Ġthe Ġ{@ link ĠK HR Device Group ĠVK _ KHR _ device _ group } Ġextension . ĊĊĠĠĠĠĠĠĠ Ġ< h 5 > Promotion Ġto ĠVulkan Ġ 1 . 1 </ h 5 > ĊĠĠĠĠĠĠĠ ĠAll Ġ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 > Examples </ h 5 > ĊĠĠĠĠĠĠĠ Ġ< pre >< code > Ċ ï¿ ¿ ĠĠĠ ĠVk Device CreateInfo Ġdev CreateInfo Ġ= Ġ{ ĠVK _ STRUCTURE _ TYPE _ DEVICE _ CREATE _ INFO Ġ}; Ċ ï¿ ¿ ĠĠĠ Ġ// Ġ( not Ġshown ) Ġfill Ġout Ġdev CreateInfo Ġas Ġusual . Ċ ï¿ ¿ ĠĠĠ Ġuint 3 2 _ t Ġdevice Group Count Ġ= Ġ 0 ; Ċ ï¿ ¿ ĠĠĠ ĠVk PhysicalDevice Group Properties KHR Ġ* props Ġ= ĠNULL ; Ċ ï¿ ¿ Ċ ï¿ ¿ ĠĠĠ Ġ// ĠQuery Ġthe Ġnumber Ġof Ġdevice Ġgroups Ċ ï¿ ¿ ĠĠĠ Ġvk Enumerate PhysicalDevice Groups KHR ( g _ vk Instance , Ġ& amp ; device Group Count , ĠNULL ); Ċ ï¿ ¿ Ċ ï¿ ¿ ĠĠĠ Ġ// ĠAllocate Ġand Ġinitialize Ġstructures Ġto Ġquery Ġthe Ġdevice Ġgroups Ċ ï¿ ¿ ĠĠĠ Ġprops Ġ= Ġ( Vk PhysicalDevice Group Properties KHR Ġ*) malloc ( device Group Count * sizeof ( Vk PhysicalDevice Group Properties KHR )); Ċ ï¿ ¿ ĠĠĠ Ġfor Ġ( i Ġ= Ġ 0 ; Ġi Ġ& lt ; Ġdevice Group Count ; Ġ++ i ) Ġ{ Ċ ï¿ ¿ ĠĠĠĠĠĠĠ Ġprops [ i ]. sType Ġ= ĠVK _ STRUCTURE _ TYPE _ PHYSICAL _ DEVICE _ GROUP _ PROPERTIES _ KHR ; Ċ ï¿ ¿ ĠĠĠĠĠĠĠ Ġprops [ i ]. pNext Ġ= ĠNULL ; Ċ ï¿ ¿ ĠĠĠ Ġ} Ċ ï¿ ¿ ĠĠĠ Ġvk Enumerate PhysicalDevice Groups KHR ( g _ vk Instance , Ġ& amp ; device Group Count , Ġprops ); Ċ ï¿ ¿ Ċ ï¿ ¿ ĠĠĠ Ġ// ĠIf Ġthe Ġfirst Ġdevice Ġgroup Ġhas Ġmore Ġthan Ġone Ġphysical Ġdevice . Ġcreate Ċ ï¿ ¿ ĠĠĠ Ġ// Ġa Ġlogical Ġdevice Ġusing Ġall Ġof Ġthe Ġphysical Ġdevices . Ċ ï¿ ¿ ĠĠĠ ĠVk Device Group Device CreateInfo KHR Ġdevice Group Info Ġ= Ġ{ ĠVK _ STRUCTURE _ TYPE _ DEVICE _ GROUP _ DEVICE _ CREATE _ INFO _ KHR Ġ}; Ċ ï¿ ¿ ĠĠĠ Ġif Ġ( props [ 0 ]. physical Device Count Ġ& gt ; Ġ 1 ) Ġ{ Ċ ï¿ ¿ ĠĠĠĠĠĠĠ Ġdevice Group Info . physical Device Count Ġ= Ġprops [ 0 ]. physical Device Count ; Ċ ï¿ ¿ ĠĠĠĠĠĠĠ Ġdevice Group Info . p Physical Devices Ġ= Ġprops [ 0 ]. physical Devices ; Ċ ï¿ ¿ ĠĠĠĠĠĠĠ Ġdev CreateInfo . pNext Ġ= Ġ& amp ; device Group Info ; Ċ ï¿ ¿ ĠĠĠ Ġ} Ċ ï¿ ¿ Ċ ï¿ ¿ ĠĠĠ Ġvk Create Device ( props [ 0 ]. physical Devices [ 0 ], Ġ& amp ; dev CreateInfo , ĠNULL , Ġ& amp ; g _ vk Device ); Ċ ï¿ ¿ ĠĠĠ Ġfree ( props );</ code ></ pre > ĊĊĠĠĠĠĠĠĠ Ġ< dl > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Name ĠString </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd >{@ code ĠVK _ KHR _ device _ group _ creation }</ dd > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Extension ĠType </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd > Instance Ġextension </ dd > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Registered ĠExtension ĠNumber </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd > 7 1 </ 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 . 0 - 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 > J eff ĠB ol z Ġ< a Ġtarget ="_ blank " Ġhref =" https :// github . com / Kh ronos Group / Vulkan - Docs / issues / new ? title = VK _ KHR _ device _ group _ creation :% 2 0 & amp ; body =@ je ff bol zn v % 2 0 "> je ff bol zn v </ a ></ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ</ ul ></ dd > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Last ĠModified ĠDate </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd > 2 0 1 6 - 1 0 - 1 9 </ 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 . 1 ĠCore </ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ</ ul ></ dd > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Contribut ors </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd >< ul > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > J eff ĠB ol z , ĠNVIDIA </ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ</ ul ></ dd > ĊĠĠĠĠĠĠĠ Ġ</ dl > ĊĠĠĠĠĠĠĠ Ġ""" ĊĊĠĠĠ ĠInt Constant ( ĊĠĠĠĠĠĠĠ Ġ" The Ġextension Ġspecification Ġversion .", ĊĊĠĠĠĠĠĠĠ Ġ" KHR _ DEVICE _ GROUP _ CRE ATION _ SPEC _ VERSION " .." 1 " ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠString Constant ( ĊĠĠĠĠĠĠĠ Ġ" The Ġextension Ġname .", ĊĊĠĠĠĠĠĠĠ Ġ" KHR _ DEVICE _ GROUP _ CRE ATION _ EXTENSION _ NAME " .." VK _ KHR _ device _ group _ creation " ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠEnum Constant ( ĊĠĠĠĠĠĠĠ Ġ" Ext ends Ġ{@ code ĠVk Structure Type }. ", ĊĊĠĠĠĠĠĠĠ Ġ" STRUCTURE _ TYPE _ PHYSICAL _ DEVICE _ GROUP _ PROPERTIES _ KHR " .." 1 0 0 0 0 7 0 0 0 0 ", ĊĠĠĠĠĠĠĠ Ġ" STRUCTURE _ TYPE _ DEVICE _ GROUP _ DEVICE _ CREATE _ INFO _ KHR " .." 1 0 0 0 0 7 0 0 0 1 " ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠEnum Constant ( ĊĠĠĠĠĠĠĠ Ġ" VK _ MAX _ DEVICE _ GROUP _ SIZE _ KHR ", ĊĊĠĠĠĠĠĠĠ Ġ" MAX _ DEVICE _ GROUP _ SIZE _ KHR " .." 3 2 " ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠEnum Constant ( ĊĠĠĠĠĠĠĠ Ġ" Ext ends Ġ{@ code ĠVk Memory Heap Flag Bits }. ", ĊĊĠĠĠĠĠĠĠ Ġ" MEMORY _ HEAP _ MULTI _ INSTANCE _ BIT _ KHR ". enum ( 0 x 0 0 0 0 0 0 0 2 ) ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠVk Result ( ĊĠĠĠĠĠĠĠ Ġ" Enumerate PhysicalDevice Groups KHR ", ĊĠĠĠĠĠĠĠ Ġ" See Ġ# Enumerate PhysicalDevice Groups (). ", ĊĊĠĠĠĠĠĠĠ ĠVk Instance (" instance ", Ġ" a Ġhandle Ġto Ġa ĠVulkan Ġinstance Ġpreviously Ġcreated Ġwith Ġ# CreateInstance (). "), ĊĠĠĠĠĠĠĠ ĠAuto Size (" p PhysicalDevice Group Properties ") .. Check ( 1 ) .. uint 3 2 _ t . p (" p PhysicalDevice Group Count ", Ġ" a Ġpointer Ġto Ġan Ġinteger Ġrelated Ġto Ġthe Ġnumber Ġof Ġdevice Ġgroups Ġavailable Ġor Ġqueried , Ġas Ġdescribed Ġbelow ."), ĊĠĠĠĠĠĠĠ Ġnullable .. Vk PhysicalDevice Group Properties . p (" p PhysicalDevice Group Properties ", Ġ" either Ġ{@ code ĠNULL } Ġor Ġa Ġpointer Ġto Ġan Ġarray Ġof Ġ## Vk PhysicalDevice Group Properties Ġstructures .") ĊĠĠĠ Ġ) Ċ }