37 lines
919 B
Markdown
37 lines
919 B
Markdown
# RHICommandQueue::Signal
|
|
|
|
```cpp
|
|
virtual void Signal(RHIFence* fence, uint64_t value) = 0;
|
|
```
|
|
|
|
向指定的栅栏发送信号,将栅栏的当前值设置为 `value`。当 GPU 执行到此信号操作时,栅栏值会被更新。该方法用于 GPU 到 CPU 同步。
|
|
|
|
**参数:**
|
|
- `fence` - 目标栅栏对象,不能为 `nullptr`
|
|
- `value` - 信号值,一个 64 位无符号整数
|
|
|
|
**返回:** 无
|
|
|
|
**线程安全:** ❌ 非线程安全,应在渲染线程中调用
|
|
|
|
**复杂度:** O(1)
|
|
|
|
**示例:**
|
|
|
|
```cpp
|
|
#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) - 返回类总览
|
|
- [Wait](wait.md) - 等待栅栏
|
|
- [RHIFence](../fence/fence.md) - 同步栅栏
|