|
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 |
Variables | |
| const unsigned | CBufferRowSizeInBytes = 16U |
| static constexpr unsigned | MaxSignatureRows = 32 |
| static constexpr unsigned | MaxSignatureCols = 4 |
| static constexpr unsigned | MaxClipCullRows = 2 |
| static constexpr unsigned | MaxGeometryStreams = 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 170 of file SemanticSignatures.cpp.
References assert(), getAvailableStages(), llvm::has_single_bit(), and Invalid.
Referenced by getOptimizedPackingGroup(), packSignatureIndexed(), packSignatureInOrder(), 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 702 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::packSignatureOptimized | ( | MutableArrayRef< SemanticSignatureElement > | Elements, |
| Triple::EnvironmentType | ShaderStage, | ||
| IOType | IOTy, | ||
| bool | UseNative16BitTypes ) |
Packs eligible signature elements in an optimized order by reordering elements into an optimal packing order and allowing clip/cull to share compatible rows.
Only StartRow and StartCol are modified.
See llvm/docs/DirectX/SemanticSignatures.md#optimized-packing for details.
Returns the number of allocated rows, or zero if no elements were allocated. For geometry outputs this is the maximum extent of any stream, not the sum of their extents.
On failure, Elements are 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 749 of file SemanticSignaturePacking.cpp.
References assert(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), ClipCull, llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::enumerate(), llvm::Triple::Geometry, getOptimizedPackingGroup(), In, llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, llvm::Left, llvm::make_range(), llvm::map_range(), MaxGeometryStreams, Out, packOptimizedClipCull(), packSignatureInOrder(), llvm::partition_point(), llvm::Triple::Pixel, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorImpl< T >::reserve(), llvm::Right, llvm::sort(), llvm::Expected< T >::takeError(), and llvm::Triple::Vertex.
| Expected< unsigned > llvm::hlsl::packSignaturePrefixStable | ( | MutableArrayRef< SemanticSignatureElement > | Elements, |
| Triple::EnvironmentType | ShaderStage, | ||
| IOType | IOTy, | ||
| bool | UseNative16BitTypes ) |
Packs eligible signature elements without moving previously placed elements.
Only StartRow and StartCol are modified.
See llvm/docs/DirectX/SemanticSignatures.md#prefix-stable-packing for details.
Returns one past the highest allocated row, or zero if no elements were allocated. For geometry outputs this is the maximum extent of any stream, not the sum of their extents.
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 685 of file SemanticSignaturePacking.cpp.
References assert(), llvm::Triple::Geometry, In, MaxGeometryStreams, Out, packSignatureInOrder(), llvm::Triple::Pixel, llvm::seq(), and llvm::Triple::Vertex.
| 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 589 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 26 of file SemanticSignaturePacking.h.
Referenced by llvm::hlsl::SignaturePackingError::log(), packClipCullElement(), packOptimizedClipCullStream(), and reserveClipCullSignatureRows().
|
staticconstexpr |
Definition at line 27 of file SemanticSignaturePacking.h.
Referenced by llvm::hlsl::SignaturePackingError::log(), packOptimizedClipCull(), packSignatureOptimized(), and packSignaturePrefixStable().
|
staticconstexpr |
Definition at line 25 of file SemanticSignaturePacking.h.
Referenced by canPlaceAt(), getClipCullReservation(), getOptimizedPackingGroup(), packOptimizedClipCull(), packSignatureIndexed(), packSignatureInOrder(), 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(), packOptimizedClipCull(), packSignatureIndexed(), packSignatureInOrder(), and packSignatureStacked().
|
staticconstexpr |
Definition at line 70 of file SemanticSignatures.h.
Referenced by llvm::hlsl::SemanticSignatureElement::fromMetadata(), llvm::hlsl::SemanticSignatureElement::isAllocated(), packOptimizedClipCull(), packOptimizedClipCullStream(), packSignatureIndexed(), packSignatureInOrder(), and packSignatureStacked().