命令系统中枢,负责协调所有命令系统组件。
职责
- 管理三种类型(Graphics/Compute/Copy)的命令队列、分配器池、命令列表池
- 提供工作线程接口:获取序号、申请/释放资源、提交命令
- 提供主线程接口:帧边界同步、批量回收资源
- 管理帧围栏值,支持三缓冲或多缓冲模式
设计
使用 std::unordered_map 统一管理三种类型的池:
class CommandManager {
// 统一句柄类型
using AllocatorHandle = CommandPoolBase::Handle;
using CommandListHandle = CommandPoolBase::Handle;
private:
std::unordered_map<D3D12_COMMAND_LIST_TYPE, std::unique_ptr<CommandQueue>> m_queues;
std::unordered_map<D3D12_COMMAND_LIST_TYPE, std::unique_ptr<CommandPoolBase>> m_allocatorPools;
std::unordered_map<D3D12_COMMAND_LIST_TYPE, std::unique_ptr<CommandPoolBase>> m_commandListPools;
};
2026年5月9日大约 2 分钟
