我想知道如果在将帧传递到ID3D12GraphicsCommandList
之前为其创建着色器资源视图的“好的”做法,并且在帧完成之后销毁该视频资源视图ID3D12Resource
?创建着色器资源查看性能
请注意,我只为所述资源创建描述符视图一次。
我想知道如果在将帧传递到ID3D12GraphicsCommandList
之前为其创建着色器资源视图的“好的”做法,并且在帧完成之后销毁该视频资源视图ID3D12Resource
?创建着色器资源查看性能
请注意,我只为所述资源创建描述符视图一次。
这是微软工程师为什么CreateShaderResourceView返回void而不是错误代码的引用。
我们故意在高频API上没有返回代码,因为每次调用错误都会浪费CPU时间,这可能会在一帧中几千次上发生。
它们通过设计假设它是一个可以被多次调用的api,对于你的问题的答案是,你可以做到这一点,这不是问题。
只要在覆盖它之前gpu可能需要它,你只需要小心地保护描述符堆中的视图生命周期。
好吧!感谢你的回答。 – rantingmong
你为什么只渲染一次? –
我不知道。我正在做的图形抽象库使纹理资源和着色器资源不紧密耦合。对于像DX11这样的API,我会在创建纹理资源时创建SRV,因为这是在AFAIK之前完成的方式。 – rantingmong