阀门公司
Proton 允许您在 Steam Linux 客户端中直接运行仅限 Windows 的游戏应用程序。 该软件包包括 DirectX 10/11 的实现(基于
主
- 与 Wine 4.11 代码库进行了同步,从中传输了 3300 多个更改(之前的分支基于 wine 4.2)。 Proton 154 的 4.2 个补丁已移至上游,现在包含在主 Wine 包中;
- 添加了对基于 futex() 系统调用的同步原语的实验性支持,与 esync 相比,这减少了 CPU 负载。 此外,新的实现解决了需要使用的问题
特殊设置 用于同步和可能耗尽可用文件描述符。所做工作的本质是扩展 Linux 内核中标准 futex() 系统调用的功能,并提供线程池最佳同步所需的功能。 支持 Proton 所需的 FUTEX_WAIT_MULTIPLE 标志的补丁已经发布
转入 包含在主 Linux 内核中以及格里布 。 准备好的更改尚未包含在主内核中,因此目前有必要建立 支持这些原语的特殊内核; - 夹层
DXVK 扩展 (在 Vulkan API 之上实现 DXGI、Direct3D 10 和 Direct3D 11)更新至版本1.3 和D9VK (Vulkan 之上的 Direct3D 9 的实验性实现)最高版本 0.13f。 要在 Proton 中启用 D9VK 支持,请使用 PROTON_USE_D9VK 标志; - 当前显示器刷新率传输至游戏;
- 已修复鼠标焦点和窗口管理问题;
- 修复了部分游戏尤其是基于Unity引擎的游戏中出现的输入滞后和摇杆振动支持问题;
- 新增对最新版本OpenVR SDK的支持;
- 实现 DirectX 声音库(API XAudio2、X3DAudio、XAPO 和 XACT3)的 FAudio 组件已更新至版本 19.07;
- GameMaker 游戏中的网络子系统问题已得到解决;
- 许多 Wine 模块现在构建为 Windows PE 文件而不是 Linux 库。 随着该领域工作的进展,PE的使用将有助于一些DRM和反作弊系统。 如果您使用自定义 Proton 构建,您很可能需要重新创建 Vagrant 虚拟机来构建 PE 文件。
在 Valve 的补丁被采用到主 Linux 内核之前,使用 futex() 代替 esync 需要安装一个特殊的内核,支持在一组补丁中实现的线程同步池
如果您的内核支持 fsync,则当您运行 Proton 4.11 时,控制台将显示消息“fsync: up and running”。 您可以使用 PROTON_NO_FSYNC=1 标志强制关闭 fsync。
来源: opennet.ru