Files
XCEngine/docs/api/rhi/fence/fence.md
2026-03-20 02:35:45 +08:00

1.6 KiB
Raw Blame History

RHIFence

命名空间: XCEngine::RHI

类型: class (abstract)

头文件: XCEngine/RHI/RHIFence.h

描述: 围栏接口,用于 GPU 同步

概述

RHIFence 是 RHIRender Hardware Interface子系统中的围栏抽象接口用于在 CPU 和 GPU 之间进行同步操作。围栏是一种常用的 GPU 同步机制,允许 CPU 等待 GPU 完成特定任务,或让 GPU 等待 CPU 提交特定命令。

作为抽象基类RHIFence 定义了一组纯虚接口,具体实现由底层图形 API如 DirectX 12、Vulkan提供。

公共方法

方法 描述
Shutdown 关闭围栏并释放资源
Signal 发送信号(无参数版本)
Signal 发送信号(带值版本)
Wait 等待围栏达到指定值
GetCompletedValue 获取已完成的值
IsSignaled 检查围栏是否已发出信号
GetNativeHandle 获取原生句柄

使用示例

#include "XCEngine/RHI/RHIFence.h"

// 假设通过 RHI 设备创建围栏
RHIFence* fence = device->CreateFence();

// 提交 GPU 命令...

// 发送信号
fence->Signal();

// 在 CPU 端等待 GPU 完成
fence->Wait(fence->GetCompletedValue());

// 检查是否已完成
if (fence->IsSignaled()) {
    // GPU 工作已完成
}

// 获取原生句柄用于平台特定操作
void* nativeHandle = fence->GetNativeHandle();

// 关闭围栏
fence->Shutdown();

相关文档