13#ifndef LLVM_BINARYFORMAT_DXCONTAINER_H
14#define LLVM_BINARYFORMAT_DXCONTAINER_H
23template <
typename T>
struct EnumEntry;
43 "Shader kind out of expected range.");
99 return StringRef(
reinterpret_cast<const char *
>(&
Name[0]), 4);
136 return (Major << 4) | Minor;
140static_assert(
sizeof(ProgramHeader) == 24,
"ProgramHeader Size incorrect!");
142#define CONTAINER_PART(Part) Part,
145#include "DXContainerConstants.def"
148#define SHADER_FEATURE_FLAG(Num, DxilModuleNum, Val, Str) Val = 1ull << Num,
150#include "DXContainerConstants.def"
152static_assert((
uint64_t)FeatureFlags::NextUnusedBit <= 1ull << 63,
153 "Shader flag bits exceed enum size.");
276static_assert(
sizeof(PipelinePSVInfo) == 4 *
sizeof(
uint32_t),
277 "Pipeline-specific PSV info must fit in 16 bytes.");
281#define SEMANTIC_KIND(Val, Enum) Enum = Val,
283#include "DXContainerConstants.def"
288#define COMPONENT_TYPE(Val, Enum) Enum = Val,
290#include "DXContainerConstants.def"
295#define INTERPOLATION_MODE(Val, Enum) Enum = Val,
297#include "DXContainerConstants.def"
356static_assert(
sizeof(SignatureElement) == 4 *
sizeof(
uint32_t),
357 "PSV Signature elements must fit in 16 bytes.");
449#define COMPONENT_PRECISION(Val, Enum) Enum = Val,
451#include "DXContainerConstants.def"
456#define D3D_SYSTEM_VALUE(Val, Enum) Enum = Val,
458#include "DXContainerConstants.def"
463#define COMPONENT_TYPE(Val, Enum) Enum = Val,
465#include "DXContainerConstants.def"
514static_assert(
sizeof(ProgramSignatureElement) == 32,
515 "ProgramSignatureElement is misaligned");
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Wrapper class representing virtual and physical registers.
StringRef - Represent a constant reference to a string, i.e.
The instances of the Type class are immutable: once they are created, they are never changed.
ArrayRef< EnumEntry< ComponentType > > getComponentTypes()
ArrayRef< EnumEntry< SemanticKind > > getSemanticKinds()
ArrayRef< EnumEntry< InterpolationMode > > getInterpolationModes()
PartType parsePartType(StringRef S)
Triple::EnvironmentType getShaderStage(uint32_t Kind)
ArrayRef< EnumEntry< SigComponentType > > getSigComponentTypes()
ArrayRef< EnumEntry< SigMinPrecision > > getSigMinPrecisions()
ArrayRef< EnumEntry< D3DSystemValue > > getD3DSystemValues()
void swapByteOrder(T &Value)
This is an optimization pass for GlobalISel generic memory operations.
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
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
uint8_t OutputPositionPresent
void swapBytes(Triple::EnvironmentType Stage)