blob: b528ecac1c34feb6a80bfa649c85acba264303bb [file] [log] [blame]
{
"$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"
]
}
}
}