DXVK-Sarek v1.10.9版本发布:针对低端PC的DXVK优化分支
DXVK-Sarek是一个基于官方DXVK项目的非官方优化分支,主要针对低端PC硬件环境进行特别优化。该项目由社区开发者维护,旨在为仍在使用DXVK 1.10.x版本的用户提供持续支持,并通过回移植游戏特定配置和修复来改善兼容性。最新发布的v1.10.9版本带来了一系列重要的改进和优化。
核心架构优化
本次更新对DXVK-Sarek的异步编译系统进行了重构,重写了dxvk_pipecompiler.cpp和dxvk_pipecompiler.h文件。这种底层重构提升了着色器编译管道的效率,特别是在资源受限的环境中。异步编译机制允许游戏在运行时动态编译D3D着色器,而不需要等待所有着色器预先编译完成,这显著减少了游戏加载时间。
设备过滤功能增强
新版本改进了设备过滤机制,现在当设置了设备过滤器时,系统不会跳过CPU设备。这意味着用户可以通过设置DXVK_FILTER_DEVICE_NAME环境变量为"llvmpipe"来强制使用软件渲染,而不必依赖VK_DRIVER_FILES。这一改进为没有专用GPU或GPU驱动存在问题的系统提供了更好的兼容性解决方案。
游戏兼容性改进
v1.10.9版本为多款游戏添加或更新了特定配置:
- 更新了某款动作游戏的配置文件,优化了游戏在这款DXVK分支上的表现
- 回移植了《乐高印第安纳琼斯》、《乐高蝙蝠侠》和《Thumper》的配置,提高了这些游戏在低端硬件上的运行稳定性
- 新增了《浪漫沙加3》的实验性配置,虽然需要进一步测试验证
多线程处理优化
本次更新引入了几个重要的多线程改进:
- 新增了DXVK_ALL_CORES环境变量,允许用户覆盖默认的核心分配策略。默认情况下,DXVK-Sarek会保留一半CPU核心给游戏使用,另一半用于着色器编译。但在某些多核但单核性能较弱的CPU上,这种分配可能导致性能下降。设置DXVK_ALL_CORES=1可以让系统使用全部核心进行编译,可能改善某些场景下的性能表现
- 针对32位系统减少了工作线程数量,以节省地址空间资源
- 使VK_KHR_image_format_list扩展标记为可选,提高了在Adreno 5xx系列GPU上的兼容性
技术实现细节
在底层实现上,v1.10.9版本对DXVK-Sarek的异步编译系统进行了深度优化。新的实现更有效地利用了现代CPU的多核架构,同时考虑了内存占用和线程调度的平衡。特别是对于32位系统和低内存环境的优化,使得这个分支在资源受限的设备上表现更为出色。
设备过滤机制的改进使得系统能够更灵活地处理不同的渲染后端,特别是为软件渲染提供了更好的支持。这对于那些使用老旧硬件或遇到驱动兼容性问题的用户来说尤其有价值。
使用建议
对于大多数用户,建议使用默认配置以获得最佳平衡。只有在遇到特定性能问题时,才考虑使用DXVK_ALL_CORES=1选项。需要注意的是,启用全核心编译可能会导致游戏在着色器编译期间出现短暂的无响应。
对于使用Adreno 5xx系列GPU的用户,这个版本特别值得升级,因为它解决了之前版本在这些GPU上的兼容性问题。
DXVK-Sarek项目持续关注低端硬件用户的特殊需求,通过精细化的优化和针对性的改进,为资源受限的系统提供更好的游戏体验。v1.10.9版本的发布进一步巩固了这一目标,为社区用户带来了更多选择和更好的兼容性。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考