對于想要獲得更好的 GPU 性能的開發(fā)者來說,DirectX 12 是一款很重要的工具。2015 年的時候,DX12 隨著 Windows 10 的發(fā)布而正式與大家見面。而在最新的 Windows 10 秋季創(chuàng)作者更新(1709)中,該公司又為它添加更多的功能 API,以方便開發(fā)者追蹤和消除程序的 bug 。近日,Jacques van Rhyn 通過 DX 開發(fā)者博客發(fā)表了一篇文章,重點介紹了 DX12 兩大新特性。
作為一名開發(fā)者,你顯然需要清楚了解什么命令可能導(dǎo)致程序在 GPU 上運行時崩潰,然后盡力避免此類事件的發(fā)生。設(shè)計上,這兩款工具可以相輔相成,幫你重點消除“設(shè)備移除”或“設(shè)備丟失”之類的錯誤。
首先是改進了數(shù)據(jù)調(diào)試:
在秋季創(chuàng)作者更新之前,應(yīng)用程序無法直接控制底層的內(nèi)存資源。但在某些需要訪問資源內(nèi)存內(nèi)容的應(yīng)用中,這點又是非常重要的,比如剛好發(fā)生了設(shè)備移除錯誤之后。
我們已經(jīng)部署了一款這樣的工具,有需要的開發(fā)者們現(xiàn)可獲知更多更用的信息,幫助他們確定錯誤發(fā)生在了哪里。以及優(yōu)化試圖確定錯誤原因的時間,讓他們有更充裕的時間來跨系統(tǒng)修復(fù)。
其次是改進了命令調(diào)試:
我們制作了可以與前者共同使用的另一款工具,它可以創(chuàng)建標記,記錄哪些發(fā)自 GPU 的命令已經(jīng)被執(zhí)行,另有哪些在執(zhí)行過程中。
在崩潰發(fā)生的時候,即使是一個設(shè)備移除崩潰,這些信息仍然是滯后的,意味著我們可以很快地找出哪些命令可能誘發(fā)了崩潰。
對于開發(fā)者來說,這些信息可以顯著減少游戲開發(fā)和修復(fù) bug 所需的時間。
Van Rhyn 指出,新工具的意義,在于能夠讓開發(fā)者們將更多時間花在構(gòu)建“高性能、可靠的游戲”,而不再糾結(jié)于“搜索特定錯誤的深層原因”。
此外,Van Rhyn 還略詳細地介紹了今年 4 月份的 Windows 10 創(chuàng)意者更新(1704)中引入的“深度范圍測試”(Depth Bounds Testing)和“可編程多重采樣反鋸齒”(Programmable Multisample Anti-Aliasing)特性。
最后,Windows 10 秋季創(chuàng)意者更新還修復(fù)了多個 DX12 的 bug,且微軟開發(fā)部門將開始每月例行更新 PIX 圖形調(diào)試軟件。