5#include "Containers/Array.h"
135 return SemaphoreHandle;
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
EVulkanSemaphoreFlags
Definition VulkanSynchronization.h:107
Definition RefCounting.h:283
Definition VulkanDevice.h:279
Definition VulkanSynchronization.h:58
void ReleaseFence(FVulkanFence *&Fence)
Definition VulkanSynchronization.cpp:70
void Deinit()
Definition VulkanSynchronization.cpp:38
FVulkanDevice & Device
Definition VulkanSynchronization.h:93
bool IsFenceSignaled(FVulkanFence *Fence)
Definition VulkanSynchronization.h:70
FVulkanFenceManager(FVulkanDevice &InDevice)
Definition VulkanSynchronization.h:60
TArray< FVulkanFence * > UsedFences
Definition VulkanSynchronization.h:96
void DestroyFence(FVulkanFence *Fence)
Definition VulkanSynchronization.cpp:30
FVulkanFence * AllocateFence(bool bCreateSignaled=false)
Definition VulkanSynchronization.cpp:48
void WaitAndReleaseFence(FVulkanFence *&Fence, uint64 TimeInNanoseconds)
Definition VulkanSynchronization.cpp:83
bool CheckFenceState(FVulkanFence *Fence)
Definition VulkanSynchronization.cpp:97
bool WaitForFence(FVulkanFence *Fence, uint64 TimeInNanoseconds)
Definition VulkanSynchronization.cpp:119
~FVulkanFenceManager()
Definition VulkanSynchronization.cpp:25
void ResetFence(FVulkanFence *Fence)
Definition VulkanSynchronization.cpp:175
bool WaitForAnyFence(TArrayView< FVulkanFence * > Fences, uint64 TimeInNanoseconds)
Definition VulkanSynchronization.cpp:143
FCriticalSection FenceLock
Definition VulkanSynchronization.h:94
TArray< FVulkanFence * > FreeFences
Definition VulkanSynchronization.h:95
Definition VulkanSynchronization.h:17
FVulkanFenceManager & GetOwner()
Definition VulkanSynchronization.h:31
EState
Definition VulkanSynchronization.h:40
VkFence Handle
Definition VulkanSynchronization.h:37
friend FVulkanFenceManager
Definition VulkanSynchronization.h:54
VkFence GetHandle() const
Definition VulkanSynchronization.h:21
EState State
Definition VulkanSynchronization.h:48
~FVulkanFence()
Definition VulkanSynchronization.cpp:18
FVulkanFenceManager & Owner
Definition VulkanSynchronization.h:50
bool IsSignaled() const
Definition VulkanSynchronization.h:26
Definition VulkanSynchronization.h:127
bool IsExternallySignaled() const
Definition VulkanSynchronization.h:143
bool IsTimeline() const
Definition VulkanSynchronization.h:148
bool IsExternallyOwned() const
Definition VulkanSynchronization.h:138
bool WaitForTimelineSemaphoreValue(uint64 Value, uint64 Timeout)
Definition VulkanSynchronization.cpp:229
VkSemaphore GetHandle() const
Definition VulkanSynchronization.h:133
uint64 GetTimelineSemaphoreValue()
Definition VulkanSynchronization.cpp:252
virtual ~FVulkanSemaphore()
Definition VulkanSynchronization.cpp:215
Definition ArrayView.h:139