2016-08-09 158 views
0

我想知道如果在将帧传递到ID3D12GraphicsCommandList之前为其创建着色器资源视图的“好的”做法,并且在帧完成之后销毁该视频资源视图ID3D12Resource创建着色器资源查看性能

请注意,我只为所述资源创建描述符视图一次。

+0

你为什么只渲染一次? –

+0

我不知道。我正在做的图形抽象库使纹理资源和着色器资源不紧密耦合。对于像DX11这样的API,我会在创建纹理资源时创建SRV,因为这是在AFAIK之前完成的方式。 – rantingmong

回答

0

这是微软工程师为什么CreateShaderResourceView返回void而不是错误代码的引用。

我们故意在高频API上没有返回代码,因为每次调用错误都会浪费CPU时间,这可能会在一帧中几千次上发生。

它们通过设计假设它是一个可以被多次调用的api,对于你的问题的答案是,你可以做到这一点,这不是问题。

只要在覆盖它之前gpu可能需要它,你只需要小心地保护描述符堆中的视图生命周期。

+0

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