LLVM: llvm::hlsl::rootsig Namespace Reference (original) (raw)

Classes
struct DescriptorTable
struct DescriptorTableClause
class MetadataBuilder
class MetadataParser
struct Register
struct RootConstants
struct RootDescriptor
class RootSignatureValidationError
struct StaticSampler
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)

RootElement

Initial 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()

extractEnumValue()

template<typename T, typename = std::enable_if_t< std::is_enum_v && std::is_same_v<std::underlying_type_t, uint32_t>>>

extractMdFloatValue()

std::optional< float > llvm::hlsl::rootsig::extractMdFloatValue ( MDNode * Node, unsigned int OpId ) static

extractMdIntValue()

extractMdStringValue()

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