萨尔瓦多PROYECTO 酒揭幕 前几天新版本的上线 vkd3d 1.7 包 使用 Direct3D 12 实现,该实现通过转换对 Vulkan 图形 API 的调用来工作。
埃尔帕克特 包括 libvkd3d 库 具有 Direct3D 12 实现的 libvkd3d-shader 和着色器模型转换 4 和 5,以及具有简化 Direct3D 3 应用程序迁移功能的 libvkd12d-utils,以及一组演示,包括 glxgears 到 Direct3D 12 的端口。
libvkd3d 库 支持大多数 Direct3D 12 功能, 包括图形和计算、命令列表和队列、描述符和堆描述符、根签名、无序访问、示例、命令签名、根常量、间接表示、Clear*() 和 Copy*() 方法。
除了它 libvkd3d-shader 实现字节码4和5的翻译 SPIR-V 中间表示中的着色模型。 支持顶点、像素、曲面细分、计算和简单几何着色器、根签名序列化和反序列化。
算术、原子和位操作、比较和数据流控制操作符、采样、收集和加载指令、乱序访问操作(UAV,乱序访问视图)是从影子指令实现的。
vkd3d 1.7的主要新特性
在 vkd3d 1.7 的这个新版本中脱颖而出 él 继续致力于改进 HLSL 着色器编译器 (高级着色器语言),以及添加调用用户定义函数的能力 并使用数组作为用户定义函数的参数。
新版本中另一个突出的变化是 显着改进了对配置文件的支持 着色器模型 Direct3D 1/2/3, 还添加了对 min16float 等低精度浮点类型的初始支持。
还强调的是 添加了对 SV_DispatchThreadID、SV_GroupID 和 SV_GroupThreadID 参数的支持 并且添加了一个公共 API 来解析 (vkd3d_shader_parse_dxbc) 和序列化 (vkd3d_shader_serialize_dxbc) DXBC 二进制数据。
, 其他突出的变化 新版本:
- 支持 Load() 纹理对象的可选“偏移”参数
方法。 - 支持内部函数 all()。
- 支持 distance() 内部函数。
- 支持内在函数 exp() 和 exp2()。
- 支持 frac() 内部函数。
- 支持 lit() 内部函数。
- 支持 reflect() 内在函数。
- 支持内部函数 sin() 和 cos()。
- 支持 smoothstep() 内部函数。
- 支持内部 sqrt() 和 rsqrt() 函数。
- 支持 step() 内部函数。
- 支持内部函数 transpose()。
- 支持不区分大小写的浮点和双字数据变体
类型 - 部分支持最小精度数据类型,例如“min16float”。 这些目前被解释为它们的常规对应物。
改进了常量传播支持,特别是通过 swizzles 进行常量传播。 - 编译选项 VKD3D_SHADER_COMPILE_OPTION_WRITE_TESS_GEOM_POINT_SIZE 可用于指定针对 Vulkan 环境的 SPIR-V 着色器是否应为几何和曲面细分着色器写入点大小,如果未指定,将写入点大小。
最后, 对于那些有兴趣了解更多信息的人,他们应该知道项目代码是根据 LGPLv2.1 许可的,他们可以查阅这个新版本的详细信息 在下面的链接中。
如何安装 vkd3d 1.7?
为 有兴趣能够安装 vkd3d 他们必须知道他们必须编译源代码,所以我们必须先获取它,重要的是要提到 Vkd3d 依赖于 SPIRV-Headers 和 Vulkan-Headers (>= 1.2.139)。
要进行编译,我们必须打开一个终端并在其中键入以下命令:
git clone https://gitlab.winehq.org/wine/vkd3d.git
完成后,我们继续进入最近下载的目录:
cd vkd3d
然后我们通过执行以下命令继续编译:
./configure make make install
Si 你想了解更多关于汇编的信息 vkd3d 你可以查看详细信息 这个环节。