首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为了让用户在Linux上玩爽游戏,Valve也是操碎了心

Valve提议对linux内核进行修改,使其对游戏的支持更加友好。具体来说,它希望扩展FUTEX(fast user-space locking快速用户空间锁定)功能,并对glibc和lbpthread进行修改以提高多线程操作性。

Valve一直坚定不移地支持改进linux系统的游戏性能。尽管在steam os中对Linux的游戏性能进行了深度优化并改进了Wine的兼容性能,甚至和众多硬件厂商合作推出了搭载steam os系统的steam machine设备,但Linux在游戏性能上的瓶颈不是这么简单就能突破的。

Wine的问题在于,当面临着更高硬件要求的程序时,显得力不从心。Valve通过在Linux发布的beta版steam play中加入Proton一类对游戏更加友好的定制版Wine来保证游戏体验,虽然对于某些玩家来说这却有成效,但在Linux的游戏性能方面仍然存在许多问题。

在Linux最近一次build的patch notes中,Valve建议对Linux内核进行修改,以克服它在尝试运行一些游戏时发现的问题。

首先,它为esync提供了一个名为fsync的实验性替代品,后者提供了“对基于Futex的进程原生支持”,并且比esync有着更少的CPU资源占用。但是,它需要使用Linux内核的eventfd()函数,因此需要对Linux内核进行修改才能确保其正常工作。

“我们建议对Linux内核[lkml.org]进行修改,以扩展Futex()系统调用以公开我们认为支持最佳线程池同步所需的额外核心功能。”

这些更改将主要扩展Futex()功能,以建立最佳线程池同步。Proton 4.11将得到fsync补丁以在新内核可用时提供支持。

开发人员还提议对glibc(GNU发布的libc库)和libp线程进行修改。

“我们还建议对glibc和libp线程进行修改,以使linux本机多线程应用程序可以使用libp线程,这可以从等待一组futexes的行为中受益,”协合的软件工程师Gabriel Krisman Bertazi在LKML(Linux内核邮件列表)讨论中说。

Bertazi接着说,在早期测试中,在Proton中运行Beat Saber的性能提高了4%,影子盗墓者的性能则提高了1.5%。

Linux社区欢迎该修补程序,尽管需要对其进行一些清理,以满足当前的编码标准。

Valve贴上了“概念证明”Glibc贴片以供审查。它相信这些改变将大大改善Linux上的游戏功能。

Valve表示“我们将通过在本机大规模线程应用程序(如Steam和源2引擎)中采用它来提高效率”

(L)

小狮子最喜欢的鸡腿 分割线

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190809A0J3V200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券