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

Inherits AZ::RHI::Scope.

Public Types

enum class  ResourceFenceAction : uint32_t { Wait = 0 , Signal , Count }
 

Public Member Functions

 AZ_RTTI (Scope, "{FDACECE6-322E-480C-9331-DC639C320882}", Base)
 
 AZ_CLASS_ALLOCATOR (Scope, AZ::SystemAllocator)
 
void Begin (CommandList &commandList, AZ::u32 commandListIndex, AZ::u32 commandListCount) const
 
void End (CommandList &commandList, bool signalFencesForAliasedResources) const
 
MTLRenderPassDescriptor * GetRenderPassDescriptor () const
 
bool HasSignalFence () const
 
bool HasWaitFences () const
 
void SetSignalFenceValue (uint64_t fenceValue)
 
uint64_t GetSignalFenceValue () const
 
void SetWaitFenceValueByQueue (RHI::HardwareQueueClass hardwareQueueClass, uint64_t fenceValue)
 
uint64_t GetWaitFenceValueByQueue (RHI::HardwareQueueClass hardwareQueueClass) const
 
const FenceValueSet & GetWaitFences () const
 
void QueueResourceFence (ResourceFenceAction fenceAction, Fence &fence)
 Queue a fence related to the transient resource for this scope.
 
void SignalAllResourceFences (CommandList &commandList) const
 Signal all the transient resource fences associated with this scope.
 
void SignalAllResourceFences (id< MTLCommandBuffer > mtlCommandBuffer) const
 
void WaitOnAllResourceFences (CommandList &commandList) const
 Wait on all the transient resource fences associated with this scope.
 
void WaitOnAllResourceFences (id< MTLCommandBuffer > mtlCommandBuffer) const
 
bool IsWritingToSwapChain () const
 Accesors for the information cached in Compile phase.
 
bool IsRequestingSwapChain () const
 
- Public Member Functions inherited from AZ::RHI::Scope
 AZ_RTTI (Scope, "{C9EB500A-EF31-46E2-98DE-62396CDBAFB1}", Object)
 
bool IsInitialized () const
 Returns whether the scope is currently initialized.
 
bool IsActive () const
 Returns whether the scope is currently active on a frame.
 
const ScopeId & GetId () const
 Returns the scope id associated with this scope.
 
AZStd::string_view GetMarkerLabel () const
 Returns the string view to the gpu marker.
 
uint32_t GetIndex () const
 
const GraphGroupIdGetFrameGraphGroupId () const
 Returns the id of the graph group this scope belongs.
 
const FrameGraphGetFrameGraph () const
 Returns the frame graph instance which owns this scope.
 
HardwareQueueClass GetHardwareQueueClass () const
 Returns the hardware queue class for this scope.
 
void SetHardwareQueueClass (HardwareQueueClass hardwareQueueClass)
 Sets the hardware queue class for this scope.
 
uint32_t GetEstimatedItemCount () const
 
ScopeGetProducerByQueue (HardwareQueueClass hardwareQueueClass) const
 Returns the scope for the given hardware queue which must be scheduled immediately prior to this scope (can be null).
 
ScopeGetProducerOnSameQueue () const
 Returns the scope for the producer on the same hardware queue as us.
 
ScopeGetConsumerByQueue (HardwareQueueClass hardwareQueueClass) const
 Returns the scope for the given hardware queue which must be scheduled immediately after this scope (can be null).
 
ScopeGetConsumerOnSameQueue () const
 Returns the scope for the consumer on the same hardware queue as us.
 
const AZStd::vector< ScopeAttachment * > & GetAttachments () const
 Returns a list of attachments on this scope.
 
const AZStd::vector< ScopeAttachment * > & GetTransientAttachments () const
 Returns a list of attachments which reference transient resources on this scope.
 
const AZStd::vector< ImageScopeAttachment * > & GetImageAttachments () const
 Returns a list of all image scope attachments.
 
const AZStd::vector< ResolveScopeAttachment * > & GetResolveAttachments () const
 Returns a list of all resolve scope attachments.
 
const AZStd::vector< BufferScopeAttachment * > & GetBufferAttachments () const
 Returns a list of all buffer scope attachments.
 
const AZStd::vector< ResourcePoolResolver * > & GetResourcePoolResolves () const
 Returns a list of resource pools requiring a resolve operation.
 
const AZStd::vector< SwapChain * > & GetSwapChainsToPresent () const
 Returns a list of swap chains which require presentation at the end of the scope.
 
const AZStd::vector< Ptr< Fence > > & GetFencesToSignal () const
 Returns a list of fences to signal on completion of the scope.
 
const AZStd::vector< Ptr< Fence > > & GetFencesToWaitFor () const
 Returns a list of fences to wait for before start of the scope.
 
void Init (const ScopeId &scopeId, HardwareQueueClass hardwareQueueClass=HardwareQueueClass::Graphics)
 Initializes the scope.
 
void Activate (const FrameGraph *frameGraph, uint32_t index, const GraphGroupId &groupId)
 Activates the scope for the current frame.
 
void Compile (Device &device)
 Called when the scope is being compiled at the end of the graph-building phase.
 
void Deactivate ()
 Deactivates the scope for the current frame.
 
void Shutdown () override final
 Shuts down the scope.
 
void QueueResourcePoolResolves (ResourcePoolDatabase &resourcePoolDatabase)
 
ScopeFindCapableCrossQueueProducer (HardwareQueueClass hardwareQueueClass)
 Finds a producer for this scope that is at least as capable as the provided queue class.
 
ScopeFindMoreCapableCrossQueueProducer ()
 Finds a producer for this scope from a more capable queue.
 
ScopeFindCrossQueueProducer (HardwareQueueClass hardwareQueueClass)
 Finds a producer for this scope from a specific queue class.
 
void AddFenceToSignal (Ptr< Fence > fence)
 Adds a fence that will be signaled at the end of the scope.
 
- 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< ScopeCreate ()
 
- Static Public Member Functions inherited from AZ::RHI::Scope
static void LinkProducerConsumerByQueues (Scope *producer, Scope *consumer)
 Links the producer and consumer according to their queues.
 

Additional Inherited Members

- Protected Member Functions inherited from AZ::RHI::Scope
virtual void AddQueryPoolUse (Ptr< QueryPool > queryPool, const RHI::Interval &interval, RHI::ScopeAttachmentAccess access)
 Called when the scope will use a query pool during it's execution. Some platforms need this information.
 
- Protected Member Functions inherited from AZ::RHI::Object
void add_ref () const
 
void release () const
 
- Protected Attributes inherited from AZ::RHI::Object
AZStd::atomic_int m_useCount = 0
 

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