This page has been translated automatically.
视频教程
界面
要领
高级
实用建议
基础
专业(SIM)
UnigineEditor
界面概述
资源工作流程
Version Control
设置和首选项
项目开发
调整节点参数
Setting Up Materials
设置属性
照明
Sandworm
使用编辑器工具执行特定任务
如何擴展編輯器功能
嵌入式节点类型
Nodes
Objects
Effects
Decals
光源
Geodetics
World Nodes
Sound Objects
Pathfinding Objects
Players
编程
基本原理
搭建开发环境
使用范例
C++
C#
UnigineScript
统一的Unigine着色器语言 UUSL (Unified UNIGINE Shader Language)
Plugins
File Formats
材质和着色器
Rebuilding the Engine Tools
GUI
双精度坐标
应用程序接口
Animations-Related Classes
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
VR-Related Classes
创建内容
内容优化
材质
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials

Unigine::ResourceFence Class

Header: #include <UnigineResourceFence.h>

This class allows managing the resource fence, an object that allows synchronizing the engine GPU thread and an external GPU thread.

Notice

Fence synchronization is called implicitly by the engine, i.e. ID3D12CommandQueue::Wait/ID3D12CommandQueue::Signal (and similar for Vulkan using timeline semaphores) is called in ID3D12CommandQueue::Wait - ID3D12CommandQueue::ExecuteCommandLists - ID3D12CommandQueue::Signal order.

For DX12, it is called in the Engine's Internal thread, while Vulkan and DX11 implementations call it from Engine's Main thread.

Signal also increments values before signaling on the GPU.

ResourceFence Class

Members


ResourceFence ( ) #

ResourceFence constructor. Resource fence is created as enabled by default. It is created in engine GPU thread and is to be manually imported to the external graphics API.

void setEnabled ( bool enabled ) #

Toggles the resource fence on and off.

Arguments

  • bool enabled - true to enable the resource fence, false to disable it.

bool isEnabled ( ) const#

Returns the value indicating if the resource fence is enabled.

Return value

true if the resource fence is enabled, otherwise false.

void* getWin32Handle ( ) const#

Returns the pointer to a variable that receives the NT HANDLE value to the resource to share. You can use this handle in calls to access the resource.

Return value

Win32 handle. If called under Linux, returns nullptr.

int getFdHandle ( ) const#

Returns the file descriptor referencing the payload of the device memory object.

Return value

Linux handle. If called under Windows, returns -1.

unsigned long long getValue ( ) const#

Returns the fence value (signal and wait value).

Return value

The fence value.

unsigned long long incrementValue ( ) #

Increments the fence value (signal and wait value).

Return value

The fence value.

void waitGPU ( ) #

This method ensures that all processes in the engine GPU thread are completed.

void closeHandle ( ) #

Closes the handle. To avoid memory leaks, use this method when you no longer need the resource handle (for example, as soon as you imported the object to another graphics API).
Last update: 2024-12-13
Build: ()