Files
XCEngine/docs/api/d3d12/d3d12-command-queue.md

2.2 KiB

D3D12CommandQueue

命名空间: XCEngine::RHI

类型: class

头文件: XCEngine/RHI/D3D12/D3D12CommandQueue.h

描述: DirectX 12 命令队列封装类,负责提交命令列表到 GPU 执行

概述

D3D12CommandQueue 是 DirectX 12 命令队列的封装类,继承自 RHICommandQueue 接口。它负责将录制好的命令列表提交到 GPU 执行,支持 GPU/CPU 同步操作,如信号、等待等。命令队列是渲染管线的核心组件,所有渲染命令都通过命令队列提交到 GPU。

公共方法

方法 描述
D3D12CommandQueue() 默认构造函数
~D3D12CommandQueue() 虚析构函数
Initialize 初始化命令队列
Shutdown 关闭命令队列
ExecuteCommandLists 执行命令列表
Signal 设置围栏信号
Wait 等待围栏
GetCompletedValue 获取已完成值
WaitForIdle 等待空闲
GetType 获取队列类型
GetTimestampFrequency 获取时间戳频率
GetCommandQueue 获取底层队列指针
WaitForPreviousFrame 等待前一帧完成

使用示例

#include <XCEngine/RHI/D3D12/D3D12CommandQueue.h>

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();

相关文档