几天前 宣布发布项目“D8VK 1.0”的第一个稳定版本, 提供一个 Direct3D 8 图形 API 实现 它通过翻译 Vulkan API 调用来工作,并允许您使用 Wine 或 Proton 在 Linux 上运行为 Windows 开发的链接到 Direct3D 3 API 的 8D 应用程序和游戏。
正如你们许多人所知,在 Linux 中我们有 VKD3D-Proton 用于在 Vulkan 中转换 Direct3D 12,此外我们还有使用 DXVK 在 Vulkan 上实现 Direct3D 9/10/11 API 的 Steam Play,但对于旧的. Direct3D 8 的实现,没有什么具体的。
这就是 D8VK 诞生的原因,它是旧的 Microsoft Direct3D 8 API 在 Vulkan 上的实现,以改善旧游戏的体验。
D8VK 1.0 被标记为该项目的第一个版本, 适合在数百种游戏中使用和测试。 与使用 Direct3D 3 到 OpenGL 和 Direct8D 9 转换的 WineD3D 和 d8d3to9 项目相比,D8VK 项目表现出更好的性能、稳定性和游戏兼容性。
例如,在 3DMark 2001 SE 包上测试时,D8VK 项目得分为 144660 分,d3d8to9 和 dxvk 的组合 – 118033,WineD3D – 97134。
推出 D8VK 1.0 引入了 d3d8.dll(d3d9 是静态链接的),以及一个 新的自定义批处理器 对于某些具有未定义行为的游戏。
除此之外,还要强调的是 支持覆盖具有未定义行为的游戏的顶点着色器声明 并且顶点缓冲区现在可以存储在自我管理的池中以提高性能并避免写入顺序问题。
还需要注意的是,编译支持在 MSVC 中实现,并且现在支持 GetInfo 查询和状态块类型。
别人的 突出的变化:
- 根据格式更正表面描述尺寸
- 允许保留当前的质子安装
- 无数特定于游戏的设置以及次要功能和调整
- 修复了 CreateTexture 会尝试包装空纹理的错误
- 修复了后缓冲区未被缓存或引用到拥有设备的问题
- 修复了纹理、流和索引在重启时未被清除的问题
- Direct3DCreate8 在 d3d8.def 中的固定位置
- 修复了渲染目标、深度模板和纹理的引用计数。
- 修复了不被记住的空像素着色器
- 修复了未缓存的渲染目标和深度模板
- 修复了客户端尝试在硬件设备上启用 SWVP 的错误
- 固定设备不越狱
- 修复了带有绑定纹理的设备发布时的段错误
最后,如果你有兴趣了解更多,可以咨询详情 在下面的链接中。
您应该知道项目代码是用 C++ 语言编写的,并在 Zlib 许可证下分发。 在 Vulkan 之上实施 Direct3D 9、10 和 11 的 DXVK 项目的代码库被用作开发的基础。
如何在 Linux 上安装 D8VK?
对于那些对能够安装 D8VK 感兴趣的人,他们应该知道它的实现非常简单并且不需要太多。 只需打开终端即可获取新版本。 我们将在其中键入以下命令:
git clone https://github.com/AlpyneDreams/d8vk.git
或者,如果您更喜欢从浏览器下载(您只需解压缩文件并将自己定位在文件夹内的终端中),您可以通过单击 在此链接。
完成此操作,现在我们将进入目录:
cd d8vk
我们将视情况着手实施d8vk。 要用 Wine 实现它,我们必须键入以下内容:
./setup_d3d8.sh install --no-proton
或者在想用质子实现它的情况下,必须输入的命令如下:
./setup_d3d8.sh install
如果你想了解更多关于它在特定情况下的使用或安装,你可以参考 以下链接。