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