{ "$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" ] } } }