Open 3D Engine Atom Gem API Reference 23.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
AZ::DX12::PipelineLayout Class Referencefinal

#include <PipelineLayout.h>

Public Member Functions

 AZ_CLASS_ALLOCATOR (PipelineLayout, AZ::SystemAllocator)
 
void Init (ID3D12DeviceX *dx12Device, const RHI::PipelineLayoutDescriptor &descriptor)
 Initializes the pipeline layout.
 
size_t GetRootParameterBindingCount () const
 Returns the number of root parameter bindings (1-to-1 with SRG).
 
RootParameterBinding GetRootParameterBindingByIndex (size_t index) const
 Returns the root parameter binding for the flat index.
 
RootParameterIndex GetRootConstantsRootParameterIndex () const
 Returns the root parameter index for the Root Constants.
 
size_t GetSlotByIndex (size_t index) const
 Returns the SRG binding slot associated with the SRG flat index.
 
size_t GetIndexBySlot (size_t slot) const
 Returns the SRG flat index associated with the SRG binding slot.
 
bool HasRootConstants () const
 Returns whether this pipeline layout has inline constants.
 
const RHI::PipelineLayoutDescriptorGetPipelineLayoutDescriptor () const
 
ID3D12RootSignature * Get () const
 Returns the platform pipeline layout object.
 
HashValue64 GetHash () const
 Returns the hash of the pipeline layout provided by the descriptor.
 

Friends

class PipelineLayoutCache
 
template<typename T >
struct AZStd::IntrusivePtrCountPolicy
 

Detailed Description

PipelineLayouts are created from a cache. They are internally de-duplicated using the hash value computed by the descriptor. Ownership of a particular element in the cache is still externally managed (via ConstPtr). When all references to a particular instance are destroyed, the object is unregistered from the cache. Therefore, ownership is still managed by the application and the cache doesn't grow unbounded.


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