Diligent::FenceVkImpl class final

Fence implementation in Vulkan backend.

Contents

Base classes

template<typename EngineImplTraits>
class FenceBase<EngineVkImplTraits>
Template class implementing base functionality of the fence object.

Public functions

auto GetCompletedValue() -> Uint64 final
Implementation of IFence::GetCompletedValue() in Vulkan backend. Note that this method is not thread-safe. The reason is that VulkanFencePool is not thread safe, and DeviceContextVkImpl::SignalFence() adds the fence to the pending fences list that are signaled later by the command context when it submits the command list. So there is no guarantee that the fence pool is not accessed simultaneously by multiple threads even if the fence object itself is protected by mutex.
void Reset(Uint64 Value) final
Implementation of IFence::Reset() in Vulkan backend.