Go to the documentation of this file.
52 struct D3DShaderResourceAttribs;
63 bool bIsDeviceInternal =
false);
71 return m_pResourceAttribs[ResIndex];
77 static constexpr
Uint32 _ShaderRegisterBits = 24;
78 static constexpr
Uint32 _RegisterSpaceBits = 8;
79 static constexpr
Uint32 _InvalidShaderRegister = (1u << _ShaderRegisterBits) - 1;
80 static constexpr
Uint32 _InvalidRegisterSpace = (1u << _RegisterSpaceBits) - 1;
94 Uint32 _RegisterSpace) noexcept :
101 VERIFY(
ShaderRegister == _ShaderRegister,
"Shader register (", _ShaderRegister,
") exceeds maximum representable value");
102 VERIFY(
RegisterSpace == _RegisterSpace,
"Shader register space (", _RegisterSpace,
") exceeds maximum representable value");
115 return m_ImmutableSamplers[SampIndex];
149 Uint64 BuffersMask)
const;
160 #ifdef DILIGENT_DEVELOPMENT
165 const char* ShaderName,
166 const char* PSOName)
const;
170 using StaticResCacheTblSizesArrayType = std::array<Uint32, D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER + 1>;
171 void AllocateRootParameters(StaticResCacheTblSizesArrayType& StaticResCacheTblSizes);
177 ImmutableSamplerAttribs* m_ImmutableSamplers =
nullptr;
PipelineResourceAttribsD3D12 ResourceAttribs
Definition: PipelineResourceSignatureD3D12Impl.hpp:66
Base interface for a reference counter object that stores the number of strong and weak references an...
Definition: ReferenceCounters.h:44
void CommitRootTables(const CommitCacheResourcesAttribs &CommitAttribs) const
Definition: PipelineResourceSignatureD3D12Impl.cpp:535
DeviceContextD3D12Impl * pDeviceCtx
Definition: PipelineResourceSignatureD3D12Impl.hpp:141
const ResourceAttribs & GetResourceAttribs(Uint32 ResIndex) const
Definition: PipelineResourceSignatureD3D12Impl.hpp:68
Uint32 GetTotalRootParamsCount() const
Definition: PipelineResourceSignatureD3D12Impl.hpp:118
Pipeline resource signature description.
Definition: PipelineResourceSignature.h:166
void InitSRBResourceCache(ShaderResourceCacheD3D12 &ResourceCache)
Definition: PipelineResourceSignatureD3D12Impl.cpp:388
SHADER_TYPE
Describes the shader type.
Definition: GraphicsTypes.h:65
Implementation of the Diligent::PipelineResourceSignatureD3D12Impl class.
Definition: PipelineResourceSignatureD3D12Impl.hpp:55
uint64_t Uint64
64-bit unsigned integer
Definition: BasicTypes.h:50
Uint32 ShaderRegister
Definition: PipelineResourceSignatureD3D12Impl.hpp:84
const ShaderResourceCacheD3D12 & ResourceCache
Definition: PipelineResourceSignatureD3D12Impl.hpp:139
PipelineResourceSignatureDesc m_Desc
Object description.
Definition: DeviceObjectBase.hpp:182
Definition: PipelineResourceAttribsD3D12.hpp:43
Uint32 RegisterSpace
Definition: PipelineResourceSignatureD3D12Impl.hpp:85
Uint32 NumResources
The number of resources in Resources array.
Definition: PipelineResourceSignature.h:172
Definition: CommandContext.hpp:66
Render device implementation in Direct3D12 backend.
Definition: RenderDeviceD3D12Impl.hpp:70
Uint32 NumImmutableSamplers
The number of immutable samplers in ImmutableSamplers array.
Definition: PipelineResourceSignature.h:178
Uint32 GetNumRootTables() const
Definition: PipelineResourceSignatureD3D12Impl.hpp:123
std::unordered_map< HashMapStringKey, BindInfo, HashMapStringKey::Hasher > TMap
A mapping from the resource name to the binding (shader register, space, array size).
Definition: ResourceBindingMap.hpp:67
Definition: ShaderResourceCacheD3D12.hpp:119
Uint32 BaseRootIndex
Definition: PipelineResourceSignatureD3D12Impl.hpp:144
bool IsCompute
Definition: PipelineResourceSignatureD3D12Impl.hpp:143
~PipelineResourceSignatureD3D12Impl()
Definition: PipelineResourceSignatureD3D12Impl.cpp:367
Definition: PipelineResourceSignatureD3D12Impl.hpp:137
Uint32 DeviceCtxId
Definition: PipelineResourceSignatureD3D12Impl.hpp:142
Definition: PipelineResourceSignatureD3D12Impl.hpp:74
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:51
const ImmutableSamplerAttribs & GetImmutableSamplerAttribs(Uint32 SampIndex) const
Definition: PipelineResourceSignatureD3D12Impl.hpp:112
CommandContext & Ctx
Definition: PipelineResourceSignatureD3D12Impl.hpp:140
Definition: ShaderResources.hpp:80
bool HasImmutableSamplerArray(SHADER_TYPE ShaderStage) const
Definition: PipelineResourceSignatureD3D12Impl.cpp:715
bool IsValid() const
Definition: PipelineResourceSignatureD3D12Impl.hpp:105
ImmutableSamplerAttribs()
Definition: PipelineResourceSignatureD3D12Impl.hpp:87
Device context implementation in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.hpp:59
#define VERIFY_EXPR(...)
Definition: DebugUtilities.hpp:79
PipelineResourceSignatureD3D12Impl(IReferenceCounters *pRefCounters, RenderDeviceD3D12Impl *pDevice, const PipelineResourceSignatureDesc &Desc, bool bIsDeviceInternal=false)
Definition: PipelineResourceSignatureD3D12Impl.cpp:114
#define VERIFY(...)
Definition: DebugUtilities.hpp:76
const RootParamsManager & GetRootParams() const
Definition: PipelineResourceSignatureD3D12Impl.hpp:151
Uint32 GetNumRootViews() const
Definition: PipelineResourceSignatureD3D12Impl.hpp:128
void CopyStaticResources(ShaderResourceCacheD3D12 &ResourceCache) const
Definition: PipelineResourceSignatureD3D12Impl.cpp:393
Uint32 ArraySize
Definition: PipelineResourceSignatureD3D12Impl.hpp:83
Template class implementing base functionality of the pipeline resource signature object.
Definition: PipelineResourceSignatureBase.hpp:78
ImmutableSamplerAttribs(Uint32 _ArraySize, Uint32 _ShaderRegister, Uint32 _RegisterSpace) noexcept
Definition: PipelineResourceSignatureD3D12Impl.hpp:92
Uint32 GetNumRootViews() const
Definition: RootParamsManager.hpp:141
Uint32 GetNumRootTables() const
Definition: RootParamsManager.hpp:140
void UpdateShaderResourceBindingMap(ResourceBinding::TMap &ResourceMap, SHADER_TYPE ShaderStage, Uint32 BaseRegisterSpace) const
Definition: PipelineResourceSignatureD3D12Impl.cpp:648
Container for root parameters.
Definition: RootParamsManager.hpp:127
void CommitRootViews(const CommitCacheResourcesAttribs &CommitAttribs, Uint64 BuffersMask) const
Definition: PipelineResourceSignatureD3D12Impl.cpp:464
The library uses Direct3D-style math:
Definition: AdvancedMath.hpp:37