Wine 项目几天前宣布 发布新版本vkd3d 1.11包,该版本在 vulkan 扩展的使用方面引入了改进,以及支持改进、新功能等。
对于那些不了解 Vkd3d 的人,你应该知道这是一个包 使用调用 Vulkan 图形 API 提供 Direct3D 12 实现 并包括几个关键库。 libvkd3d 库包含 Direct3D 12 的实现,涵盖广泛的功能,例如计算和图形、命令队列和列表、标识符等。
还提供了 libvkd3d-shader 库 它为着色器模型 4 和 5 提供了到中间 SPIR-V 表示的转换器。该库支持顶点、像素、曲面细分、计算和简单几何着色器,以及根签名序列化和反序列化。
vkd3d 1.11 有什么新功能?
Vkd3d 1.11 引入了一个 最初支持编译旧版 Direct3D 字节码 在 SPIR-V 着色器的中间表示中,以及 sHLSL p 编译器的初始支持编译效果配置文件。
这个新版本中的另一项改进是 对编译 DXIL 的实验支持 (DirectX中间语言)的SPIR-V表示法,为Direct3D应用程序的开发提供了新的选择。此功能需要使用“预处理器”选项编译 vkd3d-DVKD3D_SHADER_UNSUPPORTED_DXIL'并且被认为是实验性的。
还 组和描述符集的使用已得到优化 当扩展可用时 VK_EXT_mutable_descriptor_type 和 VK_EXT_shader_viewport_index_layer,提供它是为了提高使用描述符池的效率并加快曲面细分和顶点着色器数组的渲染速度。
c已实施支持标准边框颜色,例如黑色和白色 并且该方法已实施 获取资源分配信息1() ID3D12Device4 接口的功能,以及对 ID3D12Device7 和 ID3D12Resource2 接口的支持。
支持多种新功能查询,包括 D3D12_FEATURE_D3D12_OPTIONS6 a D3D12_FEATURE_D3D12_OPTIONS13.
已实施 新的构建选项: VKD3D_SHADER_COMPILE_OPTION_FEATURE 可用于
指定目标环境中可用的功能,同时 VKD3D_SHADER_COMPILE_OPTION_FEATURE_INT64 表示兼容
SPIR 目标环境中的 64 位整数类型以及 VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64 表示兼容
SPIR-V 目标环境中的 64 位浮点类型。
, 其他突出的变化 这个新版本:
- 描述符更新现在在内部工作线程上异步发生,从而提高了每帧更新许多描述符的应用程序的性能。
- SPIR-V 目标类型添加了新功能,包括支持全局一致的乱序访问视图、线程组乱序访问视图屏障等。
- 支持 ID3D12Device7 接口。
- 此版本所需的 Vulkan-Headers 最低版本为
1.3.228. - 支持 ID3D12Resource2 接口。
- 支持几个新功能查询:
– D3D12_FEATURE_D3D12_OPTIONS6
– D3D12_FEATURE_D3D12_OPTIONS7
– D3D12_FEATURE_D3D12_OPTIONS8
– D3D12_FEATURE_D3D12_OPTIONS9
– D3D12_FEATURE_D3D12_OPTIONS10
– D3D12_FEATURE_D3D12_OPTIONS11
– D3D12_FEATURE_D3D12_OPTIONS12
– D3D12_FEATURE_D3D12_OPTIONS13 - 已经支持内部函数 acos()、asin()、atan() 和 atan2()。
- 使用“register()”关键字显式寄存器映射
- 在着色器模型配置文件 1-3 中从整数类型转换为浮点类型。
对于那些有兴趣了解更多信息的人,你应该知道该项目代码是在 LGPL 2.1 下发布的,你可以查阅这个新版本的详细信息 在下面的链接中。
如何安装 vkd3d 1.11?
为 有兴趣能够安装 vkd3d 他们必须知道他们必须编译源代码,所以我们必须先获取它,重要的是要提到 Vkd3d 依赖于 SPIRV-Headers 和 Vulkan-Headers (>= 1.3.228)。
编译非常简单,为此我们必须打开一个终端,在其中键入以下命令:
git clone https://gitlab.winehq.org/wine/vkd3d.git
我们继续进入下载它的文件夹:
cd vkd3d
然后我们通过执行以下命令继续编译:
./configure make make install
Si 你想了解更多关于汇编的信息 vkd3d 你可以查看详细信息 这个环节。