Files
XCEngine/docs/api/rhi/command-queue/signal.md

37 lines
919 B
Markdown
Raw Normal View History

# RHICommandQueue::Signal
```cpp
virtual void Signal(RHIFence* fence, uint64_t value) = 0;
```
2026-03-20 02:35:45 +08:00
向指定的栅栏发送信号,将栅栏的当前值设置为 `value`。当 GPU 执行到此信号操作时,栅栏值会被更新。该方法用于 GPU 到 CPU 同步。
**参数:**
2026-03-20 02:35:45 +08:00
- `fence` - 目标栅栏对象,不能为 `nullptr`
- `value` - 信号值,一个 64 位无符号整数
**返回:** 无
**线程安全:** ❌ 非线程安全,应在渲染线程中调用
**复杂度:** O(1)
**示例:**
```cpp
2026-03-20 02:35:45 +08:00
#include "RHICommandQueue.h"
#include "RHIFence.h"
void GPUToCPUSync(RHICommandQueue* cmdQueue, RHIFence* fence) {
cmdQueue->ExecuteCommandLists(1, (void**)&cmdList);
cmdQueue->Signal(fence, 1);
fence->Wait(1);
}
```
## 相关文档
- [RHICommandQueue 总览](command-queue.md) - 返回类总览
2026-03-20 02:35:45 +08:00
- [Wait](wait.md) - 等待栅栏
- [RHIFence](../fence/fence.md) - 同步栅栏