LLVM: include/llvm/Frontend/HLSL/HLSLRootSignature.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14#ifndef LLVM_FRONTEND_HLSL_HLSLROOTSIGNATURE_H

15#define LLVM_FRONTEND_HLSL_HLSLROOTSIGNATURE_H

16

21#include

22#include

23

24namespace llvm {

25namespace hlsl {

27

28

29

30

36

37

44

45

52

55 Flags = dxbc::RootDescriptorFlags::DataVolatile;

56 return;

57 }

58

61 "Specified an invalid root signature version");

62 switch (Type) {

65 Flags = dxbc::RootDescriptorFlags::DataStaticWhileSetAtExecute;

66 break;

68 Flags = dxbc::RootDescriptorFlags::DataVolatile;

69 break;

72 "ResourceClass::Sampler is not valid for RootDescriptors");

73 }

74 }

75};

76

77

84

87

95

98 Flags = dxbc::DescriptorRangeFlags::DescriptorsVolatile;

100 Flags |= dxbc::DescriptorRangeFlags::DataVolatile;

101 return;

102 }

103

106 "Specified an invalid root signature version");

107 switch (Type) {

110 Flags = dxbc::DescriptorRangeFlags::DataStaticWhileSetAtExecute;

111 break;

113 Flags = dxbc::DescriptorRangeFlags::DataVolatile;

114 break;

116 Flags = dxbc::DescriptorRangeFlags::None;

117 break;

118 }

119 }

120};

121

133 float MaxLOD = std::numeric_limits::max();

137};

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

158

159

171

173

174}

175}

176}

177

178#endif

assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")

ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...

This class implements an extremely fast bulk output stream that can only output to a stream.

#define llvm_unreachable(msg)

Marks that the current location is not supposed to be reachable.

Definition HLSLRootSignature.h:26

static const uint32_t NumDescriptorsUnbounded

Definition HLSLRootSignature.h:85

static const uint32_t DescriptorTableOffsetAppend

Definition HLSLRootSignature.h:86

LLVM_ABI void dumpRootElements(raw_ostream &OS, ArrayRef< RootElement > Elements)

RegisterType

Definition HLSLRootSignature.h:31

@ UReg

Definition HLSLRootSignature.h:31

@ TReg

Definition HLSLRootSignature.h:31

@ BReg

Definition HLSLRootSignature.h:31

@ SReg

Definition HLSLRootSignature.h:31

std::variant< dxbc::RootFlags, RootConstants, RootDescriptor, DescriptorTable, DescriptorTableClause, StaticSampler > RootElement

Models RootElement : RootFlags | RootConstants | RootParam | DescriptorTable | DescriptorTableClause ...

Definition HLSLRootSignature.h:155

LLVM_ABI raw_ostream & operator<<(raw_ostream &OS, const dxbc::RootFlags &Flags)

The following contains the serialization interface for root elements.

This is an optimization pass for GlobalISel generic memory operations.

FunctionAddr VTableAddr uintptr_t uintptr_t Version

Definition HLSLRootSignature.h:88

dxil::ResourceClass Type

Definition HLSLRootSignature.h:89

Register Reg

Definition HLSLRootSignature.h:90

dxbc::DescriptorRangeFlags Flags

Definition HLSLRootSignature.h:94

void setDefaultFlags(dxbc::RootSignatureVersion Version)

Definition HLSLRootSignature.h:96

uint32_t Offset

Definition HLSLRootSignature.h:93

uint32_t NumDescriptors

Definition HLSLRootSignature.h:91

uint32_t Space

Definition HLSLRootSignature.h:92

Definition HLSLRootSignature.h:78

dxbc::ShaderVisibility Visibility

Definition HLSLRootSignature.h:79

uint32_t NumClauses

Definition HLSLRootSignature.h:82

Definition HLSLRootSignature.h:32

uint32_t Number

Definition HLSLRootSignature.h:34

RegisterType ViewType

Definition HLSLRootSignature.h:33

Definition HLSLRootSignature.h:38

Register Reg

Definition HLSLRootSignature.h:40

uint32_t Space

Definition HLSLRootSignature.h:41

uint32_t Num32BitConstants

Definition HLSLRootSignature.h:39

dxbc::ShaderVisibility Visibility

Definition HLSLRootSignature.h:42

Definition HLSLRootSignature.h:46

uint32_t Space

Definition HLSLRootSignature.h:49

dxbc::ShaderVisibility Visibility

Definition HLSLRootSignature.h:50

Register Reg

Definition HLSLRootSignature.h:48

dxbc::RootDescriptorFlags Flags

Definition HLSLRootSignature.h:51

void setDefaultFlags(dxbc::RootSignatureVersion Version)

Definition HLSLRootSignature.h:53

dxil::ResourceClass Type

Definition HLSLRootSignature.h:47

uint32_t Space

Definition HLSLRootSignature.h:134

Register Reg

Definition HLSLRootSignature.h:123

float MinLOD

Definition HLSLRootSignature.h:132

float MaxLOD

Definition HLSLRootSignature.h:133

dxbc::TextureAddressMode AddressU

Definition HLSLRootSignature.h:125

dxbc::StaticBorderColor BorderColor

Definition HLSLRootSignature.h:131

dxbc::ComparisonFunc CompFunc

Definition HLSLRootSignature.h:130

uint32_t MaxAnisotropy

Definition HLSLRootSignature.h:129

dxbc::TextureAddressMode AddressW

Definition HLSLRootSignature.h:127

float MipLODBias

Definition HLSLRootSignature.h:128

dxbc::ShaderVisibility Visibility

Definition HLSLRootSignature.h:135

dxbc::StaticSamplerFlags Flags

Definition HLSLRootSignature.h:136

dxbc::TextureAddressMode AddressV

Definition HLSLRootSignature.h:126

dxbc::SamplerFilter Filter

Definition HLSLRootSignature.h:124