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

Inherits AZ::RHI::Scope, and RHI::FrameEventBus::Handler.

Public Types

enum class  BarrierSlot : uint32_t {
  Aliasing = 0 , Clear , Prologue , Epilogue ,
  Resolve , Count
}
 
enum class  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
 
const AZStd::vector< RHI::Ptr< Fence > > & GetWaitFences () 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 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.
 

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
 

Member Function Documentation

◆ UsesRenderpass()

bool AZ::Vulkan::Scope::UsesRenderpass ( ) const

Graphics scopes that draw items use a renderpass. Compute or copy scopes do not use a renderpass.


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