Files
XCEngine/docs/api/rhi/fence/fence.md
ssdfasd d83ed56177 fix(rhi): Fix RHI abstraction layer API docs per api-skill.md template
- Rename texture/dtor.md to destructor.md per template spec
- Remove duplicate non-hyphenated fence docs (getnativehandle.md, issignaled.md, getcompletedvalue.md)
- Fix template field issues:
  - swap-chain, command-queue: 类型 now uses 'class (abstract)'
  - sampler: 头文件 now uses full path 'XCEngine/RHI/RHISampler.h'
  - types: 类型 fixed from 'structs' to 'struct'
  - enums: 类型 fixed from 'enums' to 'enum class'
- Fix include paths in command-queue and pipeline-layout code examples
- Create missing constructor/destructor docs for 11 classes:
  buffer, texture, shader, device, command-list, command-queue,
  fence, sampler, swap-chain, pipeline-state, pipeline-layout
- Update class overview pages to include constructor/destructor entries
2026-03-22 03:07:41 +08:00

1.7 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提供。

公共方法

方法 描述
RHIFence 默认构造函数
~RHIFence 虚析构函数
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();

相关文档