Wine 项目发布了带有 Direct3D 1.4 实现的 Vkd3d 12

Wine 项目已经发布了 vkd3d 1.4 软件包的版本,其中包含 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)。

在新版本中:

  • 自 DirectX 9.0 以来,对 HLSL(高级着色器语言)着色器编译器进行了大量改进。
  • 已经提出了描述符堆的新实现,使用 Vulkan 扩展 VK_EXT_descriptor_indexing。
  • 添加了基于 Vulkan 扩展 K_KHR_timeline_semaphore 的新栅栏实现。

来源: opennet.ru

添加评论