#include <Fence.h>
Inherits AZ::RHI::Fence.
Public Member Functions | |
AZ_CLASS_ALLOCATOR (FenceImpl, AZ::SystemAllocator) | |
Metal::Fence & | Get () |
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. | |
Device & | GetDevice () 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< FenceImpl > | Create () |
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 |
The RHI fence implementation for Metal. 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.