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

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

libvkd3d 库 支持 Direct3D 12 的大部分功能,包括图形和计算设施、队列和命令列表、句柄和堆句柄、根签名、乱序访问、采样器、命令签名、根常量、间接渲染、Clear*() 方法并复制*()。

libvkd3d-shader 实现将着色器模型的字节码 4 和 5 转换为 SPIR-V 的中间表示。 支持顶点、像素、曲面细分、计算和简单几何着色器、根签名序列化和反序列化。 算术、原子和位操作、比较和数据流控制运算符、采样、收集和加载指令、无序访问操作(UAV、无序访问视图)都是从着色器指令实现的。

其中最重要的是 创新 在 Vkd3d 1.2 中,突出显示以下内容:

  • libvkd3d-shader 库已准备好在第三方项目中使用。
  • 曲面细分着色器支持。
  • 支持根签名的转换、序列化和反序列化(vkd3d_serialize_versioned_root_signature() 和 vkd3d_create_versioned_root_signature_deserializer())。
  • 支持流式输出。
  • 实现了许多以前无法使用的 Direct3D 12 功能,包括支持多重采样、资源预留、
    间接索引渲染、无需像素着色器的深度渲染、从不同命令队列同时访问资源、空视图。

  • 添加了环境变量:VKD3D_CONFIG 用于设置更改 libvkd3d 行为的选项,以及 VKD3D_VULKAN_DEVICE 用于覆盖 Vulkan API 的设备。
  • 添加了对 bufinfo 着色器指令的支持,
    评估质心,
    评估样本索引,
    ld2ms,
    样本_b,
    样本_d,
    样本信息,
    样本位置。

来源: opennet.ru

添加评论