#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::PipelineLayoutDescriptor & | GetPipelineLayoutDescriptor () 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 |
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.