LLVM: include/llvm/ObjectYAML/DXContainerYAML.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15#ifndef LLVM_OBJECTYAML_DXCONTAINERYAML_H
16#define LLVM_OBJECTYAML_DXCONTAINERYAML_H
17
24#include
25#include
26#include
27#include
28
29namespace llvm {
31
36
37
38
39
41 std::vectorllvm::yaml::Hex8 Hash;
46};
47
52 std::optional<uint32_t> Size;
57 std::optional<std::vectorllvm::yaml::Hex8> DXIL;
58};
59
60#define SHADER_FEATURE_FLAG(Num, DxilModuleNum, Val, Str) bool Val = false;
65#include "llvm/BinaryFormat/DXContainerConstants.def"
66};
67
71
73 std::vectorllvm::yaml::Hex8 Digest;
74};
75
81
84
87
89
90#define ROOT_DESCRIPTOR_FLAG(Num, Enum, Flag) bool Enum = false;
91#include "llvm/BinaryFormat/DXContainerConstants.def"
92};
93
100
102
103#define DESCRIPTOR_RANGE_FLAG(Num, Enum, Flag) bool Enum = false;
104#include "llvm/BinaryFormat/DXContainerConstants.def"
105};
106
112
121
130
133
137
138 template
147
152
157
161
165};
166
177 float MaxLOD = std::numeric_limits::max();
181
183
184#define STATIC_SAMPLER_FLAG(Num, Enum, Flag) bool Enum = false;
185#include "llvm/BinaryFormat/DXContainerConstants.def"
186};
187
190
196
199
201
205
208
209#define ROOT_SIGNATURE_FLAG(Num, Val) bool Val = false;
210#include "llvm/BinaryFormat/DXContainerConstants.def"
211};
212
215
218
223 El.NameOffset)),
224 Indices(IdxTable.slice(El.IndicesOffset, El.Rows)),
230
236
241};
242
244
245
246
248
255
262
264
266
272};
273
285
289
302
307
308}
309}
310
334
335namespace llvm {
336
337class raw_ostream;
338
339namespace yaml {
340
344
348
352
357
361
365
369
373
377
381
386
391
395
400
401template <>
408
413
418
423
428
433
434}
435
436}
437
438#endif
static GCRegistry::Add< StatepointGC > D("statepoint-example", "an example strategy for statepoint")
static StringRef substr(StringRef Str, uint64_t Len)
#define LLVM_YAML_IS_SEQUENCE_VECTOR(type)
Utility for declaring that a std::vector of a particular type should be considered a YAML sequence.
#define LLVM_YAML_DECLARE_ENUM_TRAITS(Type)
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Tagged union holding either a T or a Error.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
reference emplace_back(ArgTypes &&... Args)
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
StringRef - Represent a constant reference to a string, i.e.
A table of densely packed, null-terminated strings indexed by offset.
Represents a version number in the form major[.minor[.subminor[.build]]].
A range adaptor for a pair of iterators.
@ C
The default llvm calling convention, compatible with C.
Definition DXContainerYAML.h:30
dxbc::PSV::ResourceFlags ResourceFlags
Definition DXContainerYAML.h:213
dxbc::PSV::v2::ResourceBindInfo ResourceBindInfo
Definition DXContainerYAML.h:214
This is an optimization pass for GlobalISel generic memory operations.
auto find(R &&Range, const T &Val)
Provide wrappers to std::find which take ranges instead of having to pass begin/end explicitly.
iterator_range< T > make_range(T x, T y)
Convenience function for iterating over sub-ranges.
FunctionAddr VTableAddr uintptr_t uintptr_t Version
FunctionAddr VTableAddr uintptr_t uintptr_t Data
Definition DXContainerYAML.h:48
std::optional< uint32_t > DXILOffset
Definition DXContainerYAML.h:55
uint8_t MajorVersion
Definition DXContainerYAML.h:49
uint16_t DXILMajorVersion
Definition DXContainerYAML.h:53
uint8_t MinorVersion
Definition DXContainerYAML.h:50
uint16_t ShaderKind
Definition DXContainerYAML.h:51
std::optional< uint32_t > Size
Definition DXContainerYAML.h:52
uint16_t DXILMinorVersion
Definition DXContainerYAML.h:54
std::optional< std::vector< llvm::yaml::Hex8 > > DXIL
Definition DXContainerYAML.h:57
std::optional< uint32_t > DXILSize
Definition DXContainerYAML.h:56
Definition DXContainerYAML.h:94
uint32_t OffsetInDescriptorsFromTableStart
Definition DXContainerYAML.h:99
uint32_t BaseShaderRegister
Definition DXContainerYAML.h:97
uint32_t NumDescriptors
Definition DXContainerYAML.h:96
LLVM_ABI uint32_t getEncodedFlags() const
uint32_t RegisterSpace
Definition DXContainerYAML.h:98
dxil::ResourceClass RangeType
Definition DXContainerYAML.h:95
Definition DXContainerYAML.h:107
SmallVector< DescriptorRangeYaml > Ranges
Definition DXContainerYAML.h:110
uint32_t NumRanges
Definition DXContainerYAML.h:108
uint32_t RangesOffset
Definition DXContainerYAML.h:109
Definition DXContainerYAML.h:303
FileHeader Header
Definition DXContainerYAML.h:304
std::vector< Part > Parts
Definition DXContainerYAML.h:305
Definition DXContainerYAML.h:243
std::array< MaskVector, 4 > InputOutputMap
Definition DXContainerYAML.h:259
MaskVector PatchOutputMap
Definition DXContainerYAML.h:261
StringRef EntryName
Definition DXContainerYAML.h:263
uint32_t Version
Definition DXContainerYAML.h:247
SmallVector< SignatureElement > SigOutputElements
Definition DXContainerYAML.h:253
MaskVector PatchOrPrimMasks
Definition DXContainerYAML.h:258
SmallVector< SignatureElement > SigPatchOrPrimElements
Definition DXContainerYAML.h:254
SmallVector< ResourceBindInfo > Resources
Definition DXContainerYAML.h:251
SmallVector< SignatureElement > SigInputElements
Definition DXContainerYAML.h:252
uint32_t ResourceStride
Definition DXContainerYAML.h:250
SmallVector< llvm::yaml::Hex32 > MaskVector
Definition DXContainerYAML.h:256
LLVM_ABI void mapInfoForVersion(yaml::IO &IO)
dxbc::PSV::v3::RuntimeInfo Info
Definition DXContainerYAML.h:249
std::array< MaskVector, 4 > OutputVectorMasks
Definition DXContainerYAML.h:257
MaskVector InputPatchMap
Definition DXContainerYAML.h:260
Definition DXContainerYAML.h:290
std::optional< PSVInfo > Info
Definition DXContainerYAML.h:298
std::optional< DXContainerYAML::RootSignatureYamlDesc > RootSignature
Definition DXContainerYAML.h:300
std::optional< DXILProgram > Program
Definition DXContainerYAML.h:295
std::string Name
Definition DXContainerYAML.h:293
std::optional< DXContainerYAML::Signature > Signature
Definition DXContainerYAML.h:299
uint32_t Size
Definition DXContainerYAML.h:294
std::optional< ShaderHash > Hash
Definition DXContainerYAML.h:297
std::optional< ShaderFeatureFlags > Flags
Definition DXContainerYAML.h:296
Part(std::string N, uint32_t S)
Definition DXContainerYAML.h:292
Definition DXContainerYAML.h:76
uint32_t Num32BitValues
Definition DXContainerYAML.h:79
uint32_t ShaderRegister
Definition DXContainerYAML.h:77
uint32_t RegisterSpace
Definition DXContainerYAML.h:78
Definition DXContainerYAML.h:82
LLVM_ABI uint32_t getEncodedFlags() const
uint32_t RegisterSpace
Definition DXContainerYAML.h:86
uint32_t ShaderRegister
Definition DXContainerYAML.h:85
RootDescriptorYaml()=default
Definition DXContainerYAML.h:122
RootParameterLocationYaml()=default
std::optional< size_t > IndexInSignature
Definition DXContainerYAML.h:124
RootParameterLocationYaml(RootParameterHeaderYaml Header)
Definition DXContainerYAML.h:127
RootParameterHeaderYaml Header
Definition DXContainerYAML.h:123
Definition DXContainerYAML.h:131
RootDescriptorYaml & getOrInsertDescriptor(RootParameterLocationYaml &ParamDesc)
Definition DXContainerYAML.h:154
T & getOrInsertImpl(RootParameterLocationYaml &ParamDesc, SmallVectorImpl< T > &Container)
Definition DXContainerYAML.h:139
SmallVector< RootParameterLocationYaml > Locations
Definition DXContainerYAML.h:132
RootConstantsYaml & getOrInsertConstants(RootParameterLocationYaml &ParamDesc)
Definition DXContainerYAML.h:149
void insertLocation(RootParameterLocationYaml &Location)
Definition DXContainerYAML.h:162
DescriptorTableYaml & getOrInsertTable(RootParameterLocationYaml &ParamDesc)
Definition DXContainerYAML.h:158
SmallVector< RootConstantsYaml > Constants
Definition DXContainerYAML.h:134
SmallVector< RootDescriptorYaml > Descriptors
Definition DXContainerYAML.h:135
SmallVector< DescriptorTableYaml > Tables
Definition DXContainerYAML.h:136
Definition DXContainerYAML.h:188
uint32_t NumRootParameters
Definition DXContainerYAML.h:192
uint32_t NumStaticSamplers
Definition DXContainerYAML.h:194
iterator_range< StaticSamplerYamlDesc * > samplers()
Definition DXContainerYAML.h:202
SmallVector< StaticSamplerYamlDesc > StaticSamplers
Definition DXContainerYAML.h:198
std::optional< uint32_t > RootParametersOffset
Definition DXContainerYAML.h:193
RootSignatureYamlDesc()=default
LLVM_ABI uint32_t getEncodedFlags()
static LLVM_ABI llvm::Expected< DXContainerYAML::RootSignatureYamlDesc > create(const object::DirectX::RootSignature &Data)
uint32_t Version
Definition DXContainerYAML.h:191
RootParameterYamlDesc Parameters
Definition DXContainerYAML.h:197
std::optional< uint32_t > StaticSamplersOffset
Definition DXContainerYAML.h:195
Definition DXContainerYAML.h:61
ShaderFeatureFlags()=default
LLVM_ABI uint64_t getEncodedFlags()
Definition DXContainerYAML.h:68
std::vector< llvm::yaml::Hex8 > Digest
Definition DXContainerYAML.h:73
bool IncludesSource
Definition DXContainerYAML.h:72
Definition DXContainerYAML.h:216
StringRef Name
Definition DXContainerYAML.h:228
SignatureElement(dxbc::PSV::v0::SignatureElement El, StringRef StringTable, ArrayRef< uint32_t > IdxTable)
Definition DXContainerYAML.h:219
dxbc::PSV::ComponentType Type
Definition DXContainerYAML.h:237
dxbc::PSV::InterpolationMode Mode
Definition DXContainerYAML.h:238
llvm::yaml::Hex8 DynamicMask
Definition DXContainerYAML.h:239
uint8_t StartRow
Definition DXContainerYAML.h:231
dxbc::PSV::SemanticKind Kind
Definition DXContainerYAML.h:235
bool Allocated
Definition DXContainerYAML.h:234
uint8_t StartCol
Definition DXContainerYAML.h:233
SmallVector< uint32_t > Indices
Definition DXContainerYAML.h:229
uint8_t Stream
Definition DXContainerYAML.h:240
uint8_t Cols
Definition DXContainerYAML.h:232
SignatureElement()=default
Definition DXContainerYAML.h:274
std::string Name
Definition DXContainerYAML.h:276
dxbc::SigComponentType CompType
Definition DXContainerYAML.h:279
uint8_t ExclusiveMask
Definition DXContainerYAML.h:282
dxbc::SigMinPrecision MinPrecision
Definition DXContainerYAML.h:283
uint32_t Register
Definition DXContainerYAML.h:280
uint8_t Mask
Definition DXContainerYAML.h:281
uint32_t Index
Definition DXContainerYAML.h:277
dxbc::D3DSystemValue SystemValue
Definition DXContainerYAML.h:278
uint32_t Stream
Definition DXContainerYAML.h:275
Definition DXContainerYAML.h:286
llvm::SmallVector< SignatureParameter > Parameters
Definition DXContainerYAML.h:287
Definition DXContainerYAML.h:167
dxbc::StaticBorderColor BorderColor
Definition DXContainerYAML.h:175
uint32_t MaxAnisotropy
Definition DXContainerYAML.h:173
dxbc::ShaderVisibility ShaderVisibility
Definition DXContainerYAML.h:180
float MinLOD
Definition DXContainerYAML.h:176
dxbc::TextureAddressMode AddressU
Definition DXContainerYAML.h:169
uint32_t ShaderRegister
Definition DXContainerYAML.h:178
float MaxLOD
Definition DXContainerYAML.h:177
float MipLODBias
Definition DXContainerYAML.h:172
dxbc::SamplerFilter Filter
Definition DXContainerYAML.h:168
dxbc::ComparisonFunc ComparisonFunc
Definition DXContainerYAML.h:174
dxbc::TextureAddressMode AddressV
Definition DXContainerYAML.h:170
uint32_t RegisterSpace
Definition DXContainerYAML.h:179
LLVM_ABI uint32_t getEncodedFlags() const
dxbc::TextureAddressMode AddressW
Definition DXContainerYAML.h:171
Definition DXContainerYAML.h:32
uint16_t Major
Definition DXContainerYAML.h:33
uint16_t Minor
Definition DXContainerYAML.h:34
static LLVM_ABI void mapping(IO &IO, llvm::DXContainerYAML::RootParameterLocationYaml &L, DXContainerYAML::RootSignatureYamlDesc &S)
This class is similar to MappingTraits but allows you to pass in additional context for each map o...
static LLVM_ABI void mapping(IO &IO, DXContainerYAML::DXILProgram &Program)
static LLVM_ABI void mapping(IO &IO, DXContainerYAML::Object &Obj)
static LLVM_ABI void mapping(IO &IO, DXContainerYAML::PSVInfo &PSV)
static LLVM_ABI void mapping(IO &IO, DXContainerYAML::Part &Version)
static LLVM_ABI void mapping(IO &IO, DXContainerYAML::ResourceBindInfo &Res)
static LLVM_ABI void mapping(IO &IO, DXContainerYAML::ResourceFlags &Flags)
static LLVM_ABI void mapping(IO &IO, DXContainerYAML::RootSignatureYamlDesc &RootSignature)
static LLVM_ABI void mapping(IO &IO, DXContainerYAML::ShaderFeatureFlags &Flags)
static LLVM_ABI void mapping(IO &IO, DXContainerYAML::ShaderHash &Hash)
static LLVM_ABI void mapping(IO &IO, llvm::DXContainerYAML::SignatureElement &El)
static LLVM_ABI void mapping(IO &IO, llvm::DXContainerYAML::SignatureParameter &El)
static LLVM_ABI void mapping(IO &IO, llvm::DXContainerYAML::Signature &El)
static LLVM_ABI void mapping(IO &IO, DXContainerYAML::VersionTuple &Version)
static LLVM_ABI void mapping(IO &IO, llvm::DXContainerYAML::DescriptorRangeYaml &D)
static LLVM_ABI void mapping(IO &IO, llvm::DXContainerYAML::DescriptorTableYaml &D)
static LLVM_ABI void mapping(IO &IO, llvm::DXContainerYAML::RootConstantsYaml &C)
static LLVM_ABI void mapping(IO &IO, llvm::DXContainerYAML::RootDescriptorYaml &D)
static LLVM_ABI void mapping(IO &IO, llvm::DXContainerYAML::StaticSamplerYamlDesc &S)
This class should be specialized by any type that needs to be converted to/from a YAML mapping.