Android 基准配置文件

今天,Google 宣布发布全新的 Vulkan Android Baseline 2022 配置文件。

当我们发布最初的 Android Baseline 配置文件(2021 版)时,我们的初衷简单而重要。我们希望消除开发者在确定各种 Android 设备上可以依赖哪些功能时一直遇到的挑战。

Android Baseline 2021 配置文件通过一个 Vulkan 配置文件解决了这一痛点,该配置文件指定了 2021 年绝大多数活跃 Android 设备上存在的一组 Vulkan 扩展、功能、格式和限制。此配置文件是根据现有数据并与 Khronos 合作伙伴讨论后创建的,旨在最大程度地兼容现有和未来的设备,并代表了符合这些限制的最先进的 Vulkan 功能集。

当我们首次推出 Android Baseline 2021 配置文件时,我们承诺在 2022 年更新该配置文件,因为我们知道 Vulkan 的采用率正在迅速达到拐点。现在,经过一年的数据分析和与我们的 Khronos 合作伙伴的协调,我们很高兴地宣布,我们已成功创建了适用于 Vulkan 的 Android Baseline 2022 配置文件。

与我们最初的 2021 配置文件一样,Android Baseline 2022 配置文件也包含一组在绝大多数活跃 Android 设备上都存在的 Vulkan 扩展、功能、格式和限制。然而,仅仅经过一年的生态系统发展,我们就能够推动实现更广泛的功能集。我们相信许多开发者将能够从这个新配置文件中发现的额外功能中快速受益。

我们鼓励您阅读 Github 上的完整 Android Baseline 2022 配置文件

Android Baseline 2022 配置文件包含与最初的 2021 配置文件相同的所有支持,其中包含以下有用且重要的功能:

  • 通过 ASTC 和 ETC 实现压缩纹理
  • 通过 VK_EXT_swapchain_colorspace 实现可变色彩空间
  • 通过 sampleRateShading 实现样本着色和多样本插值

在此功能的基础上,Android Baseline 2022 配置文件还添加了一系列非常有价值的改进,例如:

  • 全面支持 Vulkan 1.1
  • 通过 shaderInt16 在着色器中使用 16 位整数
  • 通过 VK_ANDROID_external_memory_android_hardware_buffer 实现 Vulkan 和 Android 硬件缓冲区的互操作性
  • 使用 VK_KHR_driver_properties 查询 Vulkan 驱动程序属性
  • 使用 VK_KHR_create_renderpass2 对渲染通道创建进行更精细的控制

在发布 2022 配置文件的同时,我们还决定修订先前的 2021 配置文件。2021 配置文件发布时,它包含了对扩展图像采集指令集和扩展图像采集功能的支持

  • "shaderImageGatherExtended": true,
  • "minTexelGatherOffset": -8
  • "maxTexelGatherOffset": 7
通过更深入的数据分析和调查,我们发现此包含是一个错误。扩展图像采集功能的支持率远低于我们对 Android Baseline 配置文件的要求,因此我们选择修订 2021 配置文件以删除这些要求。此更改在修订后的 Github 中显示为 "history" 下的 "revision": 2。2022 配置文件中也未包含扩展图像采集功能。

修订后的 Android Baseline 2021 配置文件将保留在 Github 上可见。

绝大多数已在使用的 Android 设备无需空中下载更新即可完全支持 2021 配置文件和 2022 配置文件。

我们将继续在 Android 分发面板 https://developer.android.com/about/dashboards 中公布这两种配置文件的 Android 支持百分比。

在成功完成我们承诺的 2021 配置文件更新后,我们目前不承诺未来对 Android Baseline 配置文件进行任何更新。我们将根据开发者、合作伙伴和用户的需求,按需更新更广泛、更高级的 Vulkan 功能集。