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

Wine 项目已经发布了 vkd3d 1.5 软件包的版本,其中包含 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(高级着色器语言)着色器编译器进行了大量改进。 包括改进对 HLSL 对象类型(例如结构和数组中的 Texture2D)的支持,添加了对内置函数 dot()、ldexp() 和 lerp() 的支持,添加了对着色器模型 4 的逻辑运算符“and”、“or”的支持和 5 和“not”,以及转换布尔类型的能力。
  • 实现了 VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV 选项以加载 SPIR-V 多部分格式 (DXGI_FORMAT) 的无序访问表示 (UAV)。

来源: opennet.ru

添加评论