微軟發佈DirectStorage 1.3:增強I/O調度,降低CPU開銷並提高資產加載性能

微軟在2021年3月正式推出了DirectStorage API,讓PC的NVMe SSD繞過CPU和內存,直接向顯存傳輸數據,可大幅降低遊戲加載的時間,理論上採用了該技術的遊戲可以做到場景的無縫接合。2022年10月微軟推出了DirectStorage 1.1,引入“asset decompression”功能,支持GPU解壓資源。到來2023年4月,微軟 帶來 了DirectStorage 1.2,添加了一個新的API查詢運行時選擇的路徑,並修復了一些bug及優化了性能表現。

現在微軟已正式 發佈 了DirectStorage 1.3,加入了名為“EnqueueRequests”的新API,同時繼續修復了部分bug。

EnqueueRequests為開發人員提供了更大的靈活性,可以控制數據請求的發出方式以及與圖形工作同步的方式。其允許開發人員在單個調用中批處理多個請求,並使用D3D12圍欄同步,以更好地協調DirectStorage與D3D12渲染管道。比如可以確保紋理加載請求和UpdateTileMappings按照正確的順序發生,從而避免GPU過早開始啓動。

DirectStorage 1.3還引入了DSTORAGE_DESTINATION_MULTIPLE_SUBRESOURCES_RANGE,這是一種新的目標類型,允許將一系列連續的子資源複製到D3D12資源中。這在寫入紋理中的單個或目標MIPS範圍時特別有用,允許開發人員編寫根據需要開始和結束的子資源。這一變化與新的EnqueueRequests API相結合,最終降低了CPU開銷並提高了資產加載性能。