Inherits AZ::RHI::DeviceObject.
Inherited by AZ::DX12::FenceImpl, AZ::Metal::FenceImpl, AZ::Null::Fence, and AZ::Vulkan::Fence.
|
|
using | SignalCallback = AZStd::function< void()> |
| |
|
|
| AZ_RTTI (DeviceFence, "{D66C8B8F-226A-4018-89C1-F190A730CBC3}", Object) |
| |
|
ResultCode | Init (Device &device, FenceState initialState, FenceFlags flags=FenceFlags::None) |
| | Initializes the fence using the provided device and initial state.
|
| |
| ResultCode | InitCrossDevice (Device &device, RHI::Ptr< DeviceFence > originalDeviceFence) |
| |
| void | Shutdown () override final |
| | Shuts down the fence.
|
| |
|
RHI::ResultCode | SignalOnCpu () |
| | Signals the fence from the calling thread.
|
| |
|
RHI::ResultCode | WaitOnCpu () const |
| | Waits (blocks) for the fence on the calling thread.
|
| |
|
RHI::ResultCode | Reset () |
| | Resets the fence.
|
| |
|
FenceState | GetFenceState () const |
| | Returns whether the fence is signaled or not.
|
| |
| ResultCode | WaitOnCpuAsync (SignalCallback callback) |
| |
| virtual void | SetExternallySignalled () |
| |
|
| AZ_RTTI (DeviceObject, "{17D34F71-944C-4AF5-9823-627474C4C0A6}", Object) |
| |
|
bool | IsInitialized () const |
| | Returns whether the device object is initialized.
|
| |
| Device & | GetDevice () const |
| |
|
| AZ_RTTI (Object, "{E43378F1-2331-4173-94B8-990ED20E6003}") |
| |
|
void | SetName (const Name &name) |
| | Sets the name of the object.
|
| |
|
const Name & | GetName () const |
| | Returns the name set on the object by SetName.
|
| |
|
uint32_t | use_count () |
| | Returns the current use count of the object.
|
| |
|
|
bool | ValidateIsInitialized () const |
| |
|
void | Init (Device &device) |
| | The derived class should call this method to assign the device.
|
| |
| void | Shutdown () override |
| | Clears the current bound device to null.
|
| |
|
void | add_ref () const |
| |
| void | release () const |
| |
|
|
AZStd::thread | m_waitThread |
| |
|
AZStd::atomic_int | m_useCount = 0 |
| |
◆ InitCrossDevice()
| ResultCode AZ::RHI::DeviceFence::InitCrossDevice |
( |
Device & |
device, |
|
|
RHI::Ptr< DeviceFence > |
originalDeviceFence |
|
) |
| |
Initializes the fence from another fence on another device This fence will share a state with the originalDeviceFence The usedForCrossDevice flag must have been set for the initialization of the originalDeviceFence
◆ SetExternallySignalled()
| virtual void AZ::RHI::DeviceFence::SetExternallySignalled |
( |
| ) |
|
|
inlinevirtual |
BinaryFences in Vulkan need their dependent TimelineSemaphore Fences to be signalled. This is currently only implemented in Vulkan
◆ Shutdown()
| void AZ::RHI::DeviceFence::Shutdown |
( |
| ) |
|
|
finaloverridevirtual |
◆ WaitOnCpuAsync()
| ResultCode AZ::RHI::DeviceFence::WaitOnCpuAsync |
( |
SignalCallback |
callback | ) |
|
Spawns a dedicated thread to wait on the fence. The provided callback is invoked when the fence completes.
The documentation for this class was generated from the following file:
- Gems/Atom/RHI/Code/Include/Atom/RHI/DeviceFence.h