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"
231#define FILTER(Val, Enum) \
236#include "DXContainerConstants.def"
243#define TEXTURE_ADDRESS_MODE(Val, Enum) Enum = Val,
245#include "DXContainerConstants.def"
250#define TEXTURE_ADDRESS_MODE(Val, Enum) \
255#include "DXContainerConstants.def"
260#define COMPARISON_FUNC(Val, Enum) Enum = Val,
262#include "DXContainerConstants.def"
267#define COMPARISON_FUNC(Val, Enum) \
272#include "DXContainerConstants.def"
277#define STATIC_BORDER_COLOR(Val, Enum) Enum = Val,
279#include "DXContainerConstants.def"
282#define STATIC_BORDER_COLOR(Val, Enum) \
287#include "DXContainerConstants.def"
415static_assert(
sizeof(PipelinePSVInfo) == 4 *
sizeof(
uint32_t),
416 "Pipeline-specific PSV info must fit in 16 bytes.");
420#define SEMANTIC_KIND(Val, Enum) Enum = Val,
422#include "DXContainerConstants.def"
427#define COMPONENT_TYPE(Val, Enum) Enum = Val,
429#include "DXContainerConstants.def"
434#define INTERPOLATION_MODE(Val, Enum) Enum = Val,
436#include "DXContainerConstants.def"
441#define RESOURCE_TYPE(Val, Enum) Enum = Val,
443#include "DXContainerConstants.def"
448#define RESOURCE_KIND(Val, Enum) Enum = Val,
450#include "DXContainerConstants.def"
455#define RESOURCE_FLAG(Index, Enum) bool Enum = false;
459#include "llvm/BinaryFormat/DXContainerConstants.def"
522static_assert(
sizeof(SignatureElement) == 4 *
sizeof(
uint32_t),
523 "PSV Signature elements must fit in 16 bytes.");
615#define COMPONENT_PRECISION(Val, Enum) Enum = Val,
617#include "DXContainerConstants.def"
622#define D3D_SYSTEM_VALUE(Val, Enum) Enum = Val,
624#include "DXContainerConstants.def"
629#define COMPONENT_TYPE(Val, Enum) Enum = Val,
631#include "DXContainerConstants.def"
680static_assert(
sizeof(ProgramSignatureElement) == 32,
681 "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)
bool isValidSamplerFilter(uint32_t V)
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 isValidBorderColor(uint32_t V)
bool isValidComparisonFunc(uint32_t V)
bool isValidParameterType(uint32_t V)
LLVM_ABI ArrayRef< EnumEntry< StaticBorderColor > > getStaticBorderColors()
bool isValidAddress(uint32_t V)
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)