17#include <vulkan/vulkan.h>
210 class FVulkanSemaphore
218 VkSemaphore m_Handle;
This file contains the custom types used in Engine's logic.
Manages Vulkan device resources and operations.
Definition VulkanDevice.h:33
Represents a Vulkan fence used for synchronization between the CPU and GPU.
Definition VulkanSynchronization.h:141
bool IsSignaled() const
Checks if the fence is currently signaled.
Definition VulkanSynchronization.h:162
EState
Definition VulkanSynchronization.h:183
@ NotReady
The fence is not signaled, initial state after reset.
Definition VulkanSynchronization.h:190
@ Signaled
The fence is signaled, indicating that the associated operations have completed.
Definition VulkanSynchronization.h:197
FVulkanFence(FVulkanDevice &InDevice, FVulkanFenceManager &InOwner, bool bCreateSignaled)
Constructor for FVulkanFence.
Definition VulkanSynchronization.cpp:6
VkFence GetHandle() const
Retrieves the Vulkan fence handle.
Definition VulkanSynchronization.h:174
Definition VulkanSynchronization.h:26
KarmaVector< FVulkanFence * > m_UsedFences
Array of fences currently in use by GPU or in-flight work.
Definition VulkanSynchronization.h:128
KarmaVector< FVulkanFence * > m_FreeFences
Array of free fences to be used.
Definition VulkanSynchronization.h:122
void ResetFence(FVulkanFence *Fence)
Resets the given fence to the unsignaled state.
Definition VulkanSynchronization.cpp:95
FVulkanFenceManager(FVulkanDevice &InDevice)
Constructor.
Definition VulkanSynchronization.h:34
FVulkanFence * AllocateFence(bool bCreateSignaled=false)
Allocates fence for use.
Definition VulkanSynchronization.cpp:37
~FVulkanFenceManager()
Makes sure m_UsedFences are zero i.e no fences are currently in use by GPU or inflight-work.
Definition VulkanSynchronization.cpp:32
bool WaitForFence(FVulkanFence *Fence)
Waits for the given fence to be signaled.
Definition VulkanSynchronization.cpp:74
void Denit()
Purpose is two-fold.
Definition VulkanSynchronization.cpp:64
void ReleaseFence(FVulkanFence *&Fence)
Releases the given fence back to the manager.
Definition VulkanSynchronization.cpp:104
void DestroyFence(FVulkanFence *InFence)
Destroys the given fence and releases its resources.
Definition VulkanSynchronization.cpp:24
Karma's std::vector wrapper with additional functionalities.
Definition KarmaTypes.h:243