如今最优秀的 Android 游戏相比几年前在视觉表现上有了显著提升,这得益于开发者手中更强大的硬件,以及 Android 图形渲染功能的不断进步。目前,大多数 Android 设备都支持 Vulkan,这是图形与计算领域的行业标准API。Vulkan 让游戏能在现代设备上高效运行,而该 API 的最新版本 Vulkan 1.4 更是引入了一项新功能,有望在即将发布的 Android 16 设备上大幅提升游戏性能。

Vulkan 图形 API 是一种现代化、低开销、跨平台的 3D 图形与计算接口。与 Vulkan 所取代的 OpenGL 不同,它为开发者提供了对 GPU 更直接的控制。这种更低级别的控制减少了 CPU 的负载,从而提升了多线程应用和游戏的性能,并使游戏能够利用现代手机 GPU 所支持的高级功能,例如光线追踪。
Android 从 2016 年的 Android 7.0 Nougat 起就引入了对 Vulkan 的支持,但最初仅有少数设备兼容。如今,已有超过 85% 的 Android 设备支持 Vulkan。因此,谷歌最近已将 Vulkan 定为 Android 的官方图形 API,也就意味着今后所有软件将必须通过 Vulkan 与设备的 GPU 进行通信。

虽然目前市面上的大多数 Android 设备都支持 Vulkan,但各个设备对具体 Vulkan 功能的支持仍存在较大差异。为了解决 Vulkan 功能在 Android 设备之间不一致的问题,谷歌在去年推出了 Vulkan Profiles for Android(VPA)计划。VPA 定义了一组 Vulkan 功能,GPU 必须支持这些功能,才能通过谷歌针对特定 Android 版本的认证测试。例如,VPA 16 是为支持 Android 16 的下一代芯片而设定的标准,它要求 GPU 至少支持以下这些 Vulkan 功能。
其中一项由 VPA 16 强制要求的 Vulkan 功能是 Host Image Copy,这是 Vulkan 1.4 新规范中的一个功能,被一位谷歌工程师称为“对 Android 游戏来说的游戏规则改变者”。在一篇博客文章中,谷歌 ANGLE 项目中负责 Vulkan 后端的高级软件开发人员 Shahbaz Youssefi 解释说,Host Image Copy 能够实现无卡顿的纹理数据流传输、更快的加载时间,同时还能将 GPU 内存使用量减少一半。

这一功能允许游戏使用设备的 CPU 而不是 GPU 来复制图像数据(例如纹理)。传统上,从设备的内存或存储中将图像数据传输到 GPU 通常需要多个步骤:首先将数据复制到 GPU 内存中的临时缓冲区,然后再由 GPU 将其从缓冲区复制到最终目标(图像)中。而通过允许 CPU 直接在主机内存与 GPU 图像内存之间,甚至在主机侧的两个图像之间复制图像数据,Host Image Copy 消除了对临时缓冲区的需求。
这项技术将传输过程中所需的 GPU 内存减少了一半,并通过使用多个 CPU 线程并行加载纹理数据,从而提升了加载速度。同时,它还释放了 GPU 的资源,让 GPU 能将更多性能用于更流畅地渲染画面,减少卡顿。
以上只是对 Host Image Copy 的一个非常简化的概述。如需了解更详细的技术细节,建议阅读 Shahbaz Youssefi 的完整博客文章。

重要的是要知道,Host Image Copy 对 Android 游戏来说将特别有用,因为它能实现更快的应用加载速度、减少卡顿,并降低 GPU 内存使用。Youssefi 预计,“绝大多数搭载 Vulkan 1.4 的 Android 设备将会实现 Host Image Copy,并针对压缩格式进行优化实现。”目前的 Android 设备尚不支持 Vulkan 1.4,因此也不支持 Host Image Copy,但预计即将发布的 Android 16 设备将支持这一功能,因为 VPA 16 要求必须具备该功能。