不要與 Steam Play 使用的 Valve 下游 VKD3D-Proton 混淆,但 Wine 的 VKD3D 代碼庫本身今天已經發布了這個 Direct3D 12 on Vulkan 實現的新版本。

CodeWeavers 的 Henri Verbeet 今天發布了 VKD3D 1.7 作為上游 Wine 代碼所依賴的 Direct3D 12 實現的最新版本。與大多數 VKD3D 版本一樣,它是關於實現更多的 D3D12/HLSL 功能,現在有更多的內在函數,以及改進的 Shader Model 1/2/3 配置文件支持、計算著色器改進等等。

-HLSL 源類型的新功能:
-支持調用用戶定義的函數。
-支持用戶定義函數的數組參數。
-大大改進了對 Direct3D 著色器模型 1/2/3 配置文件的支持。
-支持 SV_DispatchThreadID、SV_GroupID 和 SV_GroupThreadID 計算著色器系統值語義。
-支持紋理對象 Load() 方法的可選“偏移”參數。
-支持 all() 內部函數。
-支持 distance() 內部函數。
-支持 exp() 和 exp2() 內部函數。
-支持 frac() 內部函數。
-支持 lit() 內部函數。
-支持 reflect() 內部函數。
-支持 sin() 和 cos() 內部函數。
-支持 smoothstep() 內部函數。
-支持 sqrt() 和 rsqrt() 內部函數。
-支持 step() 內部函數。
-支持 transpose() 內部函數。
-支持“float”和“dword”數據類型的不區分大小寫的變體。
-部分支持最小精度數據類型,如“min16float”。這些目前被解釋為它們的常規對應物。
-改進了常量傳播支持,特別是通過 swizzles 的常量傳播。

-HLSL 靜態變量現在正確地進行了零初始化。

-Direct3D 著色器模型 4 和 5 反彙編器輸出多采樣資源聲明的採樣計數。

-新界面:
-vkd3d_shader_parse_dxbc () 提供對解析 DXBC blob 的支持。
-vkd3d_shader_serialize_dxbc() 提供對序列化 DXBC blob 的支持。
-vkd3d_shader_free_dxbc() 用於釋放 vkd3d_shader_dxbc_desc 結構,由 vkd3d_shader_parse_dxbc() 返回。
-VKD3D_SHADER_COMPILE_OPTION_WRITE_TESS_GEOM_POINT_SIZE 編譯選項可用於指定針對 Vulkan 環境的 SPIR-V 著色器是否應為幾何和曲面細分著色器寫入點大小。如果未指定,將寫入磅值。

VKD3D 1.7 應該被拉入下一個 Wine 雙週開發版本,而那些想要立即使用這個 D3D12-on-Vulkan 庫的人可以通過 WineHQ Git

Categories: IT Info