雖然 Vulkan 高性能圖形和計算 API 得到許多供應商的支持,但 Microsoft 和 Apple 是兩個著名的組織,它們尚未支持此 Khronos Group 標準。就微軟而言,他們顯然更喜歡他們內部的 Direct3D。不過,微軟正在準備提交他們的第一個 Vulkan 擴展。

作為提交第一個 Vulkan 擴展的準備工作的一部分,一夜之間合併到用於添加“MSFT”供應商前綴的 Vulkan 規範存儲庫。

vk.xml 現在有一個 MSFT 標籤,用於表示任何 Microsoft Corporation 向前發展的擴展。

Microsoft 工程師正在開發 Vulkan 分層驅動程​​序擴展。提議的 VK_MSFT_layered_driver 擴展的目的是幫助常見的 Vulkan 加載程序更好地處理驅動程序分層以改進物理設備排序。這是他們的問題陳述,解釋了尚未合併的 VK_MSFT_layered_driver 希望解決的情況:

“Vulkan 加載器能夠根據特定於平台的標準對物理設備進行排序。例如,在 Windows 上,加載器使用 LUID 將物理設備置於相同的順序作為 DXGI 適配器。但是,可以有多個 Vulkan 驅動程序為同一物理設備提供支持,其中一個是“本機”供應商提供的實現,另一個是在不同 API 之上的“分層”實現。分層實現的數量將包括 VulkanOn12(又名 Dozen),在 D3D12 上分層,和 MoltenVK,在 Metal 上分層。

在物理設備有兩個可能的驅動程序的系統上,它們之間的排序順序目前未指定。理想的排序順序應該將任何本機/非分層驅動程​​序放在任何分層驅動程​​序之前排序,因為應該預期本機驅動程序將提供更多功能和更高性能,因為分層本身會增加開銷。但是加載程序無法知道更喜歡哪個驅動程序。

本規範沒有解決的另一個問題是您有多個“本機”驅動程序用於單個物理設備的情況。在這種情況下,排序順序仍未指定,因為驅動程序之間的正確排序並不明顯。”

從微軟的角度來看,他們正在努力改進自己的 Mesa Dzn 驅動程序的處理適用於 Direct3D 12 上的 Vulkan API。如前所述,此擴展也可能對 Apple 的 Metal 圖形/計算 API 上的 Vulkan 中的 MoltenVK 有幫助。

那些對分層驅動程​​序擴展工作感興趣的人可以看到 這個 pull request 用於最新的討論。無論如何,很高興看到 Microsoft 準備他們的第一個 Vulkan 貢獻。

Categories: IT Info