我想知道如果在將幀傳遞到ID3D12GraphicsCommandList
之前爲其創建着色器資源視圖的「好的」做法,並且在幀完成之後銷燬該視頻資源視圖ID3D12Resource
?創建着色器資源查看性能
請注意,我只爲所述資源創建描述符視圖一次。
我想知道如果在將幀傳遞到ID3D12GraphicsCommandList
之前爲其創建着色器資源視圖的「好的」做法,並且在幀完成之後銷燬該視頻資源視圖ID3D12Resource
?創建着色器資源查看性能
請注意,我只爲所述資源創建描述符視圖一次。
這是微軟工程師爲什麼CreateShaderResourceView返回void而不是錯誤代碼的引用。
我們故意在高頻API上沒有返回代碼,因爲每次調用錯誤都會浪費CPU時間,這可能會在一幀中幾千次上發生。
它們通過設計假設它是一個可以被多次調用的api,對於你的問題的答案是,你可以做到這一點,這不是問題。
只要在覆蓋它之前gpu可能需要它,你只需要小心地保護描述符堆中的視圖生命週期。
好吧!感謝你的回答。 – rantingmong
你爲什麼只渲染一次? –
我不知道。我正在做的圖形抽象庫使紋理資源和着色器資源不緊密耦合。對於像DX11這樣的API,我會在創建紋理資源時創建SRV,因爲這是在AFAIK之前完成的方式。 – rantingmong