2.2 KiB
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();
相关文档
- D3D12 模块概览 - D3D12 模块总览
- D3D12CommandList - 命令列表
- D3D12Fence - 围栏同步