Go to the documentation of this file.
46 static constexpr
Uint32 _RegisterBits = 16;
47 static constexpr
Uint32 _SRBRootIndexBits = 16;
48 static constexpr
Uint32 _SamplerIndBits = 16;
49 static constexpr
Uint32 _SpaceBits = 8;
50 static constexpr
Uint32 _SigRootIndexBits = 3;
51 static constexpr
Uint32 _SamplerAssignedBits = 1;
52 static constexpr
Uint32 _RootParamTypeBits = 3;
55 static_assert((1u << _RegisterBits) >= MAX_RESOURCES_IN_SIGNATURE,
"Not enough bits to store shader register");
56 static_assert((1u << _SamplerIndBits) >= MAX_RESOURCES_IN_SIGNATURE,
"Not enough bits to store sampler resource index");
57 static_assert((1u << _RootParamTypeBits) > D3D12_ROOT_PARAMETER_TYPE_UAV + 1,
"Not enough bits to store D3D12_ROOT_PARAMETER_TYPE");
84 Uint32 _SRBOffsetFromTableStart,
86 Uint32 _SigOffsetFromTableStart,
87 bool _ImtblSamplerAssigned,
88 D3D12_ROOT_PARAMETER_TYPE _RootParamType) noexcept :
101 VERIFY(
Register == _Register,
"Shader register (", _Register,
") exceeds maximum representable value");
102 VERIFY(
SRBRootIndex == _SRBRootIndex,
"SRB Root index (", _SRBRootIndex,
") exceeds maximum representable value");
103 VERIFY(
SigRootIndex == _SigRootIndex,
"Signature Root index (", _SigRootIndex,
") exceeds maximum representable value");
104 VERIFY(
SamplerInd == _SamplerInd,
"Sampler index (", _SamplerInd,
") exceeds maximum representable value");
105 VERIFY(
Space == _Space,
"Space (", _Space,
") exceeds maximum representable value");
ResourceCacheContentType
The type of the content that is stored in the shader resource cache.
Definition: ShaderResourceCacheCommon.hpp:39
PipelineResourceAttribsD3D12(Uint32 _Register, Uint32 _Space, Uint32 _SamplerInd, Uint32 _SRBRootIndex, Uint32 _SRBOffsetFromTableStart, Uint32 _SigRootIndex, Uint32 _SigOffsetFromTableStart, bool _ImtblSamplerAssigned, D3D12_ROOT_PARAMETER_TYPE _RootParamType) noexcept
Definition: PipelineResourceAttribsD3D12.hpp:80
static constexpr Uint32 InvalidSRBRootIndex
Definition: PipelineResourceAttribsD3D12.hpp:62
const Uint32 SRBRootIndex
Definition: PipelineResourceAttribsD3D12.hpp:69
const Uint32 SamplerInd
Definition: PipelineResourceAttribsD3D12.hpp:70
bool IsRootView() const
Definition: PipelineResourceAttribsD3D12.hpp:129
bool IsImmutableSamplerAssigned() const
Definition: PipelineResourceAttribsD3D12.hpp:109
Definition: PipelineResourceAttribsD3D12.hpp:43
static constexpr Uint32 InvalidSigRootIndex
Definition: PipelineResourceAttribsD3D12.hpp:63
static constexpr Uint32 InvalidOffset
Definition: PipelineResourceAttribsD3D12.hpp:65
bool IsCompatibleWith(const PipelineResourceAttribsD3D12 &rhs) const
Definition: PipelineResourceAttribsD3D12.hpp:136
const Uint32 SigRootIndex
Definition: PipelineResourceAttribsD3D12.hpp:72
const Uint32 Space
Definition: PipelineResourceAttribsD3D12.hpp:71
D3D12_ROOT_PARAMETER_TYPE GetD3D12RootParamType() const
Definition: PipelineResourceAttribsD3D12.hpp:127
static constexpr Uint32 InvalidRegister
Definition: PipelineResourceAttribsD3D12.hpp:64
Uint32 RootIndex(ResourceCacheContentType Type) const
Definition: PipelineResourceAttribsD3D12.hpp:118
const Uint32 RootParamType
Definition: PipelineResourceAttribsD3D12.hpp:74
const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE Type
Definition: PipelineStateD3D12Impl.cpp:69
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:51
std::size_t ComputeHash(const ArgsType &... Args)
Definition: HashUtils.hpp:57
bool IsCombinedWithSampler() const
Definition: PipelineResourceAttribsD3D12.hpp:113
Uint32 OffsetFromTableStart(ResourceCacheContentType Type) const
Definition: PipelineResourceAttribsD3D12.hpp:122
@ SRB
Resources of a shader resource binding.
const Uint32 Register
Definition: PipelineResourceAttribsD3D12.hpp:68
static constexpr Uint32 InvalidSamplerInd
Definition: PipelineResourceAttribsD3D12.hpp:61
#define VERIFY(...)
Definition: DebugUtilities.hpp:76
const Uint32 SigOffsetFromTableStart
Definition: PipelineResourceAttribsD3D12.hpp:75
size_t GetHash() const
Definition: PipelineResourceAttribsD3D12.hpp:149
const Uint32 SRBOffsetFromTableStart
Definition: PipelineResourceAttribsD3D12.hpp:76
The library uses Direct3D-style math:
Definition: AdvancedMath.hpp:37
const Uint32 ImtblSamplerAssigned
Definition: PipelineResourceAttribsD3D12.hpp:73