Open 3D Engine Atom Gem API Reference 23.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
AZ::DX12::FenceImpl Class Referencefinal

#include <Fence.h>

Inherits AZ::RHI::Fence.

Public Member Functions

 AZ_CLASS_ALLOCATOR (FenceImpl, AZ::SystemAllocator)
DX12::FenceGet ()
- Public Member Functions inherited from AZ::RHI::Fence
 AZ_RTTI (Fence, "{D66C8B8F-226A-4018-89C1-F190A730CBC3}", Object)
ResultCode Init (Device &device, FenceState initialState)
 Initializes the fence using the provided device and initial state.
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)
- Public Member Functions inherited from AZ::RHI::DeviceObject
 AZ_RTTI (DeviceObject, "{17D34F71-944C-4AF5-9823-627474C4C0A6}", Object)
bool IsInitialized () const
 Returns whether the device object is initialized.
DeviceGetDevice () const
- Public Member Functions inherited from AZ::RHI::Object
 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.

Static Public Member Functions

static RHI::Ptr< FenceImplCreate ()

Additional Inherited Members

- Public Types inherited from AZ::RHI::Fence
using SignalCallback = AZStd::function< void()>
- Protected Member Functions inherited from AZ::RHI::Fence
bool ValidateIsInitialized () const
- Protected Member Functions inherited from AZ::RHI::DeviceObject
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.
- Protected Member Functions inherited from AZ::RHI::Object
void add_ref () const
void release () const
- Protected Attributes inherited from AZ::RHI::Fence
AZStd::thread m_waitThread
- Protected Attributes inherited from AZ::RHI::Object
AZStd::atomic_int m_useCount = 0

Detailed Description

The RHI fence implementation for DX12. This exists separately from Fence to decouple the RHI::Device instance from low-level queue management. This is because RHI::Fence holds a reference to the RHI device, which would create circular dependency issues if the device indirectly held a reference to one. Therefore, this implementation is only used when passing fences back and forth between the user and the RHI interface. Low-level systems will use the internal Fence instance instead.

The documentation for this class was generated from the following file: