Wine 项目已发布带有 Direct3D 1.7 实现的 Vkd3d 12

Wine 项目已经发布了 vkd3d 1.7 软件包的版本,其中包含 Direct3D 12 的实现,该实现通过广播调用 Vulkan 图形 API 来工作。 该软件包包括具有 Direct3D 3 实现的 libvkd12d 库、具有着色器模型 3 和 4 转换器的 libvkd5d-shader 以及具有简化 Direct3D 3 应用程序移植功能的 libvkd12d-utils,以及一组演示示例,其中包括一个端口glxgears 到 Direct3D 12。项目代码根据 LGPLv2.1 进行分发许可。

libvkd3d 库支持大多数 Direct3D 12 功能,包括图形和计算设施、队列和命令列表、句柄和堆句柄、根签名、乱序访问、采样器、命令签名、根常量、间接渲染、清除方法 *( ) 和复制*()。 在 libvkd3d-shader 中,实现了将着色器模型 4 和 5 的字节码转换为中间 SPIR-V 表示形式。 支持顶点、像素、曲面细分、计算和简单几何着色器、根签名序列化和反序列化。 着色器指令包括算术、原子和位操作、比较和数据流控制运算符、采样、收集和加载指令、无序访问操作(UAV,Unordered Access View)。

在新版本中:

  • 继续改进 HLSL(高级着色器语言)中的着色器编译器:
    • 添加了调用自定义函数以及使用数组作为自定义函数的参数的功能。
    • 添加了对 SV_DispatchThreadID、SV_GroupID 和 SV_GroupThreadID 参数的支持。
    • 添加了内置函数 all()、distance()、exp()、exp2()、frac()、lit()、reflect()、sin()、cos()、smoothstep()、sqrt()、rsqrt () 、步骤()、转置()。
    • 添加了对低精度浮点类型(例如“min16float”)的初始支持。
  • 显着改进了对 Direct3D 1/2/3 着色器模型配置文件的支持。
  • 添加了用于 DXBC 二进制数据解析 (vkd3d_shader_parse_dxbc) 和序列化 (vkd3d_shader_serialize_dxbc) 的公共 API。

来源: opennet.ru

添加评论