Android 基线配置文件

今天,Google 宣布发布适用于 Vulkan 的全新 Android 基线 2022 配置文件。

当我们发布最初的 Android 基线配置文件(版本 2021)时,我们的动机很简单但很重要。我们希望消除开发人员在确定他们可以在各种 Android 设备上依赖哪些功能时始终遇到的挑战。

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

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

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

我们鼓励您通读 GitHub 上的完整 Android 基线 2022 配置文件

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

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

扩展此功能,Android 基线 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 基线配置文件的要求,因此我们选择修改 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 功能集。