危險追蹤與並排集區資源

針對非串流資源,Direct3D 可避免在轉譯期間發生特定危險情況,不過,由於危險追蹤可能會位於串流資源的並排層級,在串流資源轉譯期間追蹤危險情況,可能需要付出相當昂貴的代價。

舉例來說,針對非串流資源,執行階段不會允許任何指定的子資源同時繫結為輸入 (例如著色器資源檢視) 和輸出 (例如轉譯目標檢視)。如果遇到這類型的情況,執行階段將取消繫結輸入。 執行階段中的這項追蹤負擔不會造成高額的成本,而且會於子資源階層完成。 這項追蹤負擔的其中一項優勢,就是能盡可能降低意外按照硬體著色器執行順序運作的機率。 如果並非在指定的圖形處理器 (GPU) 上,硬體著色器執行順序可能會有所不同,而且一定會跨越不同 GPU。

追蹤串流資源的資源繫結方式可能需要付出相當昂貴的代價,因為追蹤本身會位於並排層級。 這可能會導致新的問題發生,例如,驗證可能會使用同時對應至表面內多個區域的單一並排,以嘗試轉譯至轉譯目標檢視。 如果事實證明,每一並排的危險追蹤會讓執行階段付出相當昂貴的代價,就理想上而言,這至少可在偵錯層中提供一個選項。

當應用程式向參考並排集區記憶體的串流資源發出寫入或讀取作業,而後續的讀取或寫入作業中的個別串流資源也將參考該並排集區記憶體的串流資源,那麼,就應先行完成第一項作業,再開始執行第二項作業。

對應會對應至並排集區