Valve已经提交了多项针对Linux内核的改进申请,以便于更适合游戏。目前公司正寻求扩展futex()(快速用户空间锁定)功能,通过对glibc和lbpthread的修改以改进多线程操作。在改善Linux对PC游戏的支持方面,Valve长期以来都是推动者。例如已经失败的Steam Machine,所搭载的SteamOS就是基于Linux系统。此外公司还努力改进开源Windows兼容层Wine。
Wine的问题在于它需要兼容更多硬件支持的软件。Valve通过推出包含Proton的Beta版本Steam Play来应对这项挑战。虽然这确实带来了某些帮助,但是在性能方面依然存在很多的问题。
在最新版本的Proton补丁说明中,Valve建议对Linux内核进行更改,以克服在尝试运行某些游戏时遇到的问题。首先公司计划推出名为fsync的实验性替代品,提供“对基于futex的进程内同步原语的支持”。并且比esync减少了CPU使用率。但是,因为它需要使用内核的eventfd()函数,所以需要修改Linux内核才能正常工作。
在博文中写道“我们建议对Linux内核[lkml.org]进行更改,以扩展futex()系统调用,以揭示我们认为支持最佳线程池同步所需的额外核心功能。”这些更改主要扩展futex()功能以建立最佳线程池同步。 Proton 4.11将支持fsync补丁以利用新内核。
开发人员还建议对glibc和libpthread进行更改。Collabora的软件工程师Gabriel Krisman Bertazi在LKML的讨论主题中表示:“我们还提议对glibc和libpthread进行修改,以便使用libpthread为Linux原生多线程应用程序提供此功能,这可以从等待任何一组futex的行为中受益。”