Valve开源Lepton:让安卓VR游戏在Steam Frame上运行的容器

🤖 由 文心大模型 生成的文章摘要

Valve已发布Lepton的源代码,这是一个让安卓独占游戏能在Steam Frame上运行的安卓容器。Valve的README称,Lepton“是配合Steam客户端使用的工具,可让安卓独占游戏在Linux操作系统上运行”。

该仓库名为frame-public/lepton,托管在Valve自己的GitLab上,其历史从零开始:首次提交“Release Lepton v3.0.0”由一名Valve工程师于9月11日完成,没有父提交。提交日志随后出现两个发布标签:v3.0.1标注日期为9月12日,v3.0.2标注日期为9月17日。

该仓库分为两部分。镜像部分构建一个安卓根文件系统,即游戏启动所在的容器;compat_tool部分则是Steam调用以在该镜像中启动游戏的部分。

Valve列出了使Lepton区别于其他安卓容器化项目的设计决策:它以非root用户身份运行,“无需任何root设置或辅助程序”,内部每个进程都以同一用户身份运行,应用之间没有强制隔离,并且它“禁用了各种运行游戏不需要的安卓服务,可能会破坏某些应用的兼容性”。

它有意保持不完整,Valve也明确说明了这一点。Lepton“并非为通用安卓用途设计,而是选择保留启动游戏所需的最低限度功能”,并缓存部分状态以加速安卓用户空间的启动。

Lepton将主机库挂载到容器中,包括mesa和zink等图形驱动、Steam和Steamworks库,以及Valve称为“注视点渲染注入器”和“渲染通道优化器”的Vulkan层。后两者是移植团队会关注的重点,因为注视点渲染是独立头显找回所缺性能的方式。

该容器接入了strace、gdb、lldb、renderdoc和perfetto,默认隐藏平面窗口,同时允许开发者在工作期间显示它。Valve用一句话说明了目的:Lepton“旨在帮助游戏开发者将其VR安卓游戏带到Steam Frame”。

安卓根文件系统以GPL-3.0发布,因为它包含了来自Waydroid、Anbox、Halium和Hybris项目的补丁和组件。兼容工具本身则是MIT许可证,放在单独的许可证文件中。

提交日志还显示了代码公开前的整理工作。Valve工程师在9月15日和16日的提交中将项目的子模块切换为公开仓库,并迁移到公开的Vulkan头文件,于9月17日合并;他们还用这两天重新整理许可证文件,其中包括一个名为“Try renaming LICENSE.AOSP.image to defeat gitlab license detection”的提交。这些消息中引用的合并请求指向一个名为deckard/lepton的内部项目,Deckard正是该头显多年来在代码和泄露中使用的代号。

README的范围是带到Steam的安卓VR游戏。它没有提及Meta Horizon Store、侧载Quest软件包或Meta的运行时,所列的每一项功能都面向通过Valve商店发布构建的工作室。

Valve还建议大多数人不要直接使用代码。README称:“大多数用户应使用Steam客户端自带的Lepton”,因此仓库中的版本是给制作游戏的人而非玩游戏的人使用的。

代码所解释的是,商店中已有的安卓独占VR游戏如何进入该头显。Steam现在销售完全无法在PC上运行的VR游戏,而Valve自家的独立版《半条命:爱莉克斯》移植则走了另一条路,为ARM原生重建。

Lepton是第一条路径背后的机制,而标签列表显示它仍在演进。现在任何人都可以读到它究竟支持什么,而对开发者更有用的是,它关闭了什么。

「93913原创内容,转载请注明出处」