Skip to content

Commit 260123c

Browse files
committed
nfc: move ShaderVisibility
1 parent feacb11 commit 260123c

File tree

8 files changed

+39
-53
lines changed

8 files changed

+39
-53
lines changed

clang/include/clang/Parse/ParseHLSLRootSignature.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,14 +86,14 @@ class RootSignatureParser {
8686
std::optional<llvm::hlsl::rootsig::Register> Reg;
8787
std::optional<uint32_t> Num32BitConstants;
8888
std::optional<uint32_t> Space;
89-
std::optional<llvm::hlsl::rootsig::ShaderVisibility> Visibility;
89+
std::optional<llvm::dxbc::ShaderVisibility> Visibility;
9090
};
9191
std::optional<ParsedConstantParams> parseRootConstantParams();
9292

9393
struct ParsedRootDescriptorParams {
9494
std::optional<llvm::hlsl::rootsig::Register> Reg;
9595
std::optional<uint32_t> Space;
96-
std::optional<llvm::hlsl::rootsig::ShaderVisibility> Visibility;
96+
std::optional<llvm::dxbc::ShaderVisibility> Visibility;
9797
std::optional<llvm::dxbc::RootDescriptorFlags> Flags;
9898
};
9999
std::optional<ParsedRootDescriptorParams>
@@ -122,7 +122,7 @@ class RootSignatureParser {
122122
std::optional<float> MinLOD;
123123
std::optional<float> MaxLOD;
124124
std::optional<uint32_t> Space;
125-
std::optional<llvm::hlsl::rootsig::ShaderVisibility> Visibility;
125+
std::optional<llvm::dxbc::ShaderVisibility> Visibility;
126126
};
127127
std::optional<ParsedStaticSamplerParams> parseStaticSamplerParams();
128128

@@ -132,7 +132,7 @@ class RootSignatureParser {
132132
std::optional<float> parseFloatParam();
133133

134134
/// Parsing methods of various enums
135-
std::optional<llvm::hlsl::rootsig::ShaderVisibility> parseShaderVisibility();
135+
std::optional<llvm::dxbc::ShaderVisibility> parseShaderVisibility();
136136
std::optional<llvm::hlsl::rootsig::SamplerFilter> parseSamplerFilter();
137137
std::optional<llvm::hlsl::rootsig::TextureAddressMode>
138138
parseTextureAddressMode();

clang/lib/Parse/ParseHLSLRootSignature.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ std::optional<DescriptorTable> RootSignatureParser::parseDescriptorTable() {
241241
return std::nullopt;
242242

243243
DescriptorTable Table;
244-
std::optional<ShaderVisibility> Visibility;
244+
std::optional<llvm::dxbc::ShaderVisibility> Visibility;
245245

246246
// Iterate as many Clauses as possible
247247
do {
@@ -984,7 +984,7 @@ std::optional<float> RootSignatureParser::parseFloatParam() {
984984
return std::nullopt;
985985
}
986986

987-
std::optional<llvm::hlsl::rootsig::ShaderVisibility>
987+
std::optional<llvm::dxbc::ShaderVisibility>
988988
RootSignatureParser::parseShaderVisibility() {
989989
assert(CurToken.TokKind == TokenKind::pu_equal &&
990990
"Expects to only be invoked starting at given keyword");
@@ -1000,7 +1000,7 @@ RootSignatureParser::parseShaderVisibility() {
10001000
switch (CurToken.TokKind) {
10011001
#define SHADER_VISIBILITY_ENUM(NAME, LIT) \
10021002
case TokenKind::en_##NAME: \
1003-
return ShaderVisibility::NAME; \
1003+
return llvm::dxbc::ShaderVisibility::NAME; \
10041004
break;
10051005
#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
10061006
default:

clang/lib/Sema/SemaHLSL.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1200,7 +1200,7 @@ bool SemaHLSL::handleRootSignatureDecl(HLSLRootSignatureDecl *D,
12001200
const RangeInfo *OInfo) {
12011201
HadOverlap = true;
12021202
auto CommonVis =
1203-
Info->Visibility == llvm::hlsl::rootsig::ShaderVisibility::All
1203+
Info->Visibility == llvm::dxbc::ShaderVisibility::All
12041204
? OInfo->Visibility
12051205
: Info->Visibility;
12061206
this->Diag(Loc, diag::err_hlsl_resource_range_overlap)
@@ -1237,7 +1237,7 @@ bool SemaHLSL::handleRootSignatureDecl(HLSLRootSignatureDecl *D,
12371237
// ResourceRanges in the former case and it will be an ArrayRef to just the
12381238
// all visiblity ResourceRange in the latter case.
12391239
ArrayRef<ResourceRange> OverlapRanges =
1240-
Info.Visibility == llvm::hlsl::rootsig::ShaderVisibility::All
1240+
Info.Visibility == llvm::dxbc::ShaderVisibility::All
12411241
? ArrayRef<ResourceRange>{Ranges}.drop_front()
12421242
: ArrayRef<ResourceRange>{Ranges}.take_front();
12431243

clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -213,13 +213,14 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseDTClausesTest) {
213213
ASSERT_TRUE(std::holds_alternative<DescriptorTable>(Elem));
214214
ASSERT_EQ(std::get<DescriptorTable>(Elem).NumClauses, (uint32_t)4);
215215
ASSERT_EQ(std::get<DescriptorTable>(Elem).Visibility,
216-
ShaderVisibility::Pixel);
216+
llvm::dxbc::ShaderVisibility::Pixel);
217217

218218
// Empty Descriptor Table
219219
Elem = Elements[5];
220220
ASSERT_TRUE(std::holds_alternative<DescriptorTable>(Elem));
221221
ASSERT_EQ(std::get<DescriptorTable>(Elem).NumClauses, 0u);
222-
ASSERT_EQ(std::get<DescriptorTable>(Elem).Visibility, ShaderVisibility::All);
222+
ASSERT_EQ(std::get<DescriptorTable>(Elem).Visibility,
223+
llvm::dxbc::ShaderVisibility::All);
223224

224225
ASSERT_TRUE(Consumer->isSatisfied());
225226
}
@@ -271,7 +272,8 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseStaticSamplerTest) {
271272
ASSERT_FLOAT_EQ(std::get<StaticSampler>(Elem).MinLOD, 0.f);
272273
ASSERT_FLOAT_EQ(std::get<StaticSampler>(Elem).MaxLOD, 3.402823466e+38f);
273274
ASSERT_EQ(std::get<StaticSampler>(Elem).Space, 0u);
274-
ASSERT_EQ(std::get<StaticSampler>(Elem).Visibility, ShaderVisibility::All);
275+
ASSERT_EQ(std::get<StaticSampler>(Elem).Visibility,
276+
llvm::dxbc::ShaderVisibility::All);
275277

276278
// Check values can be set as expected
277279
Elem = Elements[1];
@@ -291,7 +293,8 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseStaticSamplerTest) {
291293
ASSERT_FLOAT_EQ(std::get<StaticSampler>(Elem).MinLOD, 4.2f);
292294
ASSERT_FLOAT_EQ(std::get<StaticSampler>(Elem).MaxLOD, 9000.f);
293295
ASSERT_EQ(std::get<StaticSampler>(Elem).Space, 4u);
294-
ASSERT_EQ(std::get<StaticSampler>(Elem).Visibility, ShaderVisibility::Domain);
296+
ASSERT_EQ(std::get<StaticSampler>(Elem).Visibility,
297+
llvm::dxbc::ShaderVisibility::Domain);
295298

296299
ASSERT_TRUE(Consumer->isSatisfied());
297300
}
@@ -439,15 +442,17 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseRootConsantsTest) {
439442
ASSERT_EQ(std::get<RootConstants>(Elem).Reg.ViewType, RegisterType::BReg);
440443
ASSERT_EQ(std::get<RootConstants>(Elem).Reg.Number, 0u);
441444
ASSERT_EQ(std::get<RootConstants>(Elem).Space, 0u);
442-
ASSERT_EQ(std::get<RootConstants>(Elem).Visibility, ShaderVisibility::All);
445+
ASSERT_EQ(std::get<RootConstants>(Elem).Visibility,
446+
llvm::dxbc::ShaderVisibility::All);
443447

444448
Elem = Elements[1];
445449
ASSERT_TRUE(std::holds_alternative<RootConstants>(Elem));
446450
ASSERT_EQ(std::get<RootConstants>(Elem).Num32BitConstants, 4294967295u);
447451
ASSERT_EQ(std::get<RootConstants>(Elem).Reg.ViewType, RegisterType::BReg);
448452
ASSERT_EQ(std::get<RootConstants>(Elem).Reg.Number, 42u);
449453
ASSERT_EQ(std::get<RootConstants>(Elem).Space, 3u);
450-
ASSERT_EQ(std::get<RootConstants>(Elem).Visibility, ShaderVisibility::Hull);
454+
ASSERT_EQ(std::get<RootConstants>(Elem).Visibility,
455+
llvm::dxbc::ShaderVisibility::Hull);
451456

452457
ASSERT_TRUE(Consumer->isSatisfied());
453458
}
@@ -534,7 +539,8 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseRootDescriptorsTest) {
534539
ASSERT_EQ(std::get<RootDescriptor>(Elem).Reg.ViewType, RegisterType::BReg);
535540
ASSERT_EQ(std::get<RootDescriptor>(Elem).Reg.Number, 0u);
536541
ASSERT_EQ(std::get<RootDescriptor>(Elem).Space, 0u);
537-
ASSERT_EQ(std::get<RootDescriptor>(Elem).Visibility, ShaderVisibility::All);
542+
ASSERT_EQ(std::get<RootDescriptor>(Elem).Visibility,
543+
llvm::dxbc::ShaderVisibility::All);
538544
ASSERT_EQ(std::get<RootDescriptor>(Elem).Flags,
539545
llvm::dxbc::RootDescriptorFlags::DataStaticWhileSetAtExecute);
540546

@@ -545,7 +551,7 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseRootDescriptorsTest) {
545551
ASSERT_EQ(std::get<RootDescriptor>(Elem).Reg.Number, 42u);
546552
ASSERT_EQ(std::get<RootDescriptor>(Elem).Space, 4u);
547553
ASSERT_EQ(std::get<RootDescriptor>(Elem).Visibility,
548-
ShaderVisibility::Geometry);
554+
llvm::dxbc::ShaderVisibility::Geometry);
549555
auto ValidRootDescriptorFlags = llvm::dxbc::RootDescriptorFlags(0xe);
550556
ASSERT_EQ(std::get<RootDescriptor>(Elem).Flags, ValidRootDescriptorFlags);
551557

@@ -555,7 +561,8 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseRootDescriptorsTest) {
555561
ASSERT_EQ(std::get<RootDescriptor>(Elem).Reg.ViewType, RegisterType::UReg);
556562
ASSERT_EQ(std::get<RootDescriptor>(Elem).Reg.Number, 34893247u);
557563
ASSERT_EQ(std::get<RootDescriptor>(Elem).Space, 0u);
558-
ASSERT_EQ(std::get<RootDescriptor>(Elem).Visibility, ShaderVisibility::Hull);
564+
ASSERT_EQ(std::get<RootDescriptor>(Elem).Visibility,
565+
llvm::dxbc::ShaderVisibility::Hull);
559566
ASSERT_EQ(std::get<RootDescriptor>(Elem).Flags,
560567
llvm::dxbc::RootDescriptorFlags::DataVolatile);
561568
ASSERT_EQ(std::get<RootDescriptor>(Elem).Flags,
@@ -566,7 +573,8 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseRootDescriptorsTest) {
566573
ASSERT_EQ(std::get<RootDescriptor>(Elem).Reg.ViewType, RegisterType::BReg);
567574
ASSERT_EQ(std::get<RootDescriptor>(Elem).Reg.Number, 0u);
568575
ASSERT_EQ(std::get<RootDescriptor>(Elem).Space, 0u);
569-
ASSERT_EQ(std::get<RootDescriptor>(Elem).Visibility, ShaderVisibility::All);
576+
ASSERT_EQ(std::get<RootDescriptor>(Elem).Visibility,
577+
llvm::dxbc::ShaderVisibility::All);
570578
ASSERT_EQ(std::get<RootDescriptor>(Elem).Flags,
571579
llvm::dxbc::RootDescriptorFlags::None);
572580

llvm/include/llvm/Frontend/HLSL/HLSLRootSignature.h

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,6 @@ namespace rootsig {
2929
// carried over from their values in DXC. For reference:
3030
// https://learn.microsoft.com/en-us/windows/win32/api/d3d12/
3131

32-
enum class ShaderVisibility {
33-
All = 0,
34-
Vertex = 1,
35-
Hull = 2,
36-
Domain = 3,
37-
Geometry = 4,
38-
Pixel = 5,
39-
Amplification = 6,
40-
Mesh = 7,
41-
};
42-
4332
// D3D12_FILTER enumeration:
4433
// https://learn.microsoft.com/en-us/windows/win32/api/d3d12/ne-d3d12-d3d12_filter
4534
enum class SamplerFilter {
@@ -122,7 +111,7 @@ struct RootConstants {
122111
uint32_t Num32BitConstants;
123112
Register Reg;
124113
uint32_t Space = 0;
125-
ShaderVisibility Visibility = ShaderVisibility::All;
114+
dxbc::ShaderVisibility Visibility = dxbc::ShaderVisibility::All;
126115
};
127116

128117
enum class DescriptorType : uint8_t { SRV = 0, UAV, CBuffer };
@@ -131,7 +120,7 @@ struct RootDescriptor {
131120
DescriptorType Type;
132121
Register Reg;
133122
uint32_t Space = 0;
134-
ShaderVisibility Visibility = ShaderVisibility::All;
123+
dxbc::ShaderVisibility Visibility = dxbc::ShaderVisibility::All;
135124
dxbc::RootDescriptorFlags Flags;
136125

137126
void setDefaultFlags() {
@@ -149,7 +138,7 @@ struct RootDescriptor {
149138

150139
// Models the end of a descriptor table and stores its visibility
151140
struct DescriptorTable {
152-
ShaderVisibility Visibility = ShaderVisibility::All;
141+
dxbc::ShaderVisibility Visibility = dxbc::ShaderVisibility::All;
153142
// Denotes that the previous NumClauses in the RootElement array
154143
// are the clauses in the table.
155144
uint32_t NumClauses = 0;
@@ -196,7 +185,7 @@ struct StaticSampler {
196185
float MinLOD = 0.f;
197186
float MaxLOD = std::numeric_limits<float>::max();
198187
uint32_t Space = 0;
199-
ShaderVisibility Visibility = ShaderVisibility::All;
188+
dxbc::ShaderVisibility Visibility = dxbc::ShaderVisibility::All;
200189
};
201190

202191
/// Models RootElement : RootFlags | RootConstants | RootParam

llvm/include/llvm/Frontend/HLSL/HLSLRootSignatureUtils.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ struct RangeInfo {
8383
// Information retained for diagnostics
8484
llvm::dxil::ResourceClass Class;
8585
uint32_t Space;
86-
ShaderVisibility Visibility;
86+
llvm::dxbc::ShaderVisibility Visibility;
8787
};
8888

8989
class ResourceRange {

llvm/lib/Frontend/HLSL/HLSLRootSignatureUtils.cpp

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -80,20 +80,9 @@ static raw_ostream &operator<<(raw_ostream &OS, const Register &Reg) {
8080
return OS;
8181
}
8282

83-
static const EnumEntry<ShaderVisibility> VisibilityNames[] = {
84-
{"All", ShaderVisibility::All},
85-
{"Vertex", ShaderVisibility::Vertex},
86-
{"Hull", ShaderVisibility::Hull},
87-
{"Domain", ShaderVisibility::Domain},
88-
{"Geometry", ShaderVisibility::Geometry},
89-
{"Pixel", ShaderVisibility::Pixel},
90-
{"Amplification", ShaderVisibility::Amplification},
91-
{"Mesh", ShaderVisibility::Mesh},
92-
};
93-
9483
static raw_ostream &operator<<(raw_ostream &OS,
95-
const ShaderVisibility &Visibility) {
96-
printEnum(OS, Visibility, ArrayRef(VisibilityNames));
84+
const llvm::dxbc::ShaderVisibility &Visibility) {
85+
printEnum(OS, Visibility, dxbc::getShaderVisibility());
9786

9887
return OS;
9988
}

llvm/unittests/Frontend/HLSLRootSignatureDumpTest.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ TEST(HLSLRootSignatureTest, DescriptorSamplerClauseDump) {
9696
TEST(HLSLRootSignatureTest, DescriptorTableDump) {
9797
DescriptorTable Table;
9898
Table.NumClauses = 4;
99-
Table.Visibility = ShaderVisibility::Geometry;
99+
Table.Visibility = llvm::dxbc::ShaderVisibility::Geometry;
100100

101101
std::string Out;
102102
llvm::raw_string_ostream OS(Out);
@@ -130,7 +130,7 @@ TEST(HLSLRootSignatureTest, RootSRVDump) {
130130
Descriptor.Type = DescriptorType::SRV;
131131
Descriptor.Reg = {RegisterType::TReg, 0};
132132
Descriptor.Space = 42;
133-
Descriptor.Visibility = ShaderVisibility::Geometry;
133+
Descriptor.Visibility = llvm::dxbc::ShaderVisibility::Geometry;
134134
Descriptor.Flags = llvm::dxbc::RootDescriptorFlags::None;
135135

136136
std::string Out;
@@ -148,7 +148,7 @@ TEST(HLSLRootSignatureTest, RootUAVDump) {
148148
Descriptor.Type = DescriptorType::UAV;
149149
Descriptor.Reg = {RegisterType::UReg, 92374};
150150
Descriptor.Space = 932847;
151-
Descriptor.Visibility = ShaderVisibility::Hull;
151+
Descriptor.Visibility = llvm::dxbc::ShaderVisibility::Hull;
152152
Descriptor.Flags = llvm::dxbc::RootDescriptorFlags(0xe);
153153

154154
std::string Out;
@@ -205,7 +205,7 @@ TEST(HLSLRootSignatureTest, DefinedStaticSamplerDump) {
205205
Sampler.MinLOD = 1.0f;
206206
Sampler.MaxLOD = 32.0f;
207207
Sampler.Space = 7;
208-
Sampler.Visibility = ShaderVisibility::Domain;
208+
Sampler.Visibility = llvm::dxbc::ShaderVisibility::Domain;
209209

210210
std::string Out;
211211
llvm::raw_string_ostream OS(Out);
@@ -249,7 +249,7 @@ TEST(HLSLRootSignatureTest, SetRootConstantsDump) {
249249
Constants.Num32BitConstants = 983;
250250
Constants.Reg = {RegisterType::BReg, 34593};
251251
Constants.Space = 7;
252-
Constants.Visibility = ShaderVisibility::Pixel;
252+
Constants.Visibility = llvm::dxbc::ShaderVisibility::Pixel;
253253

254254
std::string Out;
255255
llvm::raw_string_ostream OS(Out);

0 commit comments

Comments
 (0)