@@ -98,6 +98,109 @@ static raw_ostream &operator<<(raw_ostream &OS,
9898 return OS;
9999}
100100
101+ static const EnumEntry<SamplerFilter> SamplerFilterNames[] = {
102+ {" MinMagMipPoint" , SamplerFilter::MinMagMipPoint},
103+ {" MinMagPointMipLinear" , SamplerFilter::MinMagPointMipLinear},
104+ {" MinPointMagLinearMipPoint" , SamplerFilter::MinPointMagLinearMipPoint},
105+ {" MinPointMagMipLinear" , SamplerFilter::MinPointMagMipLinear},
106+ {" MinLinearMagMipPoint" , SamplerFilter::MinLinearMagMipPoint},
107+ {" MinLinearMagPointMipLinear" , SamplerFilter::MinLinearMagPointMipLinear},
108+ {" MinMagLinearMipPoint" , SamplerFilter::MinMagLinearMipPoint},
109+ {" MinMagMipLinear" , SamplerFilter::MinMagMipLinear},
110+ {" Anisotropic" , SamplerFilter::Anisotropic},
111+ {" ComparisonMinMagMipPoint" , SamplerFilter::ComparisonMinMagMipPoint},
112+ {" ComparisonMinMagPointMipLinear" ,
113+ SamplerFilter::ComparisonMinMagPointMipLinear},
114+ {" ComparisonMinPointMagLinearMipPoint" ,
115+ SamplerFilter::ComparisonMinPointMagLinearMipPoint},
116+ {" ComparisonMinPointMagMipLinear" ,
117+ SamplerFilter::ComparisonMinPointMagMipLinear},
118+ {" ComparisonMinLinearMagMipPoint" ,
119+ SamplerFilter::ComparisonMinLinearMagMipPoint},
120+ {" ComparisonMinLinearMagPointMipLinear" ,
121+ SamplerFilter::ComparisonMinLinearMagPointMipLinear},
122+ {" ComparisonMinMagLinearMipPoint" ,
123+ SamplerFilter::ComparisonMinMagLinearMipPoint},
124+ {" ComparisonMinMagMipLinear" , SamplerFilter::ComparisonMinMagMipLinear},
125+ {" ComparisonAnisotropic" , SamplerFilter::ComparisonAnisotropic},
126+ {" MinimumMinMagMipPoint" , SamplerFilter::MinimumMinMagMipPoint},
127+ {" MinimumMinMagPointMipLinear" , SamplerFilter::MinimumMinMagPointMipLinear},
128+ {" MinimumMinPointMagLinearMipPoint" ,
129+ SamplerFilter::MinimumMinPointMagLinearMipPoint},
130+ {" MinimumMinPointMagMipLinear" , SamplerFilter::MinimumMinPointMagMipLinear},
131+ {" MinimumMinLinearMagMipPoint" , SamplerFilter::MinimumMinLinearMagMipPoint},
132+ {" MinimumMinLinearMagPointMipLinear" ,
133+ SamplerFilter::MinimumMinLinearMagPointMipLinear},
134+ {" MinimumMinMagLinearMipPoint" , SamplerFilter::MinimumMinMagLinearMipPoint},
135+ {" MinimumMinMagMipLinear" , SamplerFilter::MinimumMinMagMipLinear},
136+ {" MinimumAnisotropic" , SamplerFilter::MinimumAnisotropic},
137+ {" MaximumMinMagMipPoint" , SamplerFilter::MaximumMinMagMipPoint},
138+ {" MaximumMinMagPointMipLinear" , SamplerFilter::MaximumMinMagPointMipLinear},
139+ {" MaximumMinPointMagLinearMipPoint" ,
140+ SamplerFilter::MaximumMinPointMagLinearMipPoint},
141+ {" MaximumMinPointMagMipLinear" , SamplerFilter::MaximumMinPointMagMipLinear},
142+ {" MaximumMinLinearMagMipPoint" , SamplerFilter::MaximumMinLinearMagMipPoint},
143+ {" MaximumMinLinearMagPointMipLinear" ,
144+ SamplerFilter::MaximumMinLinearMagPointMipLinear},
145+ {" MaximumMinMagLinearMipPoint" , SamplerFilter::MaximumMinMagLinearMipPoint},
146+ {" MaximumMinMagMipLinear" , SamplerFilter::MaximumMinMagMipLinear},
147+ {" MaximumAnisotropic" , SamplerFilter::MaximumAnisotropic},
148+ };
149+
150+ static raw_ostream &operator <<(raw_ostream &OS, const SamplerFilter &Filter) {
151+ printEnum (OS, Filter, ArrayRef (SamplerFilterNames));
152+
153+ return OS;
154+ }
155+
156+ static const EnumEntry<TextureAddressMode> TextureAddressModeNames[] = {
157+ {" Wrap" , TextureAddressMode::Wrap},
158+ {" Mirror" , TextureAddressMode::Mirror},
159+ {" Clamp" , TextureAddressMode::Clamp},
160+ {" Border" , TextureAddressMode::Border},
161+ {" MirrorOnce" , TextureAddressMode::MirrorOnce},
162+ };
163+
164+ static raw_ostream &operator <<(raw_ostream &OS,
165+ const TextureAddressMode &Address) {
166+ printEnum (OS, Address, ArrayRef (TextureAddressModeNames));
167+
168+ return OS;
169+ }
170+
171+ static const EnumEntry<ComparisonFunc> ComparisonFuncNames[] = {
172+ {" Never" , ComparisonFunc::Never},
173+ {" Less" , ComparisonFunc::Less},
174+ {" Equal" , ComparisonFunc::Equal},
175+ {" LessEqual" , ComparisonFunc::LessEqual},
176+ {" Greater" , ComparisonFunc::Greater},
177+ {" NotEqual" , ComparisonFunc::NotEqual},
178+ {" GreaterEqual" , ComparisonFunc::GreaterEqual},
179+ {" Always" , ComparisonFunc::Always},
180+ };
181+
182+ static raw_ostream &operator <<(raw_ostream &OS,
183+ const ComparisonFunc &CompFunc) {
184+ printEnum (OS, CompFunc, ArrayRef (ComparisonFuncNames));
185+
186+ return OS;
187+ }
188+
189+ static const EnumEntry<StaticBorderColor> StaticBorderColorNames[] = {
190+ {" TransparentBlack" , StaticBorderColor::TransparentBlack},
191+ {" OpaqueBlack" , StaticBorderColor::OpaqueBlack},
192+ {" OpaqueWhite" , StaticBorderColor::OpaqueWhite},
193+ {" OpaqueBlackUint" , StaticBorderColor::OpaqueBlackUint},
194+ {" OpaqueWhiteUint" , StaticBorderColor::OpaqueWhiteUint},
195+ };
196+
197+ static raw_ostream &operator <<(raw_ostream &OS,
198+ const StaticBorderColor &BorderColor) {
199+ printEnum (OS, BorderColor, ArrayRef (StaticBorderColorNames));
200+
201+ return OS;
202+ }
203+
101204static const EnumEntry<dxil::ResourceClass> ResourceClassNames[] = {
102205 {" CBV" , dxil::ResourceClass::CBuffer},
103206 {" SRV" , dxil::ResourceClass::SRV},
@@ -112,6 +215,20 @@ static raw_ostream &operator<<(raw_ostream &OS, const ClauseType &Type) {
112215 return OS;
113216}
114217
218+ static const EnumEntry<RootDescriptorFlags> RootDescriptorFlagNames[] = {
219+ {" DataVolatile" , RootDescriptorFlags::DataVolatile},
220+ {" DataStaticWhileSetAtExecute" ,
221+ RootDescriptorFlags::DataStaticWhileSetAtExecute},
222+ {" DataStatic" , RootDescriptorFlags::DataStatic},
223+ };
224+
225+ static raw_ostream &operator <<(raw_ostream &OS,
226+ const RootDescriptorFlags &Flags) {
227+ printFlags (OS, Flags, ArrayRef (RootDescriptorFlagNames));
228+
229+ return OS;
230+ }
231+
115232static const EnumEntry<DescriptorRangeFlags> DescriptorRangeFlagNames[] = {
116233 {" DescriptorsVolatile" , DescriptorRangeFlags::DescriptorsVolatile},
117234 {" DataVolatile" , DescriptorRangeFlags::DataVolatile},
@@ -182,6 +299,31 @@ raw_ostream &operator<<(raw_ostream &OS, const DescriptorTableClause &Clause) {
182299 return OS;
183300}
184301
302+ raw_ostream &operator <<(raw_ostream &OS, const RootDescriptor &Descriptor) {
303+ ClauseType Type = ClauseType (llvm::to_underlying (Descriptor.Type ));
304+ OS << " Root" << Type << " (" << Descriptor.Reg
305+ << " , space = " << Descriptor.Space
306+ << " , visibility = " << Descriptor.Visibility
307+ << " , flags = " << Descriptor.Flags << " )" ;
308+
309+ return OS;
310+ }
311+
312+ raw_ostream &operator <<(raw_ostream &OS, const StaticSampler &Sampler) {
313+ OS << " StaticSampler(" << Sampler.Reg << " , filter = " << Sampler.Filter
314+ << " , addressU = " << Sampler.AddressU
315+ << " , addressV = " << Sampler.AddressV
316+ << " , addressW = " << Sampler.AddressW
317+ << " , mipLODBias = " << Sampler.MipLODBias
318+ << " , maxAnisotropy = " << Sampler.MaxAnisotropy
319+ << " , comparisonFunc = " << Sampler.CompFunc
320+ << " , borderColor = " << Sampler.BorderColor
321+ << " , minLOD = " << Sampler.MinLOD << " , maxLOD = " << Sampler.MaxLOD
322+ << " , space = " << Sampler.Space << " , visibility = " << Sampler.Visibility
323+ << " )" ;
324+ return OS;
325+ }
326+
185327void dumpRootElements (raw_ostream &OS, ArrayRef<RootElement> Elements) {
186328 OS << " RootElements{" ;
187329 bool First = true ;
0 commit comments