# D3D12CommandQueue **命名空间**: `XCEngine::RHI` **类型**: `class` **头文件**: `XCEngine/RHI/D3D12/D3D12CommandQueue.h` **描述**: DirectX 12 命令队列封装类,负责提交命令列表到 GPU 执行 ## 概述 D3D12CommandQueue 是 DirectX 12 命令队列的封装类,继承自 RHICommandQueue 接口。它负责将录制好的命令列表提交到 GPU 执行,支持 GPU/CPU 同步操作,如信号、等待等。命令队列是渲染管线的核心组件,所有渲染命令都通过命令队列提交到 GPU。 ## 公共方法 | 方法 | 描述 | |------|------| | `D3D12CommandQueue()` | 默认构造函数 | | `~D3D12CommandQueue()` | 虚析构函数 | | [Initialize](d3d12-command-queue-initialize.md) | 初始化命令队列 | | [Shutdown](d3d12-command-queue-shutdown.md) | 关闭命令队列 | | [ExecuteCommandLists](d3d12-command-queue-execute-command-lists.md) | 执行命令列表 | | [Signal](d3d12-command-queue-signal.md) | 设置围栏信号 | | [Wait](d3d12-command-queue-wait.md) | 等待围栏 | | [GetCompletedValue](d3d12-command-queue-get-completed-value.md) | 获取已完成值 | | [WaitForIdle](d3d12-command-queue-wait-for-idle.md) | 等待空闲 | | [GetType](d3d12-command-queue-get-type.md) | 获取队列类型 | | [GetTimestampFrequency](d3d12-command-queue-get-timestamp-frequency.md) | 获取时间戳频率 | | [GetCommandQueue](d3d12-command-queue-get-command-queue.md) | 获取底层队列指针 | | [WaitForPreviousFrame](d3d12-command-queue-wait-for-previous-frame.md) | 等待前一帧完成 | ## 使用示例 ```cpp #include using namespace XCEngine::RHI; // 创建命令队列 D3D12CommandQueue commandQueue; commandQueue.Initialize(device, CommandQueueType::Direct); // 执行命令列表 ID3D12CommandList* lists[] = { commandList->GetCommandList() }; commandQueue.ExecuteCommandListsInternal(1, lists); // 信号同步 commandQueue.Signal(fence, frameIndex); commandQueue.WaitForPreviousFrame(); // 等待空闲 commandQueue.WaitForIdle(); // 关闭 commandQueue.Shutdown(); ``` ## 相关文档 - [D3D12 模块概览](d3d12.md) - D3D12 模块总览 - [D3D12CommandList](d3d12-command-list.md) - 命令列表 - [D3D12Fence](d3d12-fence.md) - 围栏同步