13#ifndef LLVM_BINARYFORMAT_DXCONTAINER_H
14#define LLVM_BINARYFORMAT_DXCONTAINER_H
49 "Shader kind out of expected range.");
105 return StringRef(
reinterpret_cast<const char *
>(&
Name[0]), 4);
142 return (Major << 4) | Minor;
146static_assert(
sizeof(ProgramHeader) == 24,
"ProgramHeader Size incorrect!");
148#define CONTAINER_PART(Part) Part,
151#include "DXContainerConstants.def"
154#define SHADER_FEATURE_FLAG(Num, DxilModuleNum, Val, Str) Val = 1ull << Num,
156#include "DXContainerConstants.def"
158static_assert((
uint64_t)FeatureFlags::NextUnusedBit <= 1ull << 63,
159 "Shader flag bits exceed enum size.");
161#define ROOT_SIGNATURE_FLAG(Num, Val) Val = Num,
163#include "DXContainerConstants.def"
170#define ROOT_DESCRIPTOR_FLAG(Num, Enum, Flag) Enum = Num,
172#include "DXContainerConstants.def"
179#define DESCRIPTOR_RANGE_FLAG(Num, Enum, Flag) Enum = Num,
181#include "DXContainerConstants.def"
188#define ROOT_PARAMETER(Val, Enum) Enum = Val,
190#include "DXContainerConstants.def"
195#define ROOT_PARAMETER(Val, Enum) \
200#include "DXContainerConstants.def"
209#define SHADER_VISIBILITY(Val, Enum) Enum = Val,
211#include "DXContainerConstants.def"
216#define SHADER_VISIBILITY(Val, Enum) \
221#include "DXContainerConstants.def"
226#define FILTER(Val, Enum) Enum = Val,
228#include "DXContainerConstants.def"
233#define TEXTURE_ADDRESS_MODE(Val, Enum) Enum = Val,
235#include "DXContainerConstants.def"
240#define COMPARISON_FUNC(Val, Enum) Enum = Val,
242#include "DXContainerConstants.def"
247#define STATIC_BORDER_COLOR(Val, Enum) Enum = Val,
249#include "DXContainerConstants.def"
375static_assert(
sizeof(PipelinePSVInfo) == 4 *
sizeof(
uint32_t),
376 "Pipeline-specific PSV info must fit in 16 bytes.");
380#define SEMANTIC_KIND(Val, Enum) Enum = Val,
382#include "DXContainerConstants.def"
387#define COMPONENT_TYPE(Val, Enum) Enum = Val,
389#include "DXContainerConstants.def"
394#define INTERPOLATION_MODE(Val, Enum) Enum = Val,
396#include "DXContainerConstants.def"
401#define RESOURCE_TYPE(Val, Enum) Enum = Val,
403#include "DXContainerConstants.def"
408#define RESOURCE_KIND(Val, Enum) Enum = Val,
410#include "DXContainerConstants.def"
415#define RESOURCE_FLAG(Index, Enum) bool Enum = false;
419#include "llvm/BinaryFormat/DXContainerConstants.def"
482static_assert(
sizeof(SignatureElement) == 4 *
sizeof(
uint32_t),
483 "PSV Signature elements must fit in 16 bytes.");
575#define COMPONENT_PRECISION(Val, Enum) Enum = Val,
577#include "DXContainerConstants.def"
582#define D3D_SYSTEM_VALUE(Val, Enum) Enum = Val,
584#include "DXContainerConstants.def"
589#define COMPONENT_TYPE(Val, Enum) Enum = Val,
591#include "DXContainerConstants.def"
640static_assert(
sizeof(ProgramSignatureElement) == 32,
641 "ProgramSignatureElement is misaligned");
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
StringRef - Represent a constant reference to a string, i.e.
LLVM_ABI ArrayRef< EnumEntry< ResourceKind > > getResourceKinds()
LLVM_ABI ArrayRef< EnumEntry< ComponentType > > getComponentTypes()
LLVM_ABI ArrayRef< EnumEntry< ResourceType > > getResourceTypes()
LLVM_ABI ArrayRef< EnumEntry< SemanticKind > > getSemanticKinds()
LLVM_ABI ArrayRef< EnumEntry< InterpolationMode > > getInterpolationModes()
LLVM_ABI ArrayRef< EnumEntry< ComparisonFunc > > getComparisonFuncs()
LLVM_ABI ArrayRef< EnumEntry< ShaderVisibility > > getShaderVisibility()
bool isValidShaderVisibility(uint32_t V)
LLVM_ABI PartType parsePartType(StringRef S)
LLVM_ABI ArrayRef< EnumEntry< RootFlags > > getRootFlags()
LLVM_ABI ArrayRef< EnumEntry< RootParameterType > > getRootParameterTypes()
Triple::EnvironmentType getShaderStage(uint32_t Kind)
LLVM_ABI ArrayRef< EnumEntry< SigComponentType > > getSigComponentTypes()
LLVM_ABI ArrayRef< EnumEntry< SigMinPrecision > > getSigMinPrecisions()
LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE()
LLVM_ABI ArrayRef< EnumEntry< DescriptorRangeFlags > > getDescriptorRangeFlags()
LLVM_ABI ArrayRef< EnumEntry< SamplerFilter > > getSamplerFilters()
LLVM_ABI ArrayRef< EnumEntry< D3DSystemValue > > getD3DSystemValues()
bool isValidParameterType(uint32_t V)
LLVM_ABI ArrayRef< EnumEntry< StaticBorderColor > > getStaticBorderColors()
LLVM_ABI ArrayRef< EnumEntry< TextureAddressMode > > getTextureAddressModes()
bool isValidRangeType(uint32_t V)
LLVM_ABI ArrayRef< EnumEntry< RootDescriptorFlags > > getRootDescriptorFlags()
void swapByteOrder(T &Value)
This is an optimization pass for GlobalISel generic memory operations.
constexpr std::underlying_type_t< Enum > to_underlying(Enum E)
Returns underlying integer value of an enum.
@ LLVM_MARK_AS_BITMASK_ENUM
uint32_t PayloadSizeInBytes
uint32_t InputControlPointCount
uint32_t TessellatorDomain
uint8_t OutputPositionPresent
uint8_t OutputPositionPresent
uint32_t OutputStreamMask
uint32_t TessellatorOutputPrimitive
uint32_t OutputControlPointCount
uint32_t InputControlPointCount
uint32_t TessellatorDomain
uint32_t PayloadSizeInBytes
uint16_t MaxOutputVertices
uint16_t MaxOutputPrimitives
uint32_t GroupSharedBytesDependentOnViewID
uint32_t GroupSharedBytesUsed
bool operator==(const uint32_t RFlags) const
uint32_t MaximumWaveLaneCount
PipelinePSVInfo StageInfo
void swapBytes(Triple::EnvironmentType Stage)
uint32_t MinimumWaveLaneCount
uint8_t MeshOutputTopology
GeometryExtraInfo GeomData
uint8_t SigPatchOrPrimElements
uint8_t SigOutputVectors[4]
void swapBytes(Triple::EnvironmentType Stage)
uint8_t SigOutputElements
void swapBytes(Triple::EnvironmentType Stage)
void swapBytes(Triple::EnvironmentType Stage)
SigMinPrecision MinPrecision
D3DSystemValue SystemValue
SigComponentType CompType
uint32_t BaseShaderRegister
uint32_t OffsetInDescriptorsFromTableStart
uint32_t ShaderVisibility
uint32_t OffsetInDescriptorsFromTableStart
uint32_t BaseShaderRegister
RootDescriptor(v1::RootDescriptor &Base)
LLVM_ABI bool isPopulated()
uint8_t OutputPositionPresent
void swapBytes(Triple::EnvironmentType Stage)