我对 ID3D12GraphicsCommandList::SetGraphicsRootSignature
的存在感到有些困惑方法。据我了解this MSDN page ,它的唯一有效用法似乎是总是在 SetPipelineState
之后调用它,为其提供与创建管道状态对象时提供的相同的根签名。如果是这样,它不隐含有什么好处?还有其他方法可以使用此方法吗?
最佳答案
这是 CPU 优化,内部可以准备从根签名槽到实际绑定(bind)的映射的一部分。如果您在不同的管道状态对象之间共享一个根签名,那么这项工作可以为每个根签名完成一次,而不是每个管道状态对象一次。
您可能会调用 SetGraphicsRootSignature
比以前少SetGraphicPipelineState
.这就是为什么。
关于directx-12 - D3D12 的 SetGraphicsRootSignature 有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38535725/