Open 3D Engine Atom Gem API Reference
23.05.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
|
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 GraphGroupId & | GetFrameGraphGroupId () const |
Returns the id of the graph group this scope belongs. | |
const FrameGraph * | GetFrameGraph () 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 |
Scope * | GetProducerByQueue (HardwareQueueClass hardwareQueueClass) const |
Returns the scope for the given hardware queue which must be scheduled immediately prior to this scope (can be null). | |
Scope * | GetProducerOnSameQueue () const |
Returns the scope for the producer on the same hardware queue as us. | |
Scope * | GetConsumerByQueue (HardwareQueueClass hardwareQueueClass) const |
Returns the scope for the given hardware queue which must be scheduled immediately after this scope (can be null). | |
Scope * | GetConsumerOnSameQueue () 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 () overridefinal |
Shuts down the scope. | |
void | QueueResourcePoolResolves (ResourcePoolDatabase &resourcePoolDatabase) |
Scope * | FindCapableCrossQueueProducer (HardwareQueueClass hardwareQueueClass) |
Finds a producer for this scope that is at least as capable as the provided queue class. | |
Scope * | FindMoreCapableCrossQueueProducer () |
Finds a producer for this scope from a more capable queue. | |
Scope * | FindCrossQueueProducer (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< Scope > | Create () |
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 |
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.
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.
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.
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.
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.