|
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, and Handler.
Public Types | |
| enum | BarrierSlot : uint32_t { Aliasing = 0, Clear, Prologue, Epilogue, Resolve, Count } |
| enum | ResolveMode : uint32_t { None = 0, RenderPass, CommandList } |
Public Member Functions | |
| AZ_RTTI (Scope,"328CA015-A73A-4A64-8C10-798C021575B3", Base) | |
| AZ_CLASS_ALLOCATOR (Scope, AZ::SystemAllocator) | |
| void | Begin (CommandList &commandList) const |
| void | End (CommandList &commandList) const |
| template<class T > | |
| void | QueueAttachmentBarrier (const RHI::ScopeAttachment &attachment, BarrierSlot slot, const VkPipelineStageFlags src, const VkPipelineStageFlags dst, const T &barrier) |
| Adds a barrier for a scope attachment resource to be emitted at a later time. | |
| template<class T > | |
| void | QueueBarrier (BarrierSlot slot, const VkPipelineStageFlags src, const VkPipelineStageFlags dst, const T &barrier) |
| Adds a barrier over a resource that is not a scope attachment that will be emitted at a later time. | |
| void | EmitScopeBarriers (CommandList &commandList, BarrierSlot slot) const |
| Execute the queued barriers into the provided commandlist. | |
| void | ProcessClearRequests (CommandList &commandList) const |
| Process all clear requests needed for UAVs in the scope. | |
| void | ResetQueryPools (CommandList &commandList) const |
| Reset the RHI QueryPool in the QueryPoolAttachments. | |
| void | AddWaitSemaphore (const Semaphore::WaitSemaphore &semaphoreInfo) |
| void | AddSignalSemaphore (RHI::Ptr< Semaphore > semaphore) |
| void | AddSignalFence (RHI::Ptr< Fence > fence) |
|
const AZStd::vector < Semaphore::WaitSemaphore > & | GetWaitSemaphores () const |
|
const AZStd::vector< RHI::Ptr < Semaphore > > & | GetSignalSemaphores () const |
|
const AZStd::vector< RHI::Ptr < Fence > > & | GetSignalFences () const |
| bool | UsesRenderpass () const |
| ResolveMode | GetResolveMode () const |
| Returns the mode of MSAA resolving (if any). | |
| void | ResolveMSAAAttachments (CommandList &commandList) const |
| Resolves multisampled attachments using a command list. ResolveMode must be ResolveMode::CommandList. | |
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. | |
Static Public Attributes | |
| static constexpr uint32_t | BarrierSlotCount = static_cast<uint32_t>(BarrierSlot::Count) |
Friends | |
| class | RenderPassBuilder |
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 |
| bool AZ::Vulkan::Scope::UsesRenderpass | ( | ) | const |
Graphics scopes that draw items use a renderpass. Compute or copy scopes do not use a renderpass.