|
LLVM 24.0.0git
|
Namespaces | |
| namespace | rootsig |
Classes | |
| struct | Binding |
| class | BindingInfo |
| BindingInfo represents the ranges of bindings and free space for each dxil::ResourceClass. More... | |
| class | BindingInfoBuilder |
| Builder class for creating a /c BindingInfo. More... | |
| class | BoundRegs |
| struct | CBufferMapping |
| struct | CBufferMember |
| class | CBufferMetadata |
| struct | SemanticSignatureElement |
| struct | SemanticStageInfo |
| class | SignaturePackingError |
| Denotes the element that could not be packed and why. More... | |
Enumerations | |
| enum class | IOType { In = 0b001 , Out = 0b010 , InOut = 0b011 , PatchConstantOrPrimitive = 0b100 , All = 0b111 , LLVM_MARK_AS_BITMASK_ENUM =(PatchConstantOrPrimitive) } |
| enum class | SemanticInterpretation { Invalid , NotAllocated , Arbitrary , SV , SGV , ClipCull , TessFactor , Target } |
| enum class | ResourceClass |
| enum class | ResourceDimension |
Functions | |
| LLVM_ABI dxil::ElementType | getDXILElementType (Type *Ty, bool IsSigned) |
| Converts a scalar or vector LLVM type to its DXIL element type. | |
| LLVM_ABI Expected< unsigned > | packSignatureStacked (MutableArrayRef< SemanticSignatureElement > Elements, Triple::EnvironmentType ShaderStage, IOType IOTy) |
| Packs eligible signature elements into consecutive rows. | |
| LLVM_ABI Expected< unsigned > | packSignatureIndexed (MutableArrayRef< SemanticSignatureElement > Elements, Triple::EnvironmentType ShaderStage, IOType IOTy) |
| Packs eligible signature elements at rows selected by semantic index. | |
| LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE () | |
| LLVM_ABI dxbc::PSV::SemanticKind | getSemanticKind (StringRef SemanticName) |
| LLVM_ABI ArrayRef< SemanticStageInfo > | getAvailableStages (dxbc::PSV::SemanticKind SemanticKind) |
| LLVM_ABI SemanticInterpretation | getInterpretationKind (dxbc::PSV::SemanticKind SemanticKind, Triple::EnvironmentType ShaderStage, IOType IOTy) |
Variables | |
| const unsigned | CBufferRowSizeInBytes = 16U |
| static constexpr unsigned | MaxSignatureRows = 32 |
| static constexpr unsigned | MaxSignatureCols = 4 |
| static constexpr uint32_t | UnallocatedRow = ~0U |
| static constexpr uint8_t | UnallocatedCol = 0xFF |
|
strong |
| Enumerator | |
|---|---|
| In | |
| Out | |
| InOut | |
| PatchConstantOrPrimitive | |
| All | |
| LLVM_MARK_AS_BITMASK_ENUM | |
Definition at line 42 of file SemanticSignatures.h.
|
strong |
|
strong |
|
strong |
| Enumerator | |
|---|---|
| Invalid | |
| NotAllocated | |
| Arbitrary | |
| SV | |
| SGV | |
| ClipCull | |
| TessFactor | |
| Target | |
Definition at line 52 of file SemanticSignatures.h.
| ArrayRef< SemanticStageInfo > llvm::hlsl::getAvailableStages | ( | dxbc::PSV::SemanticKind | SemanticKind | ) |
Definition at line 61 of file SemanticSignatures.cpp.
References All, llvm::Triple::Amplification, Arbitrary, ClipCull, llvm::Triple::Compute, llvm::Triple::Domain, llvm::Triple::Geometry, llvm::Triple::Hull, In, InOut, llvm::Triple::Mesh, NotAllocated, Out, PatchConstantOrPrimitive, llvm::Triple::Pixel, SGV, SV, Target, TessFactor, and llvm::Triple::Vertex.
Referenced by getInterpretationKind().
| dxil::ElementType llvm::hlsl::getDXILElementType | ( | Type * | Ty, |
| bool | IsSigned ) |
Converts a scalar or vector LLVM type to its DXIL element type.
Integer signedness must be supplied separately because LLVM integer types are signless.
Definition at line 19 of file HLSLResource.cpp.
References llvm::dxil::F16, llvm::dxil::F32, llvm::dxil::F64, llvm::dxil::I16, llvm::dxil::I32, llvm::dxil::I64, llvm::dxil::Invalid, llvm::dxil::U16, llvm::dxil::U32, and llvm::dxil::U64.
Referenced by formatTypeName(), and llvm::dxil::ResourceTypeInfo::getTyped().
| SemanticInterpretation llvm::hlsl::getInterpretationKind | ( | dxbc::PSV::SemanticKind | SemanticKind, |
| Triple::EnvironmentType | ShaderStage, | ||
| IOType | IOTy ) |
Definition at line 169 of file SemanticSignatures.cpp.
References assert(), getAvailableStages(), llvm::has_single_bit(), and Invalid.
Referenced by packSignatureIndexed(), and packSignatureStacked().
| dxbc::PSV::SemanticKind llvm::hlsl::getSemanticKind | ( | StringRef | SemanticName | ) |
Definition at line 49 of file SemanticSignatures.cpp.
References llvm::StringRef::consume_front_insensitive(), llvm::StringRef::equals_insensitive(), and llvm::dxbc::PSV::getSemanticKinds().
| llvm::hlsl::LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE | ( | ) |
| Expected< unsigned > llvm::hlsl::packSignatureIndexed | ( | MutableArrayRef< SemanticSignatureElement > | Elements, |
| Triple::EnvironmentType | ShaderStage, | ||
| IOType | IOTy ) |
Packs eligible signature elements at rows selected by semantic index.
See llvm/docs/DirectX/SemanticSignatures.md#indexed-packing for details.
Requires each eligible element to occupy exactly one row and have exactly one semantic index. Semantic indices must be unique among eligible elements.
Returns one past the highest allocated row, or zero if no elements were allocated. Gaps between semantic indices count towards this row extent.
On failure, Elements is left partially packed: the elements preceding the one reported by the returned SignaturePackingError keep the locations they were assigned, while that element and the ones following it retain the unallocated row and column sentinels.
Definition at line 75 of file SemanticSignaturePacking.cpp.
References assert(), llvm::enumerate(), getInterpretationKind(), llvm::make_error(), MaxSignatureCols, MaxSignatureRows, NotAllocated, Out, llvm::Triple::Pixel, llvm::hlsl::SignaturePackingError::SemanticIndexOutOfRange, Target, UnallocatedCol, and UnallocatedRow.
| Expected< unsigned > llvm::hlsl::packSignatureStacked | ( | MutableArrayRef< SemanticSignatureElement > | Elements, |
| Triple::EnvironmentType | ShaderStage, | ||
| IOType | IOTy ) |
Packs eligible signature elements into consecutive rows.
See llvm/docs/DirectX/SemanticSignatures.md#stacked-packing for details.
On failure, Elements is left partially packed: the elements preceding the one reported by the returned SignaturePackingError keep the locations they were assigned, while that element and the ones following it retain the unallocated row and column sentinels.
Definition at line 37 of file SemanticSignaturePacking.cpp.
References Arbitrary, assert(), llvm::enumerate(), getInterpretationKind(), In, llvm::make_error(), MaxSignatureCols, MaxSignatureRows, NotAllocated, SGV, llvm::hlsl::SignaturePackingError::SignatureOverflow, SV, UnallocatedCol, UnallocatedRow, and llvm::Triple::Vertex.
Definition at line 27 of file HLSLResource.h.
Referenced by createCBufferLoad().
|
staticconstexpr |
Definition at line 25 of file SemanticSignaturePacking.h.
Referenced by packSignatureIndexed(), and packSignatureStacked().
|
staticconstexpr |
Definition at line 24 of file SemanticSignaturePacking.h.
Referenced by llvm::hlsl::SignaturePackingError::log(), packSignatureIndexed(), and packSignatureStacked().
|
staticconstexpr |
Definition at line 71 of file SemanticSignatures.h.
Referenced by llvm::hlsl::SemanticSignatureElement::fromMetadata(), llvm::hlsl::SemanticSignatureElement::isAllocated(), packSignatureIndexed(), and packSignatureStacked().
|
staticconstexpr |
Definition at line 70 of file SemanticSignatures.h.
Referenced by llvm::hlsl::SemanticSignatureElement::fromMetadata(), llvm::hlsl::SemanticSignatureElement::isAllocated(), packSignatureIndexed(), and packSignatureStacked().