#include <FrameGraphExecuteGroup.h>
Inherited by AZ::DX12::FrameGraphExecuteGroupBase, AZ::Metal::FrameGraphExecuteGroupBase, and AZ::Vulkan::FrameGraphExecuteGroupBase.
Classes | |
struct | InitMergedRequest |
struct | InitRequest |
Public Member Functions | |
AZ_RTTI (FrameGraphExecuteGroup, "{159FAD55-17EC-4B09-986F-01B740F96448}") | |
bool | IsComplete () const |
bool | IsSubmittable () const |
uint32_t | GetContextCount () const |
Returns the number of execute contexts in the group. | |
FrameGraphExecuteContext * | BeginContext (uint32_t contextindex) |
Begins the context at index. | |
void | EndContext (uint32_t contextIndex) |
JobPolicy | GetJobPolicy () const |
Protected Member Functions | |
void | Init (const InitRequest &request) |
void | Init (const InitMergedRequest &request) |
Friends | |
class | FrameGraphExecuter |
Provides a platform-independent implementation of ExecuteGroupContext.
This class handles the ExecuteGroupContext methods and exposes a new API for platforms to override. Platforms which utilize hierarchical command lists (e.g. Vulkan / Metal) can store the primary command list on this class, and then organize the group structure such that child parallel command lists for a particular scope become FrameGraphExecuteContexts.
Alternatively, this class can be used to structure work into batches so that submission occurs once for a set of command lists.
FrameGraphExecuteContext * AZ::RHI::FrameGraphExecuteGroup::BeginContext | ( | uint32_t | contextindex | ) |
Begins the context at index.
contextIndex. |
void AZ::RHI::FrameGraphExecuteGroup::EndContext | ( | uint32_t | contextIndex | ) |
Ends the context at index \ param contextIndex. This invalidates the FrameGraphExecuteContext* provided by BeginContext.
JobPolicy AZ::RHI::FrameGraphExecuteGroup::GetJobPolicy | ( | ) | const |
Returns the job policy for this group. The policy informs whether each context in the group can be independently traversed. If serial, then BeginContext and EndContext must be called IN ORDER on the same thread. If parallel, they may be called independently from any thread.