发布 D9VK 0.40,基于 Vulkan 的 Direct3D 9 实现

发生 项目发布 D9VK 0.40,它提供了一个 Direct3D 9 实现,通过将调用转换为图形 API 来工作 火山。该项目基于项目的代码库 DXVK 扩展,已扩展为支持 Direct3D 9。与基于 WineD3D 的 Direct9D 3 实现相比,D9VK 实现了更好的性能,因为通过 OpenGL 的 Direct3D 9 转换比通过 Vulkan 的转换慢。

D9VK 可用于使用 Wine 在 Linux 上运行 3D 应用程序和游戏。支持大多数基于 Direct3D 9 使用着色器模型版本 2 或 3 的游戏。项目代码 分发者 根据免费的 Zlib 许可证。 D9VK 需要支持 Vulkan API 的驱动程序,例如 AMD RADV 18.3+、NVIDIA 415.22+、Intel ANV 19.0+ 和 AMDVLK。

主要改进:

  • 实现了在 4 位应用程序中使用超过 32 GB 视频内存的能力,解决了启动《Skyrim》和《Oblivion》游戏模组时出现的问题;
  • 启用在屏幕上显示渲染结果的异步处理(呈现阶段)。为了减少主渲染线程的延迟,在命令提交线程中执行输出处理;
  • 删除了检索请求数据时不必要的命令流同步点;
  • 用于确定内部时间的代码已被转换为使用特定于平台的计时器,这有助于解决 MinGW 的 high_resolution_clock 的错误行为问题;
  • 在PrepareDraw执行前阶段保证了MANAGED和SYSTEMMEM延迟缓冲区的卸载,解决了《崛起》、《英雄传说:空之轨迹》游戏中的性能问题;
  • 添加了支持 D3DTA_CONSTANT,这使得实现正确的渲染成为可能 发光效果 在 SpinTyres 和 Mudrunner 游戏中;
  • 改进了兼容性 DirectX 9Ex (D3D9Ex)。考虑处理 ResetEx 和 Reset 的细节;
  • 清理和重构代码;
  • 提供了 WRITEONLY 缓冲区的直接映射,这可以对性能产生积极影响并绕过游戏中的错误
    反恐精英:全球攻势,导致缓冲区解锁后继续写入;

  • 实施方法 设置对话框模式,它允许您在全屏应用程序中使用对话框;
  • 支持已实施 混合顶点包括 索引顶点混合,SWVP(软件顶点处理)所需;
  • 显示在当前图像(平视显示器,HUD)顶部的采样计数器已被重新设计;
  • 添加选项 d3d9.dialogBoxMode,可用于禁用仅在全屏模式下工作;
  • 进行了性能优化并解决了启动 GTA 游戏时出现的问题:圣安地列斯、假面血族、马克思佩恩 2、模拟人生 2、猎杀潜航 3、闪乱神乐 Shinovi、龙与地下城、孤岛危机、合金弹头 X、ANGLE、极品飞车速度:碳和崛起1。

另外,还可以注意到 意向 项目开发商 DXVK 扩展 (在 Vulkan API 之上实现 DXGI、Direct3D 10 和 Direct3D 11)将暂时仅将精力集中在错误修复上,从而减慢功能的扩展。相似的愿望 造成的 担心代码库质量下降以及未来维护更加困难。 1.4.x 分支的每次更新都会引起人们对无法复制、本地化和修复的回归更改的抱怨。

这些问题需要分析其发生的原因,否则在继续增加功能的同时不加以纠正只会使情况变得更加严重,并使维护过程变成一场噩梦。 DXVK 开发人员打算在切换到仅修复错误模式之前实施的计划包括添加对一些有用的 Vulkan 扩展的支持以及与 D9VK 项目的开发合并。

补充:脚后跟很热 形成 修正版本 D9VK 0.40.1,其中 固定 将 vec4(1) 设置为顶点着色器中 COLOR0 的默认值,并修复了错误应用默认着色器输出槽位并因此被后端错误纠正的错误,导致它们被 vec4(0) 替换。

来源: opennet.ru

添加评论