/* WARNING: This is auto-generated file. Do not modify, since changes will * be lost! Modify the generating script instead. * This file was generated by /scripts/gen_framework.py */ #include "vkDeviceProperties.hpp" namespace vk { #define DECL_SUBGROUP_EXTENSION_NAME "core_property" #define DECL_PROTECTED_MEMORY_EXTENSION_NAME "core_property" template<> void initPropertyFromBlob(VkPhysicalDeviceDriverProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs) { propertyType.driverID = allPropertiesBlobs.vk12.driverID; memcpy(propertyType.driverName, allPropertiesBlobs.vk12.driverName, sizeof(char) * VK_MAX_DRIVER_NAME_SIZE); memcpy(propertyType.driverInfo, allPropertiesBlobs.vk12.driverInfo, sizeof(char) * VK_MAX_DRIVER_INFO_SIZE); propertyType.conformanceVersion = allPropertiesBlobs.vk12.conformanceVersion; } template<> void initPropertyFromBlob(VkPhysicalDeviceIDProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs) { memcpy(propertyType.deviceUUID, allPropertiesBlobs.vk11.deviceUUID, sizeof(uint8_t) * VK_UUID_SIZE); memcpy(propertyType.driverUUID, allPropertiesBlobs.vk11.driverUUID, sizeof(uint8_t) * VK_UUID_SIZE); memcpy(propertyType.deviceLUID, allPropertiesBlobs.vk11.deviceLUID, sizeof(uint8_t) * VK_LUID_SIZE); propertyType.deviceNodeMask = allPropertiesBlobs.vk11.deviceNodeMask; propertyType.deviceLUIDValid = allPropertiesBlobs.vk11.deviceLUIDValid; } template<> void initPropertyFromBlob(VkPhysicalDeviceMultiviewProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs) { propertyType.maxMultiviewViewCount = allPropertiesBlobs.vk11.maxMultiviewViewCount; propertyType.maxMultiviewInstanceIndex = allPropertiesBlobs.vk11.maxMultiviewInstanceIndex; } template<> void initPropertyFromBlob(VkPhysicalDeviceSubgroupProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs) { propertyType.subgroupSize = allPropertiesBlobs.vk11.subgroupSize; propertyType.supportedStages = allPropertiesBlobs.vk11.subgroupSupportedStages; propertyType.supportedOperations = allPropertiesBlobs.vk11.subgroupSupportedOperations; propertyType.quadOperationsInAllStages = allPropertiesBlobs.vk11.subgroupQuadOperationsInAllStages; } template<> void initPropertyFromBlob(VkPhysicalDevicePointClippingProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs) { propertyType.pointClippingBehavior = allPropertiesBlobs.vk11.pointClippingBehavior; } template<> void initPropertyFromBlob(VkPhysicalDeviceProtectedMemoryProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs) { propertyType.protectedNoFault = allPropertiesBlobs.vk11.protectedNoFault; } template<> void initPropertyFromBlob(VkPhysicalDeviceSamplerFilterMinmaxProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs) { propertyType.filterMinmaxSingleComponentFormats = allPropertiesBlobs.vk12.filterMinmaxSingleComponentFormats; propertyType.filterMinmaxImageComponentMapping = allPropertiesBlobs.vk12.filterMinmaxImageComponentMapping; } template<> void initPropertyFromBlob(VkPhysicalDeviceInlineUniformBlockProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs) { propertyType.maxInlineUniformBlockSize = allPropertiesBlobs.vk13.maxInlineUniformBlockSize; propertyType.maxPerStageDescriptorInlineUniformBlocks = allPropertiesBlobs.vk13.maxPerStageDescriptorInlineUniformBlocks; propertyType.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = allPropertiesBlobs.vk13.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks; propertyType.maxDescriptorSetInlineUniformBlocks = allPropertiesBlobs.vk13.maxDescriptorSetInlineUniformBlocks; propertyType.maxDescriptorSetUpdateAfterBindInlineUniformBlocks = allPropertiesBlobs.vk13.maxDescriptorSetUpdateAfterBindInlineUniformBlocks; } template<> void initPropertyFromBlob(VkPhysicalDeviceMaintenance3Properties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs) { propertyType.maxPerSetDescriptors = allPropertiesBlobs.vk11.maxPerSetDescriptors; propertyType.maxMemoryAllocationSize = allPropertiesBlobs.vk11.maxMemoryAllocationSize; } template<> void initPropertyFromBlob(VkPhysicalDeviceMaintenance4Properties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs) { propertyType.maxBufferSize = allPropertiesBlobs.vk13.maxBufferSize; } template<> void initPropertyFromBlob(VkPhysicalDeviceFloatControlsProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs) { propertyType.denormBehaviorIndependence = allPropertiesBlobs.vk12.denormBehaviorIndependence; propertyType.roundingModeIndependence = allPropertiesBlobs.vk12.roundingModeIndependence; propertyType.shaderSignedZeroInfNanPreserveFloat16 = allPropertiesBlobs.vk12.shaderSignedZeroInfNanPreserveFloat16; propertyType.shaderSignedZeroInfNanPreserveFloat32 = allPropertiesBlobs.vk12.shaderSignedZeroInfNanPreserveFloat32; propertyType.shaderSignedZeroInfNanPreserveFloat64 = allPropertiesBlobs.vk12.shaderSignedZeroInfNanPreserveFloat64; propertyType.shaderDenormPreserveFloat16 = allPropertiesBlobs.vk12.shaderDenormPreserveFloat16; propertyType.shaderDenormPreserveFloat32 = allPropertiesBlobs.vk12.shaderDenormPreserveFloat32; propertyType.shaderDenormPreserveFloat64 = allPropertiesBlobs.vk12.shaderDenormPreserveFloat64; propertyType.shaderDenormFlushToZeroFloat16 = allPropertiesBlobs.vk12.shaderDenormFlushToZeroFloat16; propertyType.shaderDenormFlushToZeroFloat32 = allPropertiesBlobs.vk12.shaderDenormFlushToZeroFloat32; propertyType.shaderDenormFlushToZeroFloat64 = allPropertiesBlobs.vk12.shaderDenormFlushToZeroFloat64; propertyType.shaderRoundingModeRTEFloat16 = allPropertiesBlobs.vk12.shaderRoundingModeRTEFloat16; propertyType.shaderRoundingModeRTEFloat32 = allPropertiesBlobs.vk12.shaderRoundingModeRTEFloat32; propertyType.shaderRoundingModeRTEFloat64 = allPropertiesBlobs.vk12.shaderRoundingModeRTEFloat64; propertyType.shaderRoundingModeRTZFloat16 = allPropertiesBlobs.vk12.shaderRoundingModeRTZFloat16; propertyType.shaderRoundingModeRTZFloat32 = allPropertiesBlobs.vk12.shaderRoundingModeRTZFloat32; propertyType.shaderRoundingModeRTZFloat64 = allPropertiesBlobs.vk12.shaderRoundingModeRTZFloat64; } template<> void initPropertyFromBlob(VkPhysicalDeviceDescriptorIndexingProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs) { propertyType.maxUpdateAfterBindDescriptorsInAllPools = allPropertiesBlobs.vk12.maxUpdateAfterBindDescriptorsInAllPools; propertyType.shaderUniformBufferArrayNonUniformIndexingNative = allPropertiesBlobs.vk12.shaderUniformBufferArrayNonUniformIndexingNative; propertyType.shaderSampledImageArrayNonUniformIndexingNative = allPropertiesBlobs.vk12.shaderSampledImageArrayNonUniformIndexingNative; propertyType.shaderStorageBufferArrayNonUniformIndexingNative = allPropertiesBlobs.vk12.shaderStorageBufferArrayNonUniformIndexingNative; propertyType.shaderStorageImageArrayNonUniformIndexingNative = allPropertiesBlobs.vk12.shaderStorageImageArrayNonUniformIndexingNative; propertyType.shaderInputAttachmentArrayNonUniformIndexingNative = allPropertiesBlobs.vk12.shaderInputAttachmentArrayNonUniformIndexingNative; propertyType.robustBufferAccessUpdateAfterBind = allPropertiesBlobs.vk12.robustBufferAccessUpdateAfterBind; propertyType.quadDivergentImplicitLod = allPropertiesBlobs.vk12.quadDivergentImplicitLod; propertyType.maxPerStageDescriptorUpdateAfterBindSamplers = allPropertiesBlobs.vk12.maxPerStageDescriptorUpdateAfterBindSamplers; propertyType.maxPerStageDescriptorUpdateAfterBindUniformBuffers = allPropertiesBlobs.vk12.maxPerStageDescriptorUpdateAfterBindUniformBuffers; propertyType.maxPerStageDescriptorUpdateAfterBindStorageBuffers = allPropertiesBlobs.vk12.maxPerStageDescriptorUpdateAfterBindStorageBuffers; propertyType.maxPerStageDescriptorUpdateAfterBindSampledImages = allPropertiesBlobs.vk12.maxPerStageDescriptorUpdateAfterBindSampledImages; propertyType.maxPerStageDescriptorUpdateAfterBindStorageImages = allPropertiesBlobs.vk12.maxPerStageDescriptorUpdateAfterBindStorageImages; propertyType.maxPerStageDescriptorUpdateAfterBindInputAttachments = allPropertiesBlobs.vk12.maxPerStageDescriptorUpdateAfterBindInputAttachments; propertyType.maxPerStageUpdateAfterBindResources = allPropertiesBlobs.vk12.maxPerStageUpdateAfterBindResources; propertyType.maxDescriptorSetUpdateAfterBindSamplers = allPropertiesBlobs.vk12.maxDescriptorSetUpdateAfterBindSamplers; propertyType.maxDescriptorSetUpdateAfterBindUniformBuffers = allPropertiesBlobs.vk12.maxDescriptorSetUpdateAfterBindUniformBuffers; propertyType.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = allPropertiesBlobs.vk12.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic; propertyType.maxDescriptorSetUpdateAfterBindStorageBuffers = allPropertiesBlobs.vk12.maxDescriptorSetUpdateAfterBindStorageBuffers; propertyType.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = allPropertiesBlobs.vk12.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic; propertyType.maxDescriptorSetUpdateAfterBindSampledImages = allPropertiesBlobs.vk12.maxDescriptorSetUpdateAfterBindSampledImages; propertyType.maxDescriptorSetUpdateAfterBindStorageImages = allPropertiesBlobs.vk12.maxDescriptorSetUpdateAfterBindStorageImages; propertyType.maxDescriptorSetUpdateAfterBindInputAttachments = allPropertiesBlobs.vk12.maxDescriptorSetUpdateAfterBindInputAttachments; } template<> void initPropertyFromBlob(VkPhysicalDeviceTimelineSemaphoreProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs) { propertyType.maxTimelineSemaphoreValueDifference = allPropertiesBlobs.vk12.maxTimelineSemaphoreValueDifference; } template<> void initPropertyFromBlob(VkPhysicalDeviceDepthStencilResolveProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs) { propertyType.supportedDepthResolveModes = allPropertiesBlobs.vk12.supportedDepthResolveModes; propertyType.supportedStencilResolveModes = allPropertiesBlobs.vk12.supportedStencilResolveModes; propertyType.independentResolveNone = allPropertiesBlobs.vk12.independentResolveNone; propertyType.independentResolve = allPropertiesBlobs.vk12.independentResolve; } template<> void initPropertyFromBlob(VkPhysicalDeviceTexelBufferAlignmentProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs) { propertyType.storageTexelBufferOffsetAlignmentBytes = allPropertiesBlobs.vk13.storageTexelBufferOffsetAlignmentBytes; propertyType.storageTexelBufferOffsetSingleTexelAlignment = allPropertiesBlobs.vk13.storageTexelBufferOffsetSingleTexelAlignment; propertyType.uniformTexelBufferOffsetAlignmentBytes = allPropertiesBlobs.vk13.uniformTexelBufferOffsetAlignmentBytes; propertyType.uniformTexelBufferOffsetSingleTexelAlignment = allPropertiesBlobs.vk13.uniformTexelBufferOffsetSingleTexelAlignment; } template<> void initPropertyFromBlob(VkPhysicalDeviceSubgroupSizeControlProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs) { propertyType.minSubgroupSize = allPropertiesBlobs.vk13.minSubgroupSize; propertyType.maxSubgroupSize = allPropertiesBlobs.vk13.maxSubgroupSize; propertyType.maxComputeWorkgroupSubgroups = allPropertiesBlobs.vk13.maxComputeWorkgroupSubgroups; propertyType.requiredSubgroupSizeStages = allPropertiesBlobs.vk13.requiredSubgroupSizeStages; } template<> void initPropertyFromBlob(VkPhysicalDeviceShaderIntegerDotProductProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs) { propertyType.integerDotProduct8BitUnsignedAccelerated = allPropertiesBlobs.vk13.integerDotProduct8BitUnsignedAccelerated; propertyType.integerDotProduct8BitSignedAccelerated = allPropertiesBlobs.vk13.integerDotProduct8BitSignedAccelerated; propertyType.integerDotProduct8BitMixedSignednessAccelerated = allPropertiesBlobs.vk13.integerDotProduct8BitMixedSignednessAccelerated; propertyType.integerDotProduct4x8BitPackedUnsignedAccelerated = allPropertiesBlobs.vk13.integerDotProduct4x8BitPackedUnsignedAccelerated; propertyType.integerDotProduct4x8BitPackedSignedAccelerated = allPropertiesBlobs.vk13.integerDotProduct4x8BitPackedSignedAccelerated; propertyType.integerDotProduct4x8BitPackedMixedSignednessAccelerated = allPropertiesBlobs.vk13.integerDotProduct4x8BitPackedMixedSignednessAccelerated; propertyType.integerDotProduct16BitUnsignedAccelerated = allPropertiesBlobs.vk13.integerDotProduct16BitUnsignedAccelerated; propertyType.integerDotProduct16BitSignedAccelerated = allPropertiesBlobs.vk13.integerDotProduct16BitSignedAccelerated; propertyType.integerDotProduct16BitMixedSignednessAccelerated = allPropertiesBlobs.vk13.integerDotProduct16BitMixedSignednessAccelerated; propertyType.integerDotProduct32BitUnsignedAccelerated = allPropertiesBlobs.vk13.integerDotProduct32BitUnsignedAccelerated; propertyType.integerDotProduct32BitSignedAccelerated = allPropertiesBlobs.vk13.integerDotProduct32BitSignedAccelerated; propertyType.integerDotProduct32BitMixedSignednessAccelerated = allPropertiesBlobs.vk13.integerDotProduct32BitMixedSignednessAccelerated; propertyType.integerDotProduct64BitUnsignedAccelerated = allPropertiesBlobs.vk13.integerDotProduct64BitUnsignedAccelerated; propertyType.integerDotProduct64BitSignedAccelerated = allPropertiesBlobs.vk13.integerDotProduct64BitSignedAccelerated; propertyType.integerDotProduct64BitMixedSignednessAccelerated = allPropertiesBlobs.vk13.integerDotProduct64BitMixedSignednessAccelerated; propertyType.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated = allPropertiesBlobs.vk13.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated; propertyType.integerDotProductAccumulatingSaturating8BitSignedAccelerated = allPropertiesBlobs.vk13.integerDotProductAccumulatingSaturating8BitSignedAccelerated; propertyType.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = allPropertiesBlobs.vk13.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated; propertyType.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = allPropertiesBlobs.vk13.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated; propertyType.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = allPropertiesBlobs.vk13.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated; propertyType.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = allPropertiesBlobs.vk13.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated; propertyType.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated = allPropertiesBlobs.vk13.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated; propertyType.integerDotProductAccumulatingSaturating16BitSignedAccelerated = allPropertiesBlobs.vk13.integerDotProductAccumulatingSaturating16BitSignedAccelerated; propertyType.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = allPropertiesBlobs.vk13.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated; propertyType.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated = allPropertiesBlobs.vk13.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated; propertyType.integerDotProductAccumulatingSaturating32BitSignedAccelerated = allPropertiesBlobs.vk13.integerDotProductAccumulatingSaturating32BitSignedAccelerated; propertyType.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = allPropertiesBlobs.vk13.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated; propertyType.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated = allPropertiesBlobs.vk13.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated; propertyType.integerDotProductAccumulatingSaturating64BitSignedAccelerated = allPropertiesBlobs.vk13.integerDotProductAccumulatingSaturating64BitSignedAccelerated; propertyType.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = allPropertiesBlobs.vk13.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated; } // generic template is not enough for some compilers template<> void initPropertyFromBlob(VkPhysicalDeviceMemoryProperties&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceSparseProperties&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceMultiDrawPropertiesEXT&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceMemoryProperties2&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDevicePushDescriptorPropertiesKHR&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceGroupProperties&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceDiscardRectanglePropertiesEXT&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceSampleLocationsPropertiesEXT&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceExternalMemoryHostPropertiesEXT&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceConservativeRasterizationPropertiesEXT&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceShaderCorePropertiesAMD&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceShaderCoreProperties2AMD&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDevicePCIBusInfoPropertiesEXT&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceTransformFeedbackPropertiesEXT&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceCopyMemoryIndirectPropertiesNV&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceMemoryDecompressionPropertiesNV&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceShadingRateImagePropertiesNV&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceMeshShaderPropertiesNV&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceMeshShaderPropertiesEXT&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceAccelerationStructurePropertiesKHR&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceRayTracingPipelinePropertiesKHR&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceRayTracingPropertiesNV&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceFragmentDensityMapPropertiesEXT&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceFragmentDensityMap2PropertiesEXT&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceMemoryBudgetPropertiesEXT&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceCooperativeMatrixPropertiesNV&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDevicePerformanceQueryPropertiesKHR&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceShaderSMBuiltinsPropertiesNV&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceSubpassShadingPropertiesHUAWEI&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceLineRasterizationPropertiesEXT&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceToolProperties&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceCustomBorderColorPropertiesEXT&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceExtendedDynamicState3PropertiesEXT&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceRobustness2PropertiesEXT&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDevicePortabilitySubsetPropertiesKHR&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceFragmentShadingRatePropertiesKHR&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceProvokingVertexPropertiesEXT&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceDescriptorBufferPropertiesEXT&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceDrmPropertiesEXT&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceOpacityMicromapPropertiesEXT&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDevicePipelinePropertiesFeaturesEXT&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDevicePipelineRobustnessPropertiesEXT&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceImageProcessingPropertiesQCOM&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceTilePropertiesFeaturesQCOM&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceOpticalFlowPropertiesNV&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV&, const AllPropertiesBlobs&) {} template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT, VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION, 65}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION, 64}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT, VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME, VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION, 63}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR, VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME, VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION, 62}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR, VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME, VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION, 61}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX, VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME, VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION, 60}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT, VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME, VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION, 59}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT, VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME, VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION, 58}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR, VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME, VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION, 57}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR, VK_KHR_MAINTENANCE_2_EXTENSION_NAME, VK_KHR_MAINTENANCE_2_SPEC_VERSION, 56}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT, VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME, VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION, 55}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION, 54}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT, VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME, VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION, 53}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION, 52}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR, VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME, VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION, 51}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR, VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME, VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION, 50}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV, VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME, VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION, 49}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION, 48}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR, VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME, VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION, 47}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV, VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME, VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION, 46}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV, VK_NV_RAY_TRACING_EXTENSION_NAME, VK_NV_RAY_TRACING_SPEC_VERSION, 45}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR, VK_KHR_MAINTENANCE_3_EXTENSION_NAME, VK_KHR_MAINTENANCE_3_SPEC_VERSION, 44}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT, VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME, VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION, 43}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD, VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME, VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION, 42}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION, 41}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR, VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME, VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION, 40}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR, VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME, VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION, 39}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR, VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME, VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION, 38}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION, 37}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR, VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME, VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION, 36}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT, VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, VK_EXT_PCI_BUS_INFO_SPEC_VERSION, 35}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION, 34}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION, 33}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR, VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME, VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION, 32}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD, VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME, VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION, 31}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION, 30}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT, VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME, VK_EXT_PROVOKING_VERTEX_SPEC_VERSION, 29}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT, VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME, VK_EXT_LINE_RASTERIZATION_SPEC_VERSION, 28}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV, VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME, VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION, 27}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR, VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME, VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION, 26}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT, VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME, VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION, 25}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT, VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, VK_EXT_ROBUSTNESS_2_SPEC_VERSION, 24}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT, VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION, 23}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT, VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME, VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION, 22}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT, VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME, VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION, 21}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR, VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME, VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION, 20}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION, 19}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT, VK_EXT_MESH_SHADER_EXTENSION_NAME, VK_EXT_MESH_SHADER_SPEC_VERSION, 18}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION, 17}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT, VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME, VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION, 16}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI, VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME, VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION, 15}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT, VK_EXT_MULTI_DRAW_EXTENSION_NAME, VK_EXT_MULTI_DRAW_SPEC_VERSION, 14}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT, VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME, VK_EXT_OPACITY_MICROMAP_SPEC_VERSION, 13}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR, VK_KHR_MAINTENANCE_4_EXTENSION_NAME, VK_KHR_MAINTENANCE_4_SPEC_VERSION, 12}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM, VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME, VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION, 11}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV, VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME, VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION, 10}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV, VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME, VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION, 9}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM, VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME, VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION, 8}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT, VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME, VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION, 7}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT, VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME, VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION, 6}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV, VK_NV_OPTICAL_FLOW_EXTENSION_NAME, VK_NV_OPTICAL_FLOW_SPEC_VERSION, 5}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV, VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME, VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION, 4}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM, VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME, VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION, 3}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES, DECL_SUBGROUP_EXTENSION_NAME, 0, 2}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 1}; } static const PropertyStructCreationData propertyStructCreationArray[] = { { createPropertyStructWrapper, VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION }, { createPropertyStructWrapper, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION }, { createPropertyStructWrapper, VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME, VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION }, { createPropertyStructWrapper, VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME, VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION }, { createPropertyStructWrapper, VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME, VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION }, { createPropertyStructWrapper, VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME, VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION }, { createPropertyStructWrapper, VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME, VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION }, { createPropertyStructWrapper, VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME, VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION }, { createPropertyStructWrapper, VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME, VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION }, { createPropertyStructWrapper, VK_KHR_MAINTENANCE_2_EXTENSION_NAME, VK_KHR_MAINTENANCE_2_SPEC_VERSION }, { createPropertyStructWrapper, VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME, VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION }, { createPropertyStructWrapper, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION }, { createPropertyStructWrapper, VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME, VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION }, { createPropertyStructWrapper, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION }, { createPropertyStructWrapper, VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME, VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION }, { createPropertyStructWrapper, VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME, VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION }, { createPropertyStructWrapper, VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME, VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION }, { createPropertyStructWrapper, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION }, { createPropertyStructWrapper, VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME, VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION }, { createPropertyStructWrapper, VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME, VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION }, { createPropertyStructWrapper, VK_NV_RAY_TRACING_EXTENSION_NAME, VK_NV_RAY_TRACING_SPEC_VERSION }, { createPropertyStructWrapper, VK_KHR_MAINTENANCE_3_EXTENSION_NAME, VK_KHR_MAINTENANCE_3_SPEC_VERSION }, { createPropertyStructWrapper, VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME, VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION }, { createPropertyStructWrapper, VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME, VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION }, { createPropertyStructWrapper, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION }, { createPropertyStructWrapper, VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME, VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION }, { createPropertyStructWrapper, VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME, VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION }, { createPropertyStructWrapper, VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME, VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION }, { createPropertyStructWrapper, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION }, { createPropertyStructWrapper, VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME, VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION }, { createPropertyStructWrapper, VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, VK_EXT_PCI_BUS_INFO_SPEC_VERSION }, { createPropertyStructWrapper, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION }, { createPropertyStructWrapper, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION }, { createPropertyStructWrapper, VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME, VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION }, { createPropertyStructWrapper, VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME, VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION }, { createPropertyStructWrapper, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION }, { createPropertyStructWrapper, VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME, VK_EXT_PROVOKING_VERTEX_SPEC_VERSION }, { createPropertyStructWrapper, VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME, VK_EXT_LINE_RASTERIZATION_SPEC_VERSION }, { createPropertyStructWrapper, VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME, VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION }, { createPropertyStructWrapper, VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME, VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION }, { createPropertyStructWrapper, VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME, VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION }, { createPropertyStructWrapper, VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, VK_EXT_ROBUSTNESS_2_SPEC_VERSION }, { createPropertyStructWrapper, VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION }, { createPropertyStructWrapper, VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME, VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION }, { createPropertyStructWrapper, VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME, VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION }, { createPropertyStructWrapper, VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME, VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION }, { createPropertyStructWrapper, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION }, { createPropertyStructWrapper, VK_EXT_MESH_SHADER_EXTENSION_NAME, VK_EXT_MESH_SHADER_SPEC_VERSION }, { createPropertyStructWrapper, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION }, { createPropertyStructWrapper, VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME, VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION }, { createPropertyStructWrapper, VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME, VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION }, { createPropertyStructWrapper, VK_EXT_MULTI_DRAW_EXTENSION_NAME, VK_EXT_MULTI_DRAW_SPEC_VERSION }, { createPropertyStructWrapper, VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME, VK_EXT_OPACITY_MICROMAP_SPEC_VERSION }, { createPropertyStructWrapper, VK_KHR_MAINTENANCE_4_EXTENSION_NAME, VK_KHR_MAINTENANCE_4_SPEC_VERSION }, { createPropertyStructWrapper, VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME, VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION }, { createPropertyStructWrapper, VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME, VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION }, { createPropertyStructWrapper, VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME, VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION }, { createPropertyStructWrapper, VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME, VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION }, { createPropertyStructWrapper, VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME, VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION }, { createPropertyStructWrapper, VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME, VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION }, { createPropertyStructWrapper, VK_NV_OPTICAL_FLOW_EXTENSION_NAME, VK_NV_OPTICAL_FLOW_SPEC_VERSION }, { createPropertyStructWrapper, VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME, VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION }, { createPropertyStructWrapper, VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME, VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION }, { createPropertyStructWrapper, DECL_SUBGROUP_EXTENSION_NAME, 0 }, { createPropertyStructWrapper, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0 }, }; deUint32 getBlobPropertiesVersion (VkStructureType sType) { const std::map sTypeBlobMap { // Vulkan11 { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR, VK_API_VERSION_1_1 }, { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR, VK_API_VERSION_1_1 }, { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR, VK_API_VERSION_1_1 }, { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR, VK_API_VERSION_1_1 }, { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES, VK_API_VERSION_1_1 }, { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES, VK_API_VERSION_1_1 }, // Vulkan12 { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR, VK_API_VERSION_1_2 }, { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT, VK_API_VERSION_1_2 }, { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR, VK_API_VERSION_1_2 }, { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR, VK_API_VERSION_1_2 }, { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT, VK_API_VERSION_1_2 }, { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR, VK_API_VERSION_1_2 }, // Vulkan13 { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT, VK_API_VERSION_1_3 }, { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR, VK_API_VERSION_1_3 }, { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR, VK_API_VERSION_1_3 }, { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT, VK_API_VERSION_1_3 }, { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT, VK_API_VERSION_1_3 }, }; auto it = sTypeBlobMap.find(sType); if(it == sTypeBlobMap.end()) return 0; return it->second; } } // vk