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.