1{ 2 "$schema": "https://schema.khronos.org/vulkan/profiles-0.8.2-273.json#", 3 "capabilities": { 4 "MUST": { 5 "extensions": { 6 "VK_KHR_maintenance5": 1, 7 "VK_KHR_shader_float16_int8": 1, 8 "VK_KHR_16bit_storage": 1, 9 "VK_KHR_vertex_attribute_divisor": 1, 10 "VK_EXT_custom_border_color": 1, 11 "VK_EXT_device_memory_report": 1, 12 "VK_EXT_external_memory_acquire_unmodified": 1, 13 "VK_EXT_index_type_uint8": 1, 14 "VK_EXT_load_store_op_none": 1, 15 "VK_EXT_primitive_topology_list_restart": 1, 16 "VK_EXT_provoking_vertex": 1, 17 "VK_EXT_scalar_block_layout": 1, 18 "VK_EXT_surface_maintenance1": 1, 19 "VK_EXT_swapchain_maintenance1": 1, 20 "VK_EXT_4444_formats": 1, 21 "VK_ANDROID_external_format_resolve": 1, 22 "VK_GOOGLE_surfaceless_query": 1 23 }, 24 "features": { 25 "VkPhysicalDeviceFeatures": { 26 "drawIndirectFirstInstance": true, 27 "shaderImageGatherExtended": true, 28 "shaderStorageImageExtendedFormats": true, 29 "shaderStorageImageReadWithoutFormat": true, 30 "shaderStorageImageWriteWithoutFormat": true, 31 "samplerAnisotropy": true 32 }, 33 "VkPhysicalDeviceVulkan12Features": { 34 "shaderFloat16": true, 35 "shaderInt8": true 36 }, 37 "VkPhysicalDeviceCustomBorderColorFeaturesEXT": { 38 "customBorderColors": true 39 }, 40 "VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT": { 41 "primitiveTopologyListRestart": true 42 }, 43 "VkPhysicalDeviceProvokingVertexFeaturesEXT": { 44 "provokingVertexLast": true 45 }, 46 "VkPhysicalDeviceIndexTypeUint8FeaturesEXT": { 47 "indexTypeUint8": true 48 }, 49 "VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR": { 50 "vertexAttributeInstanceRateDivisor": true 51 }, 52 "VkPhysicalDeviceSamplerYcbcrConversionFeatures": { 53 "samplerYcbcrConversion": true 54 }, 55 "VkPhysicalDeviceShaderFloat16Int8Features": { 56 "shaderFloat16": true, 57 "shaderInt8": true 58 }, 59 "VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures": { 60 "shaderSubgroupExtendedTypes": true 61 }, 62 "VkPhysicalDevice8BitStorageFeatures": { 63 "storageBuffer8BitAccess": true 64 }, 65 "VkPhysicalDevice16BitStorageFeatures": { 66 "storageBuffer16BitAccess": true 67 } 68 }, 69 "properties": { 70 "VkPhysicalDeviceProperties": { 71 "limits": { 72 "maxPerStageDescriptorUniformBuffers": 13, 73 "maxPerStageDescriptorStorageBuffers": 12, 74 "maxColorAttachments": 8, 75 "maxPerStageDescriptorSampledImages": 128, 76 "maxPerStageDescriptorSamplers": 128 77 } 78 }, 79 "VkPhysicalDeviceVulkan11Properties": { 80 "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"] 81 } 82 }, 83 "formats": { 84 "VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT": { 85 "VkFormatProperties": { 86 "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"], 87 "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"], 88 "bufferFeatures": [] 89 } 90 }, 91 "VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT": { 92 "VkFormatProperties": { 93 "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"], 94 "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"], 95 "bufferFeatures": [] 96 } 97 } 98 } 99 }, 100 "primitivesGeneratedQuery": { 101 "extensions": { 102 "VK_EXT_primitives_generated_query": 1 103 }, 104 "features": { 105 "VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT": { 106 "primitivesGeneratedQuery": true 107 } 108 } 109 }, 110 "pipelineStatisticsQuery": { 111 "features": { 112 "VkPhysicalDeviceFeatures": { 113 "pipelineStatisticsQuery": true 114 } 115 } 116 }, 117 "swBresenhamLines": { 118 "extensions": { 119 "VK_EXT_line_rasterization": 1 120 }, 121 "features": { 122 "VkPhysicalDeviceLineRasterizationFeaturesEXT": { 123 "bresenhamLines": true 124 } 125 } 126 }, 127 "hwBresenhamLines": { 128 "extensions": { 129 "VK_IMG_relaxed_line_rasterization": 1 130 }, 131 "features": { 132 "VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG": { 133 "relaxedLineRasterization": true 134 } 135 } 136 } 137 }, 138 "profiles": { 139 "VP_ANDROID_15_minimums": { 140 "version": 1, 141 "api-version": "1.3.273", 142 "label": "Vulkan Minimum Requirements for Android 15", 143 "description": "Collection of functionality that is mandated for chipsets that launch (or renew Google Requirements Freeze) on Android 15", 144 "contributors": { 145 "Trevor David Black": { 146 "company": "Google", 147 "email": "vantablack@google.com", 148 "contact": true 149 }, 150 "Ian Elliott": { 151 "company": "Google", 152 "email": "ianelliott@google.com", 153 "contact": true 154 } 155 }, 156 "history": [ 157 { 158 "revision": 1, 159 "date": "2023-12-15", 160 "author": "Ian Elliott", 161 "comment": "First version" 162 } 163 ], 164 "profiles": [ 165 "VP_ANDROID_baseline_2022" 166 ], 167 "capabilities": [ 168 "MUST", 169 ["primitivesGeneratedQuery", "pipelineStatisticsQuery"], 170 ["swBresenhamLines", "hwBresenhamLines"] 171 ] 172 } 173 } 174} 175