#include <CheckerboardPass.h>
Inherits AZ::RPI::RasterPass.
Public Member Functions | |
AZ_RTTI (CheckerboardPass, "{C78A4C90-3915-4D8C-80BE-3698CF72C2C1}", Base) | |
AZ_CLASS_ALLOCATOR (CheckerboardPass, SystemAllocator) | |
Data::Instance< RPI::AttachmentImage > | GetAttachmentImage (Name attachmentName, uint8_t frameOffset) |
![]() | |
AZ_RTTI (RasterPass, "{16AF74ED-743C-4842-99F9-347D77BA7F2A}", RenderPass) | |
AZ_CLASS_ALLOCATOR (RasterPass, SystemAllocator) | |
RHI::DrawListTag | GetDrawListTag () const override |
Check if the pass has a DrawListTag. Pass' DrawListTag can be used to filter draw items. | |
void | SetDrawListTag (Name drawListName) |
void | SetPipelineStateDataIndex (uint32_t index) |
ShaderResourceGroup * | GetShaderResourceGroup () |
Expose shader resource group. | |
uint32_t | GetDrawItemCount () |
![]() | |
AZ_RTTI (RenderPass, "{9441D114-60FD-487B-B2B7-0FBBC8A96FC2}", Pass) | |
AZ_CLASS_ALLOCATOR (RenderPass, SystemAllocator) | |
RHI::RenderAttachmentConfiguration | GetRenderAttachmentConfiguration () const |
RHI::MultisampleState | GetMultisampleState () const |
Get MultisampleState of this pass from its output attachments. | |
Data::Instance< ShaderResourceGroup > | GetShaderResourceGroup () |
Returns a pointer to the Pass ShaderResourceGroup. | |
ViewPtr | GetView () const |
void | BindSrg (const RHI::ShaderResourceGroup *srg) |
![]() | |
AZ_RTTI (Pass, "{EA34FF66-631D-433B-B449-71F5647E7BB5}", AZStd::intrusive_base) | |
AZ_CLASS_ALLOCATOR (Pass, SystemAllocator) | |
const Name & | GetName () const |
Returns the name of the pass (example: Bloom) | |
const Name & | GetPathName () const |
Return the path name of the pass (example: Root.SwapChain.Bloom) | |
uint32_t | GetTreeDepth () const |
Returns the depth of this pass in the tree hierarchy (Root depth is 0) | |
uint32_t | GetParentChildIndex () const |
Returns the index in the parent's array of children that this pass occupies (used for sorting passes) | |
uint32_t | GetInputCount () const |
Returns the number of input attachment bindings. | |
uint32_t | GetInputOutputCount () const |
Returns the number of input/output attachment bindings. | |
uint32_t | GetOutputCount () const |
Returns the number of output attachment bindings. | |
const PassTemplate * | GetPassTemplate () const |
void | SetEnabled (bool enabled) |
virtual bool | IsEnabled () const |
bool | HasDrawListTag () const |
bool | HasPipelineViewTag () const |
bool | BindViewSrg () const |
PassAttachmentBinding * | FindAttachmentBinding (const Name &slotName) |
PassAttachmentBindingListView | GetAttachmentBindings () const |
Return the set of attachment bindings. | |
ParentPass * | AsParent () |
Casts the pass to a parent pass if valid, else returns nullptr. | |
const ParentPass * | AsParent () const |
bool | IsRootPass () const |
Returns whether the pass is the root pass. | |
PassTree * | GetPassTree () const |
Returns the PassTree from the pass's RenderPipeline (or nullptr if there isn't one) | |
void | QueueForBuildAndInitialization () |
Queues the pass to have Build() and Initialize() called by the PassSystem on frame update. | |
void | QueueForRemoval () |
Queues the pass to have RemoveFromParent() called by the PassSystem on frame update. | |
void | QueueForInitialization () |
Queues the pass to have Initialize() called by the PassSystem on frame update. | |
void | AddAttachmentBinding (PassAttachmentBinding attachmentBinding) |
Adds an attachment binding to the list of this Pass' attachment bindings. | |
PassAttachmentBinding & | GetInputBinding (uint32_t index) |
PassAttachmentBinding & | GetInputOutputBinding (uint32_t index) |
PassAttachmentBinding & | GetOutputBinding (uint32_t index) |
void | AttachBufferToSlot (AZStd::string_view slot, Data::Instance< Buffer > buffer) |
void | AttachBufferToSlot (const Name &slot, Data::Instance< Buffer > buffer) |
void | AttachImageToSlot (const Name &slot, Data::Instance< AttachmentImage > image) |
virtual void | GetPipelineViewTags (PipelineViewTags &outTags) const |
Collect all different view tags from this pass. | |
virtual void | GetViewDrawListInfo (RHI::DrawListMask &outDrawListMask, PassesByDrawList &outPassesByDrawList, const PipelineViewTag &viewTag) const |
Adds this pass' DrawListTags to the outDrawListMask. | |
virtual void | SortDrawList (RHI::DrawList &drawList) const |
Function used by views to sort draw lists. Can be overridden so passes can provide custom sort functionality. | |
virtual const PipelineViewTag & | GetPipelineViewTag () const |
Check if the pass is associated to a view. If pass has a pipeline view tag, the rpi view assigned to this view tag will have pass's draw list tag. | |
virtual void | SetRenderPipeline (RenderPipeline *pipeline) |
Set render pipeline this pass belongs to. | |
RenderPipeline * | GetRenderPipeline () const |
Scene * | GetScene () const |
virtual void | DebugPrint () const |
Prints the pass. | |
TimestampResult | GetLatestTimestampResult () const |
Return the latest Timestamp result of this pass. | |
PipelineStatisticsResult | GetLatestPipelineStatisticsResult () const |
Return the latest PipelineStatistic result of this pass. | |
virtual void | SetTimestampQueryEnabled (bool enable) |
Enables/Disables Timestamp queries for this pass. | |
virtual void | SetPipelineStatisticsQueryEnabled (bool enable) |
Enables/Disables PipelineStatistics queries for this pass. | |
bool | ReadbackAttachment (AZStd::shared_ptr< AttachmentReadback > readback, uint32_t readbackIndex, const Name &slotName, PassAttachmentReadbackOption option=PassAttachmentReadbackOption::Output, const RHI::ImageSubresourceRange *mipsRange=nullptr) |
bool | IsTimestampQueryEnabled () const |
Returns whether the Timestamp queries is enabled/disabled for this pass. | |
bool | IsPipelineStatisticsQueryEnabled () const |
Returns whether the PipelineStatistics queries is enabled/disabled for this pass. | |
void | PrintIndent (AZStd::string &stringOutput, uint32_t indent) const |
Helper function to print spaces to indent the pass. | |
void | PrintPassName (AZStd::string &stringOutput, uint32_t indent=0) const |
Prints the name of the pass. | |
void | DebugPrintBinding (AZStd::string &stringOutput, const PassAttachmentBinding &binding) const |
Prints the attachment binding at the given index. | |
void | DebugPrintBindingAndConnection (AZStd::string &stringOutput, uint8_t bindingIndex) const |
Prints the attachment binding at the given index and its connection. | |
void | PrintErrors () const |
Prints the pass name and all the errors accumulated during build and setup. | |
void | PrintWarnings () const |
Prints the pass name and all the warnings accumulated during build and setup. | |
void | PrintMessages (const AZStd::vector< AZStd::string > &messages) const |
Helper function to print an array of messages (like errors or warnings) for a pass. | |
void | PrintBindingsWithoutAttachments (uint32_t slotTypeMask) const |
Prints the pass and all the list of inputs and input/outputs that are missing an attachment. | |
ParentPass * | GetParent () const |
Returns pointer to the parent pass. | |
PassState | GetPassState () const |
virtual void | UpdateConnectedBindings () |
void | UpdateConnectedInputBindings () |
void | UpdateConnectedOutputBindings () |
![]() | |
ScopeProducer (const ScopeId &scopeId) | |
const ScopeId & | GetScopeId () const |
Returns the scope id associated with this scope producer. | |
const Scope * | GetScope () const |
Returns the scope associated with this scope producer. | |
Static Public Member Functions | |
static RPI::Ptr< CheckerboardPass > | Create (const RPI::PassDescriptor &descriptor) |
![]() | |
static Ptr< RasterPass > | Create (const PassDescriptor &descriptor) |
Creates a RasterPass. | |
Additional Inherited Members | ||
![]() | ||
using | ChildPassIndex = RHI::Handle<uint32_t, class ChildPass> | |
![]() | ||
![]() | ||
RasterPass (const PassDescriptor &descriptor) | ||
void | Validate (PassValidationResults &validationResults) override | |
void | SetupFrameGraphDependencies (RHI::FrameGraphInterface frameGraph) override | |
void | CompileResources (const RHI::FrameGraphCompileContext &context) override | |
void | UpdateDrawList () | |
virtual void | SubmitDrawItems (const RHI::FrameGraphExecuteContext &context, uint32_t startIndex, uint32_t endIndex, uint32_t indexOffset) const | |
![]() | ||
RenderPass (const PassDescriptor &descriptor) | ||
void | SetupFrameGraphDependencies (RHI::FrameGraphInterface frameGraph) override | |
void | BuildCommandList (const RHI::FrameGraphExecuteContext &context) final | |
void | DeclareAttachmentsToFrameGraph (RHI::FrameGraphInterface frameGraph) const | |
void | DeclarePassDependenciesToFrameGraph (RHI::FrameGraphInterface frameGraph) const | |
void | BindPassSrg (const RHI::FrameGraphCompileContext &context, Data::Instance< ShaderResourceGroup > &shaderResourceGroup) | |
void | CollectSrgs () | |
void | ResetSrgs () | |
void | SetSrgsForDraw (RHI::CommandList *commandList) | |
void | SetSrgsForDispatch (RHI::CommandList *commandList) | |
void | SetPipelineViewTag (const PipelineViewTag &viewTag) | |
void | AddScopeQueryToFrameGraph (RHI::FrameGraphInterface frameGraph) | |
![]() | ||
Pass (const PassDescriptor &descriptor) | ||
PassDescriptor | GetPassDescriptor () const | |
void | ImportAttachments (RHI::FrameGraphAttachmentInterface attachmentDatabase) | |
Ptr< Pass > | FindAdjacentPass (const Name &passName) | |
const PassAttachmentBinding * | FindAttachmentBinding (const Name &slotName) const | |
Ptr< PassAttachment > | FindOwnedAttachment (const Name &attachmentName) const | |
Ptr< PassAttachment > | FindAttachment (const Name &slotName) const | |
const PassAttachmentBinding * | FindAdjacentBinding (const PassAttachmentRef &attachmentRef, const char *attachmentSourceTypeDebugName="attachment") | |
void | ProcessConnection (const PassConnection &connection, uint32_t slotTypeMask=0xFFFFFFFF) | |
void | LogError (AZStd::string &&message) | |
void | LogWarning (AZStd::string &&message) | |
void | Reset () | |
void | Build (bool calledFromPassSystem=false) | |
void | Initialize () | |
void | OnInitializationFinished () | |
void | FrameBegin (FramePrepareParams params) | |
void | FrameEnd () | |
void | UpdateReadbackAttachment (FramePrepareParams params, bool beforeAddScopes) | |
void | UpdateAttachmentCopy (FramePrepareParams params) | |
bool | UpdateImportedAttachmentImage (Ptr< PassAttachment > &attachment, RHI::ImageBindFlags bindFlags=RHI::ImageBindFlags::Color|RHI::ImageBindFlags::ShaderReadWrite, RHI::ImageAspectFlags aspectFlags=RHI::ImageAspectFlags::Color) | |
![]() | ||
ScopeProducer () | ||
void | SetHardwareQueueClass (HardwareQueueClass hardwareQueueClass) | |
Sets the HardwareQueueClass on the scope. | ||
void | SetScopeId (const ScopeId &scopeId) | |
void | InitScope (const ScopeId &scopeId, HardwareQueueClass hardwareQueueClass=HardwareQueueClass::Graphics) | |
![]() | ||
RHI::DrawListTag | m_drawListTag | |
RHI::Handle | m_pipelineStateDataIndex | |
RHI::DrawListView | m_drawListView | |
RHI::DrawList | m_combinedDrawList | |
s32 | m_viewportAndScissorTargetOutputIndex = -1 | |
RHI::Scissor | m_scissorState | |
RHI::Viewport | m_viewportState | |
bool | m_overrideScissorSate = false | |
bool | m_overrideViewportState = false | |
uint32_t | m_drawItemCount = 0 | |
![]() | ||
Data::Instance< ShaderResourceGroup > | m_shaderResourceGroup = nullptr | |
RHI::HardwareQueueClass | m_hardwareQueueClass = RHI::HardwareQueueClass::Graphics | |
![]() | ||
const Name | PassNameThis {"This"} | |
const Name | PassNameParent {"Parent"} | |
const Name | PipelineKeyword {"Pipeline"} | |
const Name | PipelineGlobalKeyword {"PipelineGlobal"} | |
AZStd::fixed_vector< PassAttachmentBinding, PassAttachmentBindingCountMax > | m_attachmentBindings | |
AZStd::vector< Ptr< PassAttachment > > | m_ownedAttachments | |
AZStd::vector< Pass * > | m_executeBeforePasses | |
AZStd::vector< Pass * > | m_executeAfterPasses | |
RenderPipeline * | m_pipeline = nullptr | |
AZStd::shared_ptr< const PassTemplate > | m_template = nullptr | |
PassRequest | m_request | |
ParentPass * | m_parent = nullptr | |
PipelineViewTag | m_viewTag | |
struct { | ||
union { | ||
struct { | ||
uint64_t m_createdByPassRequest: 1 | ||
uint64_t m_enabled: 1 | ||
uint64_t m_parentEnabled: 1 | ||
uint64_t m_alreadyCreatedChildren: 1 | ||
uint64_t m_createChildren: 1 | ||
uint64_t m_partOfHierarchy: 1 | ||
uint64_t m_hasDrawListTag: 1 | ||
uint64_t m_bindViewSrg: 1 | ||
uint64_t m_timestampQueryEnabled: 1 | ||
uint64_t m_pipelineStatisticsQueryEnabled: 1 | ||
uint64_t m_isPipelineRoot: 1 | ||
uint64_t m_containsGlobalReference: 1 | ||
} | ||
uint64_t m_allFlags = 0 | ||
} | ||
} | m_flags | |
AZStd::vector< AZStd::string > | m_errorMessages | |
AZStd::vector< AZStd::string > | m_warningMessages | |
uint32_t | m_errors = 0 | |
uint32_t | m_warnings = 0 | |
RHI::DrawListSortType | m_drawListSortType = RHI::DrawListSortType::KeyThenDepth | |
AZStd::shared_ptr< AttachmentReadback > | m_attachmentReadback | |
PassAttachmentReadbackOption | m_readbackOption | |
AZStd::weak_ptr< ImageAttachmentCopy > | m_attachmentCopy | |
AZStd::shared_ptr< PassData > | m_passData = nullptr | |
Optional data used during pass initialization. | ||
![]() | ||
static const size_t | MessageLogLimit = 256 | |
Checkerboard pass renders scene to a multi-sample target with checkerboard pattern The checkerboard will be shifted one pixel between odd and even frames In this customized pass, it creates two imported attachment images to save last frame's color and depth buffer And it also shifts the viewport for the checkerboard pattern