Files
XCEngine/docs/api/rhi/d3d12/command-queue/wait-for-idle.md
2026-03-20 02:35:45 +08:00

1.0 KiB

D3D12CommandQueue::WaitForIdle

void WaitForIdle() override;

阻塞当前线程,直到命令队列中所有已提交的命令全部执行完成。该方法会强制 GPU 等待所有待处理命令完成后才返回。

返回:

复杂度: O(n),其中 n 为待处理命令的数量

使用场景:

  • 帧同步:确保一帧的所有渲染命令完成后再进行下一步操作
  • 资源管理:确保 GPU 不再使用某个资源后再释放
  • 调试:等待特定命令完成以便进行 GPU 调试

注意: 这是一个阻塞调用,会暂停 CPU 线程直到 GPU 完成所有命令。频繁调用可能影响性能。

示例

// 提交渲染命令
commandQueue.ExecuteCommandLists(count, lists);

// 等待所有命令完成
commandQueue.WaitForIdle();

// 此时可以安全地释放命令列表使用的资源

相关文档