vkd3d 1.3新版本已经发布

经过一年半的开发,he Wine 项目宣布启动 新版本的包 «vkd3d 1.3" 使用 Direct3D 12 实现,该实现通过转换对 Vulkan 图形 API 的调用来工作。

这个版本包含各种改进,其中在这个新版本中的亮点是 初始 HLS 构建支持L,以及 Shader Model 5.1 描述符数组支持,支持卸载 Direct3D 着色器等。

对于那些不知道包裹的人,他们应该知道 包括带有 Direct3D 3 实现的 libvkd12d 库、libvkd3d-shader 带有模型4和5着色器转换器,以及具有简化Direct3D 3应用程序迁移功能的libvkd12d-utils,以及一系列演示,包括glxgears端口到Direct3D 12的移植。该项目代码已根据LGPLv2.1分发许可。

图书馆 libvkd3d支持Direct3D 12的大多数功能, 包括图形和计算函数、命令列表和队列、描述符和堆描述符、根签名、无序访问、采样器、命令签名、根常量、代理表示等。

Libvkd3d着色器 实现字节码4和5的转换 SPIR-V 中间表示中的着色模型。 支持顶点、像素、曲面细分、计算和简单几何着色器、根签名序列化和反序列化。

着色器指令包括算术,原子和按位运算, 数据流控制和比较运算符,采样,收集和加载指令,无序访问操作(UAV,无序访问视图)。

在当前开发阶段,并非所有对Direct3D 12的调用都已实现 并且测试主要在一组演示应用程序上进行。

Vkd3d 1.3的主要新功能

在展示的这个新版本的 vkd3d 1.3 中,强调了 添加了对在 HLSL 中编译和预渲染着色器的初始支持 (高级着色器语言),从 DirectX 9.0 开始提供。

此新版本中另一个引人注目的变化是 支持着色器中的双精度浮点运算,以及曲面细分着色器的间接、着色器的模板导出、“精确”着色器修改器以及内存资源的全局屏障。

我们还可以发现 从代码中反汇编 Direct3D 着色器的能力 汇编器表示的字节数,并增加了对解析 Direct3D 3、1 和 2 着色器模型中使用的旧 Direct3D 字节码格式的支持。

libvkd3d 添加了 Direct3D 12 功能,例如根签名、无序查找计数器、输出合并布尔值、mirror_once 纹理寻址模式,并添加了 vkd3d_host_time_domain_info 结构。

其他变化 从这个新版本中脱颖而出:

  • vkd3d_shader_preprocess_info 扩展了 vkd3d_shader_compile_info 结构,可用于指定预处理参数,例如预处理器宏定义。
  • vkd3d_shader_hlsl_source_info 扩展了 vkd3d_shader_compile_info 结构,可用于指定 HLSL 和构建参数,例如目标配置文件和入口点。
  • 链接 Direct3D 12 和 Vulkan 模型
  • VKD3D_SHADER_COMPILE_OPTION_API_VERSION 可用于指定应用程序所针对的 libvkd3d-shader API 版本。 如果未指定,将使用 VKD3D_SHADER_API_VERSION_1_2。
  • 如果 vkd3d-compiler 可以确定
    输出是具有彩色功能的电传打印机。
  • 添加了对 Shader Model 5.1 中定义的描述符数组的支持。

最后 如果您想了解更多 关于这个新版本,您可以查阅完整的更改列表 在下面的链接中。

如何在Linux上安装vkd3d?

对于那些有兴趣在其系统上安装vkd3d的人,他们应该获取源代码并继续进行编译,尽管出于实际目的或对于那些新手,他们可以毫不费力地尝试使用该库。 为此,他们只需要在其配置中安装lutris。

对于那些对编译感兴趣的人,他们必须使用以下代码获取代码:

git clone git://source.winehq.org/git/vkd3d.git/
./autogen.sh
./configure
make
../vkd3d/configure --build=i686-pc-linux-gnu "CPPFLAGS=-m32" "LDFLAGS=-m32"

最后,必须启用Vulkan层:

export VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_standard_validation
VKD3D_CONFIG=vk_debug


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。