2016-08-09 372 views
0

我想知道如果在將幀傳遞到ID3D12GraphicsCommandList之前爲其創建着色器資源視圖的「好的」做法,並且在幀完成之後銷燬該視頻資源視圖ID3D12Resource創建着色器資源查看性能

請注意,我只爲所述資源創建描述符視圖一次。

+0

你爲什麼只渲染一次? –

+0

我不知道。我正在做的圖形抽象庫使紋理資源和着色器資源不緊密耦合。對於像DX11這樣的API,我會在創建紋理資源時創建SRV,因爲這是在AFAIK之前完成的方式。 – rantingmong

回答

0

這是微軟工程師爲什麼CreateShaderResourceView返回void而不是錯誤代碼的引用。

我們故意在高頻API上沒有返回代碼,因爲每次調用錯誤都會浪費CPU時間,這可能會在一幀中幾千次上發生。

它們通過設計假設它是一個可以被多次調用的api,對於你的問題的答案是,你可以做到這一點,這不是問題。

只要在覆蓋它之前gpu可能需要它,你只需要小心地保護描述符堆中的視圖生命週期。

+0

好吧!感謝你的回答。 – rantingmong