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::Scope Class Referencefinal

Inherits AZ::RHI::Scope.

Public Member Functions

 AZ_RTTI (Scope, "{DE4C74AA-FD4C-4BC3-80DC-F405B72E4327}", Base)
 
 AZ_CLASS_ALLOCATOR (Scope, AZ::SystemAllocator)
 
void Begin (CommandList &commandList, uint32_t commandListIndex, uint32_t commandListCount) const
 
void End (CommandList &commandList, uint32_t commandListIndex, uint32_t commandListCount) const
 
const bool IsStateSupportedByQueue (D3D12_RESOURCE_STATES state) const
 
void QueuePrologueTransition (const D3D12_RESOURCE_TRANSITION_BARRIER &transitionBarrier, const BarrierOp::CommandListState *state=nullptr)
 
void QueueEpilogueTransition (const D3D12_RESOURCE_TRANSITION_BARRIER &transitionBarrier, const BarrierOp::CommandListState *state=nullptr)
 
void QueueAliasingBarrier (const D3D12_RESOURCE_ALIASING_BARRIER &aliasingBarrier, const BarrierOp::CommandListState *state=nullptr)
 
void QueueResolveTransition (const D3D12_RESOURCE_TRANSITION_BARRIER &transitionBarrier, const BarrierOp::CommandListState *state=nullptr)
 
void QueuePreDiscardTransition (const D3D12_RESOURCE_TRANSITION_BARRIER &transitionBarrier, const BarrierOp::CommandListState *state=nullptr)
 
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
 
bool IsResourceDiscarded (const RHI::ImageScopeAttachment &scopeAttachment) const
 
bool IsResourceDiscarded (const RHI::BufferScopeAttachment &scopeAttachment) 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.
 
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
 

Member Function Documentation

◆ QueueAliasingBarrier()

void AZ::DX12::Scope::QueueAliasingBarrier ( const D3D12_RESOURCE_ALIASING_BARRIER &  aliasingBarrier,
const BarrierOp::CommandListState state = nullptr 
)

Adds an aliasing barrier that will be emitted at the beginning of the scope. Can specify a state that the command list need to be before emitting the barrier. A null state means that it doesn't matter in which state the command list is.

◆ QueueEpilogueTransition()

void AZ::DX12::Scope::QueueEpilogueTransition ( const D3D12_RESOURCE_TRANSITION_BARRIER &  transitionBarrier,
const BarrierOp::CommandListState state = nullptr 
)

Adds a transition barrier that will be emitted at the end of the scope. Can specify a state that the command list need to be before emitting the barrier. A null state means that it doesn't matter in which state the command list is.

◆ QueuePreDiscardTransition()

void AZ::DX12::Scope::QueuePreDiscardTransition ( const D3D12_RESOURCE_TRANSITION_BARRIER &  transitionBarrier,
const BarrierOp::CommandListState state = nullptr 
)

Adds a transition barrier that will be emitted at the beginning of the scope before discarting resources. Can specify a state that the command list need to be before emitting the barrier. A null state means that it doesn't matter in which state the command list is.

◆ QueuePrologueTransition()

void AZ::DX12::Scope::QueuePrologueTransition ( const D3D12_RESOURCE_TRANSITION_BARRIER &  transitionBarrier,
const BarrierOp::CommandListState state = nullptr 
)

Adds a transition barrier that will be emitted at the beginning of the scope. Can specify a state that the command list need to be before emitting the barrier. A null state means that it doesn't matter in which state the command list is.

◆ QueueResolveTransition()

void AZ::DX12::Scope::QueueResolveTransition ( const D3D12_RESOURCE_TRANSITION_BARRIER &  transitionBarrier,
const BarrierOp::CommandListState state = nullptr 
)

Adds a transition barrier that will be emitted at the end of the scope before resolving. Can specify a state that the command list need to be before emitting the barrier. A null state means that it doesn't matter in which state the command list is.


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