該項目 酒揭幕 前幾天新版本的上線 vkd3d 1.7 包 使用 Direct3D 12 實現,該實現通過轉換對 Vulkan 圖形 API 的調用來工作。
埃爾帕克特 包括 libvkd3d 庫 具有 Direct3D 12 實現的 libvkd3d-shader 和著色器模型轉換 4 和 5,以及具有簡化 Direct3D 3 應用程序遷移功能的 libvkd12d-utils,以及一組演示,包括 glxgears 到 Direct3D 12 的端口。
libvkd3d 庫 支持大多數 Direct3D 12 功能, 包括圖形和計算、命令列表和隊列、描述符和堆描述符、根簽名、無序訪問、示例、命令簽名、根常量、間接表示、Clear*() 和 Copy*() 方法。
除了它 libvkd3d-shader 實現字節碼4和5的翻譯 SPIR-V 中間表示中的著色模型。 支持頂點、像素、曲面細分、計算和簡單幾何著色器、根簽名序列化和反序列化。
算術、原子和位操作、比較和數據流控制操作符、採樣、收集和加載指令、亂序訪問操作(UAV,亂序訪問視圖)是從影子指令實現的。
vkd3d 1.7的主要新特性
在 vkd3d 1.7 的這個新版本中脫穎而出 él 繼續致力於改進 HLSL 著色器編譯器 (高級著色器語言),以及添加調用用戶定義函數的能力 並使用數組作為用戶定義函數的參數。
新版本中另一個突出的變化是 顯著改進了對配置文件的支持 著色器模型 Direct3D 1/2/3, 還添加了對 min16float 等低精度浮點類型的初始支持。
還強調的是 添加了對 SV_DispatchThreadID、SV_GroupID 和 SV_GroupThreadID 參數的支持 並且添加了一個公共 API 來解析 (vkd3d_shader_parse_dxbc) 和序列化 (vkd3d_shader_serialize_dxbc) DXBC 二進制數據。
, 其他突出的變化 新版本:
- 支持 Load() 紋理對象的可選“偏移”參數
方法。 - 支持內部函數 all()。
- 支持 distance() 內部函數。
- 支持內在函數 exp() 和 exp2()。
- 支持 frac() 內部函數。
- 支持 lit() 內部函數。
- 支持 reflect() 內在函數。
- 支持內部函數 sin() 和 cos()。
- 支持 smoothstep() 內部函數。
- 支持內部 sqrt() 和 rsqrt() 函數。
- 支持 step() 內部函數。
- 支持內部函數 transpose()。
- 支持不區分大小寫的浮點和雙字數據變體
類型 - 部分支持最小精度數據類型,例如“min16float”。 這些目前被解釋為它們的常規對應物。
改進了常量傳播支持,特別是通過 swizzles 進行常量傳播。 - 編譯選項 VKD3D_SHADER_COMPILE_OPTION_WRITE_TESS_GEOM_POINT_SIZE 可用於指定針對 Vulkan 環境的 SPIR-V 著色器是否應為幾何和曲面細分著色器寫入點大小,如果未指定,將寫入點大小。
最後, 對於那些有興趣了解更多信息的人,他們應該知道項目代碼是根據 LGPLv2.1 許可的,他們可以查閱這個新版本的詳細信息 在下面的鏈接中。
如何安裝 vkd3d 1.7?
為 有興趣能夠安裝 vkd3d 他們必須知道他們必須編譯源代碼,所以我們必須先獲取它,重要的是要提到 Vkd3d 依賴於 SPIRV-Headers 和 Vulkan-Headers (>= 1.2.139)。
要進行編譯,我們必須打開一個終端並在其中鍵入以下命令:
git clone https://gitlab.winehq.org/wine/vkd3d.git
完成後,我們繼續進入最近下載的目錄:
cd vkd3d
然後我們通過執行以下命令繼續編譯:
./configure make make install
Si 你想了解更多關於彙編的信息 vkd3d 你可以查看詳細信息 這個鏈接