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

添加評論