引用:
作者2011新的世紀
nv的驅動,目前在遇到奇點這個GAME時,會disable異步運算的部份。
有看到說,dx12在異步運算的地方是以單線程在處理的,而在dx12環境下若以多線程處理渲染運算,在到了提交命令時會因為多線程->單線程的情況而產生context switch,而影響效能。若是在dx11裡,這一部份會在驅動中自動處理。
相較於同樣是屬於low level的Vulkan api,看起來似乎沒這個問題。
|
DX11沒有這個問題因為根本不支援, DX11就是single-threaded的舊API
相比DX10對multi-thread最佳化其作法是讓每個thread錄製繪圖api的命令與參數
並轉成gpu可執行的byte code, 然後將錄製的command list送到主執行緒中去run
所以並非每個thread可以直接丟命令給gpu...
dx12 就是 AMD Mantle演化出來的, 當然Vulkan也是...
個人認為AMD的異步運算對開發者來說是友善的, 可以直接減少程式的複雜度, 不過實際上如何還是等產品出來再說