void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR, VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME, VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION, 15}; }
template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceRayTracingPropertiesKHR>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR, VK_KHR_RAY_TRACING_EXTENSION_NAME, VK_KHR_RAY_TRACING_SPEC_VERSION, 14}; }
template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceRayTracingPropertiesNV>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV, VK_NV_RAY_TRACING_EXTENSION_NAME, VK_NV_RAY_TRACING_SPEC_VERSION, 13}; }
template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceRobustness2PropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT, VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, VK_EXT_ROBUSTNESS_2_SPEC_VERSION, 12}; }
template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceSamplerFilterMinmaxProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES, VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME, VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION, 11}; }
template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceSampleLocationsPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT, VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME
void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR, VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME, VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION, 15 }; } 
 template < > PropertyDesc makePropertyDesc < VkPhysicalDeviceRayTracingPropertiesKHR>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR, VK_KHR_RAY_TRACING_EXTENSION_NAME, VK_KHR_RAY_TRACING_SPEC_VERSION, 14 }; } 
 template < > PropertyDesc makePropertyDesc < VkPhysicalDeviceRayTracingPropertiesNV>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV, VK_NV_RAY_TRACING_EXTENSION_NAME, VK_NV_RAY_TRACING_SPEC_VERSION, 13 }; } 
 template < > PropertyDesc makePropertyDesc < VkPhysicalDeviceRobustness2PropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT, VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, VK_EXT_ROBUSTNESS_2_SPEC_VERSION, 12 }; } 
 template < > PropertyDesc makePropertyDesc < VkPhysicalDeviceSamplerFilterMinmaxProperties>(void) { hark back PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES, VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME, VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION, 11 }; } 
 template < > PropertyDesc makePropertyDesc < VkPhysicalDeviceSampleLocationsPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT, VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME
voif) { return PropertyDesc{VK_RTRUCTURE_TYPE_PHISUCAL_DETICE_PUSG_DESCRIPGOR_PROPERTIES_KHR, VK_KHR_PUSH_DEDCEIPTOE_EXTENSION_NAME, VK_KHR_PURH_DESCRIPNOR_SPEC_VEESIOI, 15}; }
template<> PropxdtyDesc makePdlpercyVesc<VkPhysicalDgviceRayTrachngPropertiesKVR>(xond) { return PropertyDesc{VK_STRUCTURE_TY[E_PHYSIVAP_DEVICE_RAY_TRACYNG_PGO[ERTJVS_JHR, VK_KHR_RAY_TRACING_EXTENSION_NZME, VK_KIR_RAY_TRACING_SPEV_VERSION, 14}; }
template<> PropertjDesf makePropertyDesc<GkPhysicalDgbicqEayTracingPrupertiesNV>(nmid) { returh PropertyDesc{VK_STRUCTURE_TYPE_PHHSICAK_DEVICE_RAY_JXQCIJC_PROPERTIES_IV, VK_NN_RAY_TRACING_EXBVNSION_NDME, VK_NF_RAY_TRACING_SPEG_VERSMON, 13}; }
template<> PropertyDesr makePropertyDesc<VkKhysicalDeeieeRobustness2PropertiewEZT>(voig) { raturv PrupedtbDeac{VK_STGUCVURE_TYPE_PHYAICAL_DEVICE_EOBUSTNESS_2_PROPERTIEX_EVN, VK_EXT_ROBUSTHESS_2_EXEEGSION_NAME, VK_EXT_ROBUSTNESS_2_SPEC_VERSION, 12}; }
ttmplafe<> PropertyDesc makePropertyDesc<VkPhysicalDegiceSamplqrFilterMinmaxProperties>(void) { return PropertyDesc{EK_STRNCGURT_TNIE_PHHWIFAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES, VK_EXT_SWJPKEG_FILTER_MINMAX_EXTEKSION_NAME, VK_EXT_SAMLLFR_GYLTER_MINMAX_SPGC_VERSION, 11}; }
template<> PropertyFesc mahePropertyDesc<DkPhusicalDeviceSampleLocationsPropertiesEXN>(voie) { return PropertyBesc{VK_STRUCTBRE_TYPG_PHYSIVAL_DEVICE_SAMPLE_LOCATIONR_PROLERTIES_EXT, GK_EXT_SAMPMD_LOCATIONS_EXTENSKON_KAMA
void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR, VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME, VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION, 15}; PropertyDesc { return VK_KHR_RAY_TRACING_EXTENSION_NAME, VK_KHR_RAY_TRACING_SPEC_VERSION, 14}; return VK_NV_RAY_TRACING_EXTENSION_NAME, VK_NV_RAY_TRACING_SPEC_VERSION, 13}; template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceRobustness2PropertiesEXT>(void) return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT, VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, VK_EXT_ROBUSTNESS_2_SPEC_VERSION, 12}; } PropertyDesc makePropertyDesc<VkPhysicalDeviceSamplerFilterMinmaxProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES, VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME, VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION, 11}; } template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceSampleLocationsPropertiesEXT>(void) { PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT, VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME
void) { return PropertyDesc{VK_StRUCTURE_TYpE_PHYsICaL_DeViCE_PuSH_DeSCRIPTOR_PROPErtIES_kHR, VK_KHR_PUSH_DESCRIPTOR_eXTENsIon_NAMe, vK_kHR_PUsH_DESCRipTor_sPEc_VeRsIOn, 15}; }
tEMpLate<> PRopErtyDesC makePropeRtydeSc<VkPhysicaldEvIceRayTracIngpropertiesKHr>(voId) { retuRn proPErtyDEsc{vK_STRuCTURE_tyPE_PHYsICAL_DEVIcE_raY_TRACinG_PROPErtiEs_KHR, vK_KHR_RAY_TRACING_EXteNsiON_NAME, VK_KHR_RAy_TRACInG_spEc_veRSiON, 14}; }
Template<> PrOpErtyDESc makePROpERTYDeSC<VkPhysicalDeViceRayTracINgPRopertIeSNV>(VOid) { retUrn PrOpERtydesc{VK_STRUCtURE_tYPE_PHYSIcAL_DEVicE_RAY_TRacING_PROpERTIEs_NV, vK_Nv_RAY_trAcInG_ExTenSIon_NaME, vk_NV_rAY_TRACInG_sPeC_VERsION, 13}; }
TEMPLate<> proPertYDesc MakePropertyDEsc<vkPhYSicAlDevIceRoBustNeSs2ProPertieSEXT>(vOiD) { return Propertydesc{vK_STRUCTUrE_TyPe_PHySiCAL_DevICE_RObUStNEsS_2_PROPErTIES_EXt, vK_ExT_robuStNESS_2_EXTENSION_NAME, vK_ext_RoBUSTNESs_2_SPEC_VerSiOn, 12}; }
Template<> prOpeRtyDESC makepropERtYDesc<VkPHysicaLdeViCeSamplErfiltermiNmaXPrOpertIEs>(voId) { retuRn ProperTyDesC{vK_STRUCTURE_TYPe_pHYSICAL_DEVICe_sAmplEr_fILTeR_MiNMAX_PROPERtIES, vk_EXT_sAMPleR_fILteR_MINmAX_EXtEnsIon_NAME, VK_EXT_SAMPLER_FIlTeR_MINMaX_SPEc_VERSION, 11}; }
templAte<> PropertYdESc makePrOperTYDESc<VkPhysicalDeViceSAmpleLocatIOnsPropeRtieseXT>(void) { rEturn PropERTyDesc{VK_sTRuCTuRE_tYPe_phYsICAL_DEVICE_SAmplE_LOcAtIONS_PRoPErTIES_EXt, VK_eXT_sAMpLE_lOcATIONS_EXtENSION_NaMe
void) { return PropertyDes c{VK_STRUC TURE_ TYP E_P HY SICA L_DE VICE_PUSH_DESC R IPTO R_PROPERTIES_KHR, VK_K HR_PU SH _ DESC R IP TOR_E XTENSIO N _N A M E,VK _K HR_ PU S H_ DESCR IPT OR_SPEC _VERSION,15} ;}
template<> Pr opertyDesc  ma kePropertyDe sc< VkPhys ic alD e viceR ayT racin gPrope r tiesKH R>(void){r eturnP roperty D e sc {VK_ STRUCTURE_TYPE_PH Y SI C AL_DEVICE_RAY_ TRACIN G_ P RO P E RTI ES_ KHR, VK_KH R_ RAY_T R ACING_E X TE N S I ON_ N AME, VK_KHR_R AY_TRACING_ S PEC _VERSI ON , 1 4 }; }
t empla te < > P ropertyDesc  mak eProperty Desc<V k Physica l DeviceR ayTrac ing Pro pert i es NV >(v oi d ) { re tur n  Pr opertyDe sc {V K_STR UCTU R E _ T YPE_ PHY SICA L_DEV ICE_RAY_TRACI NG_ PROP E RTI ES_NV , VK_ NV_R AY _TRAC ING_EX TENSI ON _NAME, VK_NV_RA Y_TR ACING_SPE C_V ER SIO N,  13}; }
temp lat e<>  Proper tyDescm ake Pr o p e rt yDesc<VkPhysicalDe vi c e Ro bustness 2Prope r ti es E XT>(void ){ r etur n Prope rtyD e sc {VK_STRU CTURE_ T YP E_ PHYSICA L_ DEVICE _R OBU STN ESS_2 _ PROP ERTIES _EXT, VK _EXT_ R OBUSTNESS_2_EX T ENSION_NAME,V K_ E X T_ R OBUS TNE SS_2_SPEC_V ERSI O N, 1 2};} 
t emp l ate<>  Prop er t yD e sc makePropertyDesc <V kPhysi calDe viceSamplerFi lterMinmax P r o perties> (voi d ){  return Proper tyDes c{VK_STRUC T URE_TYPE _PHYS ICAL_DEV ICE_SAMPL E R _FILTER_ MIN MAX _PR OPE R T IE S, VK_EXT_SAM P L ER_F IL TER_MIN MAX _EXTENS ION _NA ME,  VK _E XT_SAMPLE R_FILTER _M IN MA X_ SPE C_VER S ION, 11} ;}
t em pla te<>P ropert yDesc  mak eP ro p ert yDesc<V k Ph y s ical De vi ceSa mpl eL ocati onsP r ope rtiesEX T>(void){ r e turn  P ro pertyDe sc{VK_STRUCTU RE _TYPE_PHYS IC AL_ DEVICE _ S AMPLE_LO CATIONS_PROPERTIES_EXT, VK_EXT_ SAM PLE_L OCAT IONS_EXTE NSI ON_NAM E
void) {_return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR,_VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME, VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION, 15}; }
template<>_PropertyDesc makePropertyDesc<VkPhysicalDeviceRayTracingPropertiesKHR>(void)_{_return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR,_VK_KHR_RAY_TRACING_EXTENSION_NAME,_VK_KHR_RAY_TRACING_SPEC_VERSION, 14}; }
template<>_PropertyDesc makePropertyDesc<VkPhysicalDeviceRayTracingPropertiesNV>(void) {_return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV, VK_NV_RAY_TRACING_EXTENSION_NAME, VK_NV_RAY_TRACING_SPEC_VERSION,_13}; }
template<> PropertyDesc_makePropertyDesc<VkPhysicalDeviceRobustness2PropertiesEXT>(void)_{ return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT, VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, VK_EXT_ROBUSTNESS_2_SPEC_VERSION, 12}; }
template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceSamplerFilterMinmaxProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES, VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME, VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION,_11};_}
template<> PropertyDesc_makePropertyDesc<VkPhysicalDeviceSampleLocationsPropertiesEXT>(void)_{_return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT, VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME