This page has been translated automatically.
Видеоуроки
Интерфейс
Основы
Продвинутый уровень
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Профессиональный уровень (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Режимы вывода изображения
Физика
Браузер SDK 2
Лицензирование и типы лицензий
Дополнения (Add-Ons)
Демонстрационные проекты
API Samples
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Контроль версий
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World-ноды
Звуковые объекты
Объекты поиска пути
Player-ноды
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
Унифицированный язык шейдеров UUSL (Unified UNIGINE Shader Language)
Плагины
Форматы файлов
Материалы и шейдеры
Rebuilding the Engine Tools
Интерфейс пользователя (GUI)
Двойная точность координат
API
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
Учебные материалы

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: 13.12.2024
Build: ()