directx-12 - D3D12 的 SetGraphicsRootSignature 有什么意义?

标签 directx-12 direct3d12

我对 ID3D12GraphicsCommandList::SetGraphicsRootSignature 的存在感到有些困惑方法。据我了解this MSDN page ,它的唯一有效用法似乎是总是在 SetPipelineState 之后调用它,为其提供与创建管道状态对象时提供的相同的根签名。如果是这样,它不隐含有什么好处?还有其他方法可以使用此方法吗?

最佳答案

这是 CPU 优化,内部可以准备从根签名槽到实际绑定(bind)的映射的一部分。如果您在不同的管道状态对象之间共享一个根签名,那么这项工作可以为每个根签名完成一次,而不是每个管道状态对象一次。

您可能会调用 SetGraphicsRootSignature比以前少SetGraphicPipelineState .这就是为什么。

关于directx-12 - D3D12 的 SetGraphicsRootSignature 有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38535725/

相关文章:

c++ - 使用哪个 int 实现?

c++ - 在 Direct3D 12 中的描述符范围内设置多个描述符

c++ - 使用 MSAA 创建交换链失败

direct3d12 - D3D12 平铺资源第 4 层

DirectX 12 中的多线程

c++ - Frank Luna 的书简介中的盒子示例存在问题 '3D game programming with DirectX12'

visual-c++ - D3D12 CreateHeap 对齐,MSDN 使用 1024 还是 1000 来定义 KB

windows - DXGI 翻转模型锁定垂直同步