#include <BakeAcesOutputTransformLutPass.h>
Inherits AZ::RPI::ComputePass.
Public Member Functions | |
AZ_RTTI (BakeAcesOutputTransformLutPass, "{383C28CD-D744-4B48-A30D-086EF66E7BFB}", RPI::ComputePass) | |
AZ_CLASS_ALLOCATOR (BakeAcesOutputTransformLutPass, SystemAllocator) | |
void | SetDisplayBufferFormat (RHI::Format format) |
const ShaperParams & | GetShaperParams () const |
![]() | |
AZ_RTTI (ComputePass, "{61464A74-BD35-4954-AB27-492644EA6C2A}", RenderPass) | |
AZ_CLASS_ALLOCATOR (ComputePass, SystemAllocator) | |
void | SetTargetThreadCounts (uint32_t targetThreadCountX, uint32_t targetThreadCountY, uint32_t targetThreadCountZ) |
Sets the target total number of threads to dispatch in each dimension. | |
Data::Instance< ShaderResourceGroup > | GetShaderResourceGroup () const |
Returns the shader resource group. | |
Data::Instance< Shader > | GetShader () const |
Return the shader. | |
void | SetComputeShaderReloadedCallback (ComputeShaderReloadedCallback callback) |
void | UpdateShaderOptions (const ShaderVariantId &shaderVariantId) |
Updates the shader variant being used by the pass. | |
![]() | |
AZ_RTTI (RenderPass, "{9441D114-60FD-487B-B2B7-0FBBC8A96FC2}", Pass) | |
AZ_CLASS_ALLOCATOR (RenderPass, SystemAllocator) | |
RHI::RenderAttachmentConfiguration | GetRenderAttachmentConfiguration () |
void | SetRenderAttachmentConfiguration (const RHI::RenderAttachmentConfiguration &configuration, const AZ::RHI::ScopeGroupId &subpassGroupId) |
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 |
int | GetDeviceIndex () const |
Get the device index of this pass. | |
bool | SetDeviceIndex (int deviceIndex) |
Set the device index of this pass (and potentially affects its child's) | |
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. | |
void | DeclareAttachmentsToFrameGraph (RHI::FrameGraphInterface frameGraph, PassSlotType slotType=PassSlotType::Uninitialized, RHI::ScopeAttachmentAccess accessMask=RHI::ScopeAttachmentAccess::ReadWrite) const |
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 RHI::DrawListTag | GetDrawListTag () const |
Check if the pass has a DrawListTag. Pass' DrawListTag can be used to filter draw items. | |
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 | Validate (PassValidationResults &validationResults) |
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 |
void | ChangeConnection (const Name &localSlot, const Name &passName, const Name &attachment, RenderPipeline *pipeline) |
Alter the connection of an Input or InputOutput attachment. | |
void | ChangeConnection (const Name &localSlot, Pass *pass, const Name &attachment) |
Alter the connection of an Input or InputOutput attachment. | |
virtual void | UpdateConnectedBindings () |
void | UpdateConnectedInputBindings () |
void | UpdateConnectedOutputBindings () |
PassDescriptor | GetPassDescriptor () const |
![]() | |
ScopeProducer (const ScopeId &scopeId, int deviceIndex=MultiDevice::InvalidDeviceIndex) | |
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. | |
virtual int | GetDeviceIndex () const |
Static Public Member Functions | |
static RPI::Ptr< BakeAcesOutputTransformLutPass > | Create (const RPI::PassDescriptor &descriptor) |
Creates a DisplayMapperPass. | |
![]() | |
static Ptr< ComputePass > | Create (const PassDescriptor &descriptor) |
Creates a ComputePass. | |
Additional Inherited Members | ||
![]() | ||
using | ComputeShaderReloadedCallback = AZStd::function< void(ComputePass *computePass)> | |
![]() | ||
using | ChildPassIndex = RHI::Handle< uint32_t, class ChildPass > | |
![]() | ||
ComputePass (const PassDescriptor &descriptor, AZ::Name supervariant=AZ::Name("")) | ||
void | CompileResources (const RHI::FrameGraphCompileContext &context) override | |
void | MatchDimensionsToOutput () | |
void | OnShaderReinitialized (const Shader &shader) override | |
void | OnShaderAssetReinitialized (const Data::Asset< ShaderAsset > &shaderAsset) override | |
void | OnShaderVariantReinitialized (const ShaderVariant &shaderVariant) override | |
void | LoadShader (AZ::Name supervariant=AZ::Name("")) | |
![]() | ||
RenderPass (const PassDescriptor &descriptor) | ||
bool | CanBecomeSubpass () const | |
Can instances of this class be merged as subpasses? | ||
bool | BuildSubpassLayout (RHI::RenderAttachmentLayoutBuilder::SubpassAttachmentLayoutBuilder &subpassLayoutBuilder) | |
void | BuildRenderAttachmentConfiguration () | |
void | SetupFrameGraphDependencies (RHI::FrameGraphInterface frameGraph) override | |
void | BuildCommandList (const RHI::FrameGraphExecuteContext &context) final | |
void | DeclarePassDependenciesToFrameGraph (RHI::FrameGraphInterface frameGraph) const | |
void | BindPassSrg (const RHI::FrameGraphCompileContext &context, Data::Instance< ShaderResourceGroup > &shaderResourceGroup) | |
void | CollectSrgs () | |
void | ResetSrgs () | |
void | SetSrgsForDraw (const RHI::FrameGraphExecuteContext &context) | |
void | SetSrgsForDispatch (const RHI::FrameGraphExecuteContext &context) | |
void | SetPipelineViewTag (const PipelineViewTag &viewTag) | |
void | AddScopeQueryToFrameGraph (RHI::FrameGraphInterface frameGraph) | |
const AZ::RHI::ScopeGroupId & | GetSubpassGroupId () const | |
![]() | ||
Pass (const PassDescriptor &descriptor) | ||
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 | OnBuildFinished () | |
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) | |
AZ::Name | GetSuperVariantName () const | |
void | ReplaceSubpassInputs (RHI::SubpassInputSupportType supportedTypes) | |
![]() | ||
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, int deviceIndex=MultiDevice::InvalidDeviceIndex) | |
![]() | ||
Data::Instance< Shader > | m_shader = nullptr | |
Data::Instance< RPI::ShaderResourceGroup > | m_drawSrg = nullptr | |
RHI::DispatchItem | m_dispatchItem | |
AZ::Name | m_fullscreenSizeSourceSlotName | |
bool | m_fullscreenDispatch = false | |
AZ::RPI::PassAttachmentBinding * | m_fullscreenSizeSourceBinding = nullptr | |
bool | m_indirectDispatch = false | |
AZ::Name | m_indirectDispatchBufferSlotName | |
AZ::RPI::PassAttachmentBinding * | m_indirectDispatchBufferBinding = nullptr | |
AZ::RHI::Ptr< AZ::RHI::IndirectBufferSignature > | m_indirectDispatchBufferSignature | |
AZ::RHI::IndirectBufferView | m_indirectDispatchBufferView | |
PassDescriptor | m_passDescriptor | |
ComputeShaderReloadedCallback | m_shaderReloadedCallback = nullptr | |
![]() | ||
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"} | |
int | m_attachmentBindingsSize { 0 } | |
AZStd::deque< PassAttachmentBinding > | 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_parentDeviceIndexCached: 1 | ||
uint64_t m_mergeChildrenAsSubpasses: 1 | ||
uint64_t m_canBecomeASubpass: 1 | ||
uint64_t m_hasSubpassInput: 1 | ||
uint64_t m_lastFrameEnabled: 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 = PassAttachmentReadbackOption::Input | |
AZStd::weak_ptr< ImageAttachmentCopy > | m_attachmentCopy | |
AZStd::shared_ptr< PassData > | m_passData = nullptr | |
Optional data used during pass initialization. | ||
RHI::ScopeAttachmentStage | m_defaultShaderAttachmentStage = RHI::ScopeAttachmentStage::AnyGraphics | |
Default RHI::ScopeAttachmentStage value for all pass attachments of usage RHI::ScopeAttachmentUsage::Shader. | ||
int | m_deviceIndex = AZ::RHI::MultiDevice::InvalidDeviceIndex | |
![]() | ||
static const size_t | MessageLogLimit = 256 | |
The bake ACES output transofrm LUT pass. This pass the RRT and ODT components of the ACES pipeline into a LUT.