Android 基准配置文件

今天,Google 宣布推出适用于 Vulkan 的全新 Android Baseline 2022 配置文件。

发布初版 Android Baseline 配置文件(2021 版)时,我们的动机很简单,但意义重大。我们希望消除开发者在确定形形色色的 Android 设备上可以依赖的功能时常会面临的挑战。

Android Baseline 2021 配置文件通过一个 Vulkan 配置文件解决了这个难题。该配置文件指定了一套 Vulkan 扩展、功能、格式和限制,它们来自于我们 2021 年在绝大多数活跃 Android 设备上的发现。该配置文件是根据可用数据与 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 功能集更新我们的支持。