LLVM: llvm::hlsl::rootsig Namespace Reference (original ) (raw )
Enumerations
enum class
RegisterType { BReg , TReg , UReg , SReg }
enum class
RootSignatureElementKind { Error = 0 , RootFlags = 1 , RootConstants = 2 , SRV = 3 , UAV = 4 , CBV = 5 , DescriptorTable = 6 , StaticSamplers = 7 }
Functions
LLVM_ABI raw_ostream &
operator<< (raw_ostream &OS, const dxbc::RootFlags &Flags)
The following contains the serialization interface for root elements.
LLVM_ABI raw_ostream &
operator<< (raw_ostream &OS, const RootConstants &Constants)
LLVM_ABI raw_ostream &
operator<< (raw_ostream &OS, const DescriptorTableClause &Clause )
LLVM_ABI raw_ostream &
operator<< (raw_ostream &OS, const DescriptorTable &Table)
LLVM_ABI raw_ostream &
operator<< (raw_ostream &OS, const RootDescriptor &Descriptor)
LLVM_ABI raw_ostream &
operator<< (raw_ostream &OS, const StaticSampler &StaticSampler )
LLVM_ABI raw_ostream &
operator<< (raw_ostream &OS, const RootElement &Element)
LLVM_ABI void
dumpRootElements (raw_ostream &OS, ArrayRef < RootElement > Elements)
LLVM_ABI bool
verifyRootFlag (uint32_t Flags)
LLVM_ABI bool
verifyVersion (uint32_t Version )
LLVM_ABI bool
verifyRegisterValue (uint32_t RegisterValue)
LLVM_ABI bool
verifyRegisterSpace (uint32_t RegisterSpace)
LLVM_ABI bool
verifyRootDescriptorFlag (uint32_t Version , dxbc::RootDescriptorFlags Flags)
LLVM_ABI bool
verifyRangeType (uint32_t Type )
LLVM_ABI bool
verifyDescriptorRangeFlag (uint32_t Version , dxil::ResourceClass Type , dxbc::DescriptorRangeFlags Flags)
LLVM_ABI bool
verifyStaticSamplerFlags (uint32_t Version , dxbc::StaticSamplerFlags Flags)
LLVM_ABI bool
verifyNumDescriptors (uint32_t NumDescriptors)
LLVM_ABI bool
verifyMipLODBias (float MipLODBias)
LLVM_ABI bool
verifyMaxAnisotropy (uint32_t MaxAnisotropy)
LLVM_ABI bool
verifyLOD (float LOD)
LLVM_ABI bool
verifyNoOverflowedOffset (uint64_t Offset )
LLVM_ABI uint64_t
computeRangeBound (uint64_t Offset , uint32_t Size )
template<typename T >
static raw_ostream &
printFlags (raw_ostream &OS, const T Value , ArrayRef < EnumEntry < T > > Flags)
static raw_ostream &
operator<< (raw_ostream &OS, const Register &Reg )
static raw_ostream &
operator<< (raw_ostream &OS, const llvm::dxbc::ShaderVisibility &Visibility)
static raw_ostream &
operator<< (raw_ostream &OS, const llvm::dxbc::SamplerFilter &Filter )
static raw_ostream &
operator<< (raw_ostream &OS, const dxbc::TextureAddressMode &Address )
static raw_ostream &
operator<< (raw_ostream &OS, const dxbc::ComparisonFunc &CompFunc)
static raw_ostream &
operator<< (raw_ostream &OS, const dxbc::StaticBorderColor &BorderColor)
static raw_ostream &
operator<< (raw_ostream &OS, const dxil::ResourceClass &Type )
static raw_ostream &
operator<< (raw_ostream &OS, const dxbc::RootDescriptorFlags &Flags)
static raw_ostream &
operator<< (raw_ostream &OS, const llvm::dxbc::DescriptorRangeFlags &Flags)
static raw_ostream &
operator<< (raw_ostream &OS, const llvm::dxbc::StaticSamplerFlags &Flags)
static std::optional< uint32_t >
extractMdIntValue (MDNode *Node , unsigned int OpId)
static std::optional< float >
extractMdFloatValue (MDNode *Node , unsigned int OpId)
static std::optional< StringRef >
extractMdStringValue (MDNode *Node , unsigned int OpId)
template<typename T , typename = std::enable_if_t< std::is_enum_v && std::is_same_v<std::underlying_type_t, uint32_t>>>
static Expected < T >
extractEnumValue (MDNode *Node , unsigned int OpId, StringRef ErrText, llvm::function_ref < bool (uint32_t )> VerifyFn)
static Error
validateDescriptorTableSamplerMixin (const mcdxbc::DescriptorTable &Table, uint32_t Location)
static Error
validateDescriptorTableRegisterOverflow (const mcdxbc::DescriptorTable &Table, uint32_t Location)
◆ RootElementInitial value:
Models RootElement : RootFlags | RootConstants | RootParam | DescriptorTable | DescriptorTableClause | StaticSampler .
A Root Signature is modeled in-memory by an array of RootElements. These aim to map closely to their DSL grammar reprsentation defined in the spec.
Each optional parameter has its default value defined in the struct, and, each mandatory parameter does not have a default initialization.
For the variants RootFlags, RootConstants , RootParam, StaticSampler and DescriptorTableClause : each data member maps directly to a parameter in the grammar.
The DescriptorTable is modelled by having its Clauses as the previous RootElements in the array, and it holds a data member for the Visibility parameter.
Definition at line 155 of file HLSLRootSignature.h .
◆ RegisterType◆ RootSignatureElementKind
Enumerator
Error
RootFlags
RootConstants
SRV
UAV
CBV
DescriptorTable
StaticSamplers
Definition at line 70 of file RootSignatureMetadata.h .
◆ computeRangeBound()◆ dumpRootElements()template<typename T , typename = std::enable_if_t< std::is_enum_v && std::is_same_v<std::underlying_type_t, uint32_t>>>
std::optional< float > llvm::hlsl::rootsig::extractMdFloatValue ( MDNode * Node , unsigned int OpId )
static
◆ operator<<() [1/17]◆ operator<<() [2/17]◆ operator<<() [3/17]◆ operator<<() [4/17]◆ operator<<() [5/17]◆ operator<<() [6/17]◆ operator<<() [7/17]◆ operator<<() [8/17]◆ operator<<() [9/17]◆ operator<<() [10/17]◆ operator<<() [11/17]◆ operator<<() [12/17]◆ operator<<() [13/17]◆ operator<<() [14/17]◆ operator<<() [15/17]◆ operator<<() [16/17]◆ operator<<() [17/17]◆ printFlags()◆ validateDescriptorTableRegisterOverflow()◆ validateDescriptorTableSamplerMixin()◆ verifyDescriptorRangeFlag()◆ verifyLOD()
bool llvm::hlsl::rootsig::verifyLOD
(
float
LOD
)
◆ verifyMaxAnisotropy()
bool llvm::hlsl::rootsig::verifyMaxAnisotropy
(
uint32_t
MaxAnisotropy
)
◆ verifyMipLODBias()
bool llvm::hlsl::rootsig::verifyMipLODBias
(
float
MipLODBias
)
◆ verifyNoOverflowedOffset()
bool llvm::hlsl::rootsig::verifyNoOverflowedOffset
(
uint64_t
Offset
)
◆ verifyNumDescriptors()
bool llvm::hlsl::rootsig::verifyNumDescriptors
(
uint32_t
NumDescriptors
)
◆ verifyRangeType()◆ verifyRegisterSpace()
bool llvm::hlsl::rootsig::verifyRegisterSpace
(
uint32_t
RegisterSpace
)
◆ verifyRegisterValue()
bool llvm::hlsl::rootsig::verifyRegisterValue
(
uint32_t
RegisterValue
)
◆ verifyRootDescriptorFlag()◆ verifyRootFlag()◆ verifyStaticSamplerFlags()◆ verifyVersion()◆ DescriptorTableOffsetAppend
const uint32_t llvm::hlsl::rootsig::DescriptorTableOffsetAppend = 0xffffffff
static
◆ NumDescriptorsUnbounded
const uint32_t llvm::hlsl::rootsig::NumDescriptorsUnbounded = 0xffffffff
static
◆ RegisterNames