{ "$schema": "https://schema.khronos.org/vulkan/profiles-0.8.2-273.json#", "capabilities": { "MUST": { "extensions": { "VK_KHR_maintenance5": 1, "VK_KHR_shader_float16_int8": 1, "VK_KHR_16bit_storage": 1, "VK_KHR_vertex_attribute_divisor": 1, "VK_EXT_custom_border_color": 1, "VK_EXT_device_memory_report": 1, "VK_EXT_external_memory_acquire_unmodified": 1, "VK_EXT_index_type_uint8": 1, "VK_EXT_load_store_op_none": 1, "VK_EXT_primitive_topology_list_restart": 1, "VK_EXT_provoking_vertex": 1, "VK_EXT_scalar_block_layout": 1, "VK_EXT_surface_maintenance1": 1, "VK_EXT_swapchain_maintenance1": 1, "VK_EXT_4444_formats": 1, "VK_ANDROID_external_format_resolve": 1, "VK_GOOGLE_surfaceless_query": 1 }, "features": { "VkPhysicalDeviceFeatures": { "drawIndirectFirstInstance": true, "shaderImageGatherExtended": true, "shaderStorageImageExtendedFormats": true, "shaderStorageImageReadWithoutFormat": true, "shaderStorageImageWriteWithoutFormat": true, "samplerAnisotropy": true }, "VkPhysicalDeviceVulkan12Features": { "shaderFloat16": true, "shaderInt8": true }, "VkPhysicalDeviceCustomBorderColorFeaturesEXT": { "customBorderColors": true }, "VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT": { "primitiveTopologyListRestart": true }, "VkPhysicalDeviceProvokingVertexFeaturesEXT": { "provokingVertexLast": true }, "VkPhysicalDeviceIndexTypeUint8FeaturesEXT": { "indexTypeUint8": true }, "VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR": { "vertexAttributeInstanceRateDivisor": true }, "VkPhysicalDeviceSamplerYcbcrConversionFeatures": { "samplerYcbcrConversion": true }, "VkPhysicalDeviceShaderFloat16Int8Features": { "shaderFloat16": true, "shaderInt8": true }, "VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures": { "shaderSubgroupExtendedTypes": true }, "VkPhysicalDevice8BitStorageFeatures": { "storageBuffer8BitAccess": true }, "VkPhysicalDevice16BitStorageFeatures": { "storageBuffer16BitAccess": true } }, "properties": { "VkPhysicalDeviceProperties": { "limits": { "maxPerStageDescriptorUniformBuffers": 13, "maxPerStageDescriptorStorageBuffers": 12, "maxColorAttachments": 8, "maxPerStageDescriptorSampledImages": 128, "maxPerStageDescriptorSamplers": 128 } }, "VkPhysicalDeviceVulkan11Properties": { "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"] } }, "formats": { "VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT": { "VkFormatProperties": { "linearTilingFeatures": ["VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", "VK_FORMAT_FEATURE_BLIT_DST_BIT", "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT", "VK_FORMAT_FEATURE_TRANSFER_DST_BIT"], "optimalTilingFeatures": ["VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", "VK_FORMAT_FEATURE_BLIT_SRC_BIT", "VK_FORMAT_FEATURE_BLIT_DST_BIT", "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT", "VK_FORMAT_FEATURE_TRANSFER_DST_BIT"], "bufferFeatures": [] } }, "VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT": { "VkFormatProperties": { "linearTilingFeatures": ["VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", "VK_FORMAT_FEATURE_BLIT_DST_BIT", "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT", "VK_FORMAT_FEATURE_TRANSFER_DST_BIT"], "optimalTilingFeatures": ["VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", "VK_FORMAT_FEATURE_BLIT_SRC_BIT", "VK_FORMAT_FEATURE_BLIT_DST_BIT", "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT", "VK_FORMAT_FEATURE_TRANSFER_DST_BIT"], "bufferFeatures": [] } } } }, "primitivesGeneratedQuery": { "extensions": { "VK_EXT_primitives_generated_query": 1 }, "features": { "VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT": { "primitivesGeneratedQuery": true } } }, "pipelineStatisticsQuery": { "features": { "VkPhysicalDeviceFeatures": { "pipelineStatisticsQuery": true } } }, "swBresenhamLines": { "extensions": { "VK_EXT_line_rasterization": 1 }, "features": { "VkPhysicalDeviceLineRasterizationFeaturesEXT": { "bresenhamLines": true } } }, "hwBresenhamLines": { "extensions": { "VK_IMG_relaxed_line_rasterization": 1 }, "features": { "VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG": { "relaxedLineRasterization": true } } } }, "profiles": { "VP_ANDROID_15_minimums": { "version": 1, "api-version": "1.3.273", "label": "Vulkan Minimum Requirements for Android 15", "description": "Collection of functionality that is mandated for chipsets that launch (or renew Google Requirements Freeze) on Android 15", "contributors": { "Trevor David Black": { "company": "Google", "email": "vantablack@google.com", "contact": true }, "Ian Elliott": { "company": "Google", "email": "ianelliott@google.com", "contact": true } }, "history": [ { "revision": 1, "date": "2023-12-15", "author": "Ian Elliott", "comment": "First version" } ], "profiles": [ "VP_ANDROID_baseline_2022" ], "capabilities": [ "MUST", ["primitivesGeneratedQuery", "pipelineStatisticsQuery"], ["swBresenhamLines", "hwBresenhamLines"] ] } } }