| { |
| "$schema": "https://schema.khronos.org/vulkan/profiles-0.8.1-204.json#", |
| "capabilities": { |
| "vulkan10requirements": { |
| "features": { |
| "VkPhysicalDeviceFeatures": { |
| "robustBufferAccess": true |
| } |
| } |
| }, |
| "vulkan10requirements_roadmap2022": { |
| "features": { |
| "VkPhysicalDeviceFeatures": { |
| "fullDrawIndexUint32": true, |
| "imageCubeArray": true, |
| "independentBlend": true, |
| "sampleRateShading": true, |
| "drawIndirectFirstInstance": true, |
| "depthClamp": true, |
| "depthBiasClamp": true, |
| "samplerAnisotropy": true, |
| "occlusionQueryPrecise": true, |
| "fragmentStoresAndAtomics": true, |
| "shaderStorageImageExtendedFormats": true, |
| "shaderUniformBufferArrayDynamicIndexing": true, |
| "shaderSampledImageArrayDynamicIndexing": true, |
| "shaderStorageBufferArrayDynamicIndexing": true, |
| "shaderStorageImageArrayDynamicIndexing": true |
| } |
| }, |
| "properties": { |
| "VkPhysicalDeviceProperties": { |
| "limits": { |
| "maxImageDimension1D": 8192, |
| "maxImageDimension2D": 8192, |
| "maxImageDimensionCube": 8192, |
| "maxImageArrayLayers": 2048, |
| "maxUniformBufferRange": 65536, |
| "bufferImageGranularity": 4096, |
| "maxPerStageDescriptorSamplers": 64, |
| "maxPerStageDescriptorUniformBuffers": 15, |
| "maxPerStageDescriptorStorageBuffers": 30, |
| "maxPerStageDescriptorSampledImages": 200, |
| "maxPerStageDescriptorStorageImages": 16, |
| "maxPerStageResources": 200, |
| "maxDescriptorSetSamplers": 576, |
| "maxDescriptorSetUniformBuffers": 90, |
| "maxDescriptorSetStorageBuffers": 96, |
| "maxDescriptorSetSampledImages": 1800, |
| "maxDescriptorSetStorageImages": 144, |
| "maxFragmentCombinedOutputResources": 16, |
| "maxComputeWorkGroupInvocations": 256, |
| "maxComputeWorkGroupSize": [ 256, 256, 64 ], |
| "subTexelPrecisionBits": 8, |
| "mipmapPrecisionBits": 6, |
| "maxSamplerLodBias": 14, |
| "standardSampleLocations": true, |
| "maxColorAttachments": 7 |
| } |
| } |
| } |
| }, |
| "vulkan10optionals_roadmap2022": { |
| "features": { |
| "VkPhysicalDeviceFeatures": { |
| "largePoints": true, |
| "wideLines": true |
| } |
| }, |
| "properties": { |
| "VkPhysicalDeviceProperties": { |
| "limits": { |
| "pointSizeGranularity": 0.125, |
| "lineWidthGranularity": 0.5 |
| } |
| } |
| } |
| }, |
| "vulkan11requirements": { |
| "features": { |
| "VkPhysicalDeviceVulkan11Features": { |
| "multiview": true |
| } |
| }, |
| "properties": { |
| "VkPhysicalDeviceVulkan11Properties": { |
| "maxMultiviewViewCount": 6, |
| "maxMultiviewInstanceIndex": 134217727 |
| } |
| } |
| }, |
| "vulkan11requirements_roadmap2022": { |
| "features": { |
| "VkPhysicalDeviceVulkan11Features": { |
| "samplerYcbcrConversion": true |
| } |
| }, |
| "properties": { |
| "VkPhysicalDeviceVulkan11Properties": { |
| "subgroupSize": 4, |
| "subgroupSupportedStages": [ "VK_SHADER_STAGE_COMPUTE_BIT", "VK_SHADER_STAGE_FRAGMENT_BIT" ], |
| "subgroupSupportedOperations": [ "VK_SUBGROUP_FEATURE_BASIC_BIT", "VK_SUBGROUP_FEATURE_VOTE_BIT", "VK_SUBGROUP_FEATURE_ARITHMETIC_BIT", "VK_SUBGROUP_FEATURE_BALLOT_BIT", "VK_SUBGROUP_FEATURE_SHUFFLE_BIT", "VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT", "VK_SUBGROUP_FEATURE_QUAD_BIT" ] |
| } |
| } |
| }, |
| "vulkan12requirements": { |
| "features": { |
| "VkPhysicalDeviceVulkan12Features": { |
| "uniformBufferStandardLayout": true, |
| "subgroupBroadcastDynamicId": true, |
| "imagelessFramebuffer": true, |
| "separateDepthStencilLayouts": true, |
| "hostQueryReset": true, |
| "timelineSemaphore": true, |
| "shaderSubgroupExtendedTypes": true |
| } |
| }, |
| "properties": { |
| "VkPhysicalDeviceVulkan12Properties": { |
| "maxTimelineSemaphoreValueDifference": 2147483647 |
| } |
| } |
| }, |
| "vulkan12requirements_roadmap2022": { |
| "features": { |
| "VkPhysicalDeviceVulkan12Features": { |
| "samplerMirrorClampToEdge": true, |
| "descriptorIndexing": true, |
| "shaderUniformTexelBufferArrayDynamicIndexing": true, |
| "shaderStorageTexelBufferArrayDynamicIndexing": true, |
| "shaderUniformBufferArrayNonUniformIndexing": true, |
| "shaderSampledImageArrayNonUniformIndexing": true, |
| "shaderStorageBufferArrayNonUniformIndexing": true, |
| "shaderStorageImageArrayNonUniformIndexing": true, |
| "shaderUniformTexelBufferArrayNonUniformIndexing": true, |
| "shaderStorageTexelBufferArrayNonUniformIndexing": true, |
| "descriptorBindingSampledImageUpdateAfterBind": true, |
| "descriptorBindingStorageImageUpdateAfterBind": true, |
| "descriptorBindingStorageBufferUpdateAfterBind": true, |
| "descriptorBindingUniformTexelBufferUpdateAfterBind": true, |
| "descriptorBindingStorageTexelBufferUpdateAfterBind": true, |
| "descriptorBindingUpdateUnusedWhilePending": true, |
| "descriptorBindingPartiallyBound": true, |
| "descriptorBindingVariableDescriptorCount": true, |
| "runtimeDescriptorArray": true, |
| "scalarBlockLayout": true |
| } |
| }, |
| "properties": { |
| "VkPhysicalDeviceVulkan12Properties": { |
| "shaderSignedZeroInfNanPreserveFloat16": true, |
| "shaderSignedZeroInfNanPreserveFloat32": true, |
| "maxPerStageDescriptorUpdateAfterBindSamplers": 500000, |
| "maxPerStageDescriptorUpdateAfterBindUniformBuffers": 12, |
| "maxPerStageDescriptorUpdateAfterBindStorageBuffers": 500000, |
| "maxPerStageDescriptorUpdateAfterBindSampledImages": 500000, |
| "maxPerStageDescriptorUpdateAfterBindStorageImages": 500000, |
| "maxPerStageDescriptorUpdateAfterBindInputAttachments": 7, |
| "maxPerStageUpdateAfterBindResources": 500000, |
| "maxDescriptorSetUpdateAfterBindSamplers": 500000, |
| "maxDescriptorSetUpdateAfterBindUniformBuffers": 72, |
| "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic": 8, |
| "maxDescriptorSetUpdateAfterBindStorageBuffers": 500000, |
| "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic": 4, |
| "maxDescriptorSetUpdateAfterBindSampledImages": 500000, |
| "maxDescriptorSetUpdateAfterBindStorageImages": 500000, |
| "maxDescriptorSetUpdateAfterBindInputAttachments": 7 |
| } |
| } |
| }, |
| "vulkan13requirements": { |
| "features": { |
| "VkPhysicalDeviceVulkan12Features": { |
| "vulkanMemoryModel": true, |
| "vulkanMemoryModelDeviceScope": true, |
| "bufferDeviceAddress": true |
| }, |
| "VkPhysicalDeviceVulkan13Features": { |
| "robustImageAccess": true, |
| "shaderTerminateInvocation": true, |
| "shaderZeroInitializeWorkgroupMemory": true, |
| "synchronization2": true, |
| "shaderIntegerDotProduct": true, |
| "maintenance4": true, |
| "pipelineCreationCacheControl": true, |
| "subgroupSizeControl": true, |
| "computeFullSubgroups": true, |
| "shaderDemoteToHelperInvocation": true, |
| "inlineUniformBlock": true, |
| "dynamicRendering": true |
| } |
| }, |
| "properties": { |
| "VkPhysicalDeviceVulkan13Properties": { |
| "maxBufferSize": 1073741824, |
| "maxInlineUniformBlockSize": 256, |
| "maxPerStageDescriptorInlineUniformBlocks": 4, |
| "maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks": 4, |
| "maxDescriptorSetInlineUniformBlocks": 4, |
| "maxDescriptorSetUpdateAfterBindInlineUniformBlocks": 4, |
| "maxInlineUniformTotalSize": 256 |
| } |
| } |
| }, |
| "vulkan13requirements_1_2": { |
| "extensions": { |
| "VK_EXT_image_robustness": 1, |
| "VK_KHR_shader_non_semantic_info": 1, |
| "VK_KHR_shader_terminate_invocation": 1, |
| "VK_KHR_format_feature_flags2": 1, |
| "VK_KHR_zero_initialize_workgroup_memory": 1, |
| "VK_KHR_synchronization2": 1, |
| "VK_KHR_shader_integer_dot_product": 1, |
| "VK_KHR_maintenance4": 1, |
| "VK_EXT_4444_formats": 1, |
| "VK_EXT_extended_dynamic_state": 1, |
| "VK_EXT_extended_dynamic_state2": 1, |
| "VK_EXT_pipeline_creation_cache_control": 1, |
| "VK_EXT_subgroup_size_control": 1, |
| "VK_EXT_shader_demote_to_helper_invocation": 1, |
| "VK_EXT_inline_uniform_block": 1, |
| "VK_EXT_pipeline_creation_feedback": 1, |
| "VK_EXT_texel_buffer_alignment": 1, |
| "VK_EXT_ycbcr_2plane_444_formats": 1, |
| "VK_EXT_texture_compression_astc_hdr": 1, |
| "VK_EXT_tooling_info": 1, |
| "VK_EXT_private_data": 1, |
| "VK_KHR_dynamic_rendering": 1 |
| }, |
| "features": { |
| "VkPhysicalDeviceVulkan12Features": { |
| "vulkanMemoryModel": true, |
| "vulkanMemoryModelDeviceScope": true, |
| "vulkanMemoryModelAvailabilityVisibilityChains": true, |
| "bufferDeviceAddress": true |
| }, |
| "VkPhysicalDeviceImageRobustnessFeaturesEXT": { |
| "robustImageAccess": true |
| }, |
| "VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR": { |
| "shaderTerminateInvocation": true |
| }, |
| "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR": { |
| "shaderZeroInitializeWorkgroupMemory": true |
| }, |
| "VkPhysicalDeviceSynchronization2FeaturesKHR": { |
| "synchronization2": true |
| }, |
| "VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR": { |
| "shaderIntegerDotProduct": true |
| }, |
| "VkPhysicalDeviceMaintenance4FeaturesKHR": { |
| "maintenance4": true |
| }, |
| "VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT": { |
| "pipelineCreationCacheControl": true |
| }, |
| "VkPhysicalDeviceSubgroupSizeControlFeaturesEXT": { |
| "subgroupSizeControl": true, |
| "computeFullSubgroups": true |
| }, |
| "VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT": { |
| "shaderDemoteToHelperInvocation": true |
| }, |
| "VkPhysicalDeviceInlineUniformBlockFeaturesEXT": { |
| "inlineUniformBlock": true |
| } |
| }, |
| "properties": { |
| "VkPhysicalDeviceMaintenance4PropertiesKHR": { |
| "maxBufferSize": 1073741824 |
| }, |
| "VkPhysicalDeviceInlineUniformBlockPropertiesEXT": { |
| "maxInlineUniformBlockSize": 256, |
| "maxPerStageDescriptorInlineUniformBlocks": 4, |
| "maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks": 4, |
| "maxDescriptorSetInlineUniformBlocks": 4, |
| "maxDescriptorSetUpdateAfterBindInlineUniformBlocks": 4 |
| } |
| } |
| }, |
| "vulkan13requirements_roadmap2022": { |
| "extensions": { |
| "VK_KHR_global_priority": 1 |
| }, |
| "features": { |
| "VkPhysicalDeviceVulkan13Features": { |
| "descriptorBindingInlineUniformBlockUpdateAfterBind": true |
| } |
| } |
| }, |
| "vulkan13requirements_roadmap2022_1_2": { |
| "extensions": { |
| "VK_EXT_global_priority": 1, |
| "VK_EXT_inline_uniform_block": 1 |
| }, |
| "features": { |
| "VkPhysicalDeviceInlineUniformBlockFeaturesEXT": { |
| "descriptorBindingInlineUniformBlockUpdateAfterBind": true |
| } |
| } |
| } |
| }, |
| "profiles": { |
| "VP_KHR_roadmap_2022": { |
| "version": 1, |
| "api-version": "1.3.204", |
| "label": "Khronos Vulkan Roadmap 2022 profile", |
| "description": "This roadmap profile is intended to be supported by newer devices shipping in 2022 across mainstream smartphone, tablet, laptops, console and desktop devices.", |
| "contributors": { |
| "Tobias Hector": { |
| "company": "AMD", |
| "email": "tobias.hector@amd.com", |
| "contact": true |
| }, |
| "Christophe Riccio": { |
| "company": "LunarG", |
| "email": "christophe@lunarg.com", |
| "contact": true |
| } |
| }, |
| "history": [ |
| { |
| "revision": 7, |
| "date": "2022-11-16", |
| "author": "Christophe Riccio", |
| "comment": "Fix wideLines and largePoints that are optionals" |
| }, |
| { |
| "revision": 6, |
| "date": "2022-11-02", |
| "author": "Christophe Riccio", |
| "comment": "Fix roadmap 2022 maxInlineUniformTotalSize limit, 256 instead of 4" |
| }, |
| { |
| "revision": 5, |
| "date": "2022-05-02", |
| "author": "Christophe Riccio", |
| "comment": "Add missing dynamicRendering that is a Vulkan 1.3 requirement" |
| }, |
| { |
| "revision": 4, |
| "date": "2022-03-08", |
| "author": "Christophe Riccio", |
| "comment": "Refactor requirements per Vulkan API version" |
| }, |
| { |
| "revision": 3, |
| "date": "2022-03-08", |
| "author": "Christophe Riccio", |
| "comment": "Fix Vulkan 1.3.204 API version requirement" |
| }, |
| { |
| "revision": 2, |
| "date": "2022-01-03", |
| "author": "Christophe Riccio", |
| "comment": "Rebase against Vulkan 1.3.203 revision" |
| }, |
| { |
| "revision": 1, |
| "date": "2021-12-08", |
| "author": "Christophe Riccio", |
| "comment": "Initial revision" |
| } |
| ], |
| "capabilities": [ |
| "vulkan10requirements", |
| "vulkan10requirements_roadmap2022", |
| "vulkan11requirements", |
| "vulkan11requirements_roadmap2022", |
| "vulkan12requirements", |
| "vulkan12requirements_roadmap2022", |
| "vulkan13requirements", |
| "vulkan13requirements_roadmap2022" |
| ], |
| "optionals": [ |
| "vulkan10optionals_roadmap2022" |
| ] |
| } |
| } |
| } |