Wine 專案發布了具有 Direct3D 1.3 實現的 Vkd3d 12

經過一年半的開發,Wine 專案發布了 vkd3d 1.3 包,其中包含 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)。

Vkd3d 1.3 最重要的創新包括:

  • 新增了對 HLSL(高級著色器語言)中編譯和預處理著色器的初始支持,從 DirectX 9.0 開始提供。
  • 新增了對 5.1 著色器模型中定義的描述符數組的支援。
  • 為著色器中的雙精度浮點運算、曲面細分著色器的間接尋址、從著色器導出模板、「精確」著色器修改器以及記憶體資源的全域屏障提供支援。
  • 將 Direct3D 著色器從字節碼反彙編為彙編表示的功能已實現。
  • 新增了對解析 Direct3D 3、1 和 2 著色器模型中使用的舊 Direct3D 字節碼格式的支援。
  • libvkd3d 新增了 Direct3D 12 功能,例如根簽名、無序視圖計數器、輸出邏輯合併運算子以及mirror_once 紋理定址模式。新增了 vkd3d_host_time_domain_info 結構。

來源: opennet.ru

添加評論