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 STATIC_SAMPLER_FLAG(Num, Enum, Flag) Enum = Num, 
  190#include "DXContainerConstants.def" 
 
  197#define ROOT_PARAMETER(Val, Enum) Enum = Val, 
  199#include "DXContainerConstants.def" 
 
  208#define SHADER_VISIBILITY(Val, Enum) Enum = Val, 
  210#include "DXContainerConstants.def" 
 
  217#define FILTER(Val, Enum) Enum = Val, 
  219#include "DXContainerConstants.def" 
 
  226#define TEXTURE_ADDRESS_MODE(Val, Enum) Enum = Val, 
  228#include "DXContainerConstants.def" 
 
  235#define COMPARISON_FUNC(Val, Enum) Enum = Val, 
  237#include "DXContainerConstants.def" 
 
  244#define STATIC_BORDER_COLOR(Val, Enum) Enum = Val, 
  246#include "DXContainerConstants.def" 
 
  380static_assert(
sizeof(PipelinePSVInfo) == 4 * 
sizeof(
uint32_t),
 
  381              "Pipeline-specific PSV info must fit in 16 bytes.");
 
  385#define SEMANTIC_KIND(Val, Enum) Enum = Val, 
  387#include "DXContainerConstants.def" 
 
  392#define COMPONENT_TYPE(Val, Enum) Enum = Val, 
  394#include "DXContainerConstants.def" 
 
  399#define INTERPOLATION_MODE(Val, Enum) Enum = Val, 
  401#include "DXContainerConstants.def" 
 
  406#define RESOURCE_TYPE(Val, Enum) Enum = Val, 
  408#include "DXContainerConstants.def" 
 
  413#define RESOURCE_KIND(Val, Enum) Enum = Val, 
  415#include "DXContainerConstants.def" 
 
  420#define RESOURCE_FLAG(Index, Enum) bool Enum = false; 
  424#include "llvm/BinaryFormat/DXContainerConstants.def" 
 
 
  487static_assert(
sizeof(SignatureElement) == 4 * 
sizeof(
uint32_t),
 
  488              "PSV Signature elements must fit in 16 bytes.");
 
 
 
  580#define COMPONENT_PRECISION(Val, Enum) Enum = Val, 
  582#include "DXContainerConstants.def" 
 
  587#define D3D_SYSTEM_VALUE(Val, Enum) Enum = Val, 
  589#include "DXContainerConstants.def" 
 
  594#define COMPONENT_TYPE(Val, Enum) Enum = Val, 
  596#include "DXContainerConstants.def" 
 
  645static_assert(
sizeof(ProgramSignatureElement) == 32,
 
  646              "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)
 
bool isValidStaticSamplerFlags(uint32_t V)
 
LLVM_ABI ArrayRef< EnumEntry< RootFlags > > getRootFlags()
 
LLVM_ABI ArrayRef< EnumEntry< RootParameterType > > getRootParameterTypes()
 
bool isValidRootDesciptorFlags(uint32_t V)
 
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 isValidDescriptorRangeFlags(uint32_t V)
 
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< StaticSamplerFlags > > getStaticSamplerFlags()
 
LLVM_ABI ArrayRef< EnumEntry< RootDescriptorFlags > > getRootDescriptorFlags()
 
void swapByteOrder(T &Value)
 
This is an optimization pass for GlobalISel generic memory operations.
 
@ 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)
 
StaticSampler(v1::StaticSampler &Base)
 
LLVM_ABI bool isPopulated()
 
uint8_t OutputPositionPresent
 
void swapBytes(Triple::EnvironmentType Stage)