Skip to content

Commit c4aaa3c

Browse files
committed
nfc: move RootDescriptorFlags
1 parent 56b7fb9 commit c4aaa3c

File tree

6 files changed

+21
-36
lines changed

6 files changed

+21
-36
lines changed

clang/include/clang/Parse/ParseHLSLRootSignature.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ class RootSignatureParser {
9494
std::optional<llvm::hlsl::rootsig::Register> Reg;
9595
std::optional<uint32_t> Space;
9696
std::optional<llvm::hlsl::rootsig::ShaderVisibility> Visibility;
97-
std::optional<llvm::hlsl::rootsig::RootDescriptorFlags> Flags;
97+
std::optional<llvm::dxbc::RootDescriptorFlags> Flags;
9898
};
9999
std::optional<ParsedRootDescriptorParams>
100100
parseRootDescriptorParams(RootSignatureToken::Kind RegType);
@@ -139,8 +139,7 @@ class RootSignatureParser {
139139
std::optional<llvm::hlsl::rootsig::ComparisonFunc> parseComparisonFunc();
140140
std::optional<llvm::hlsl::rootsig::StaticBorderColor>
141141
parseStaticBorderColor();
142-
std::optional<llvm::hlsl::rootsig::RootDescriptorFlags>
143-
parseRootDescriptorFlags();
142+
std::optional<llvm::dxbc::RootDescriptorFlags> parseRootDescriptorFlags();
144143
std::optional<llvm::hlsl::rootsig::DescriptorRangeFlags>
145144
parseDescriptorRangeFlags();
146145

clang/lib/Parse/ParseHLSLRootSignature.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1114,7 +1114,7 @@ RootSignatureParser::parseStaticBorderColor() {
11141114
return std::nullopt;
11151115
}
11161116

1117-
std::optional<llvm::hlsl::rootsig::RootDescriptorFlags>
1117+
std::optional<llvm::dxbc::RootDescriptorFlags>
11181118
RootSignatureParser::parseRootDescriptorFlags() {
11191119
assert(CurToken.TokKind == TokenKind::pu_equal &&
11201120
"Expects to only be invoked starting at given keyword");
@@ -1125,23 +1125,23 @@ RootSignatureParser::parseRootDescriptorFlags() {
11251125
getDiags().Report(CurToken.TokLoc, diag::err_hlsl_rootsig_non_zero_flag);
11261126
return std::nullopt;
11271127
}
1128-
return RootDescriptorFlags::None;
1128+
return llvm::dxbc::RootDescriptorFlags::None;
11291129
}
11301130

11311131
TokenKind Expected[] = {
11321132
#define ROOT_DESCRIPTOR_FLAG_ENUM(NAME, LIT) TokenKind::en_##NAME,
11331133
#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
11341134
};
11351135

1136-
std::optional<RootDescriptorFlags> Flags;
1136+
std::optional<llvm::dxbc::RootDescriptorFlags> Flags;
11371137

11381138
do {
11391139
if (tryConsumeExpectedToken(Expected)) {
11401140
switch (CurToken.TokKind) {
11411141
#define ROOT_DESCRIPTOR_FLAG_ENUM(NAME, LIT) \
11421142
case TokenKind::en_##NAME: \
1143-
Flags = \
1144-
maybeOrFlag<RootDescriptorFlags>(Flags, RootDescriptorFlags::NAME); \
1143+
Flags = maybeOrFlag<llvm::dxbc::RootDescriptorFlags>( \
1144+
Flags, llvm::dxbc::RootDescriptorFlags::NAME); \
11451145
break;
11461146
#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
11471147
default:

clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -535,7 +535,7 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseRootDescriptorsTest) {
535535
ASSERT_EQ(std::get<RootDescriptor>(Elem).Space, 0u);
536536
ASSERT_EQ(std::get<RootDescriptor>(Elem).Visibility, ShaderVisibility::All);
537537
ASSERT_EQ(std::get<RootDescriptor>(Elem).Flags,
538-
RootDescriptorFlags::DataStaticWhileSetAtExecute);
538+
llvm::dxbc::RootDescriptorFlags::DataStaticWhileSetAtExecute);
539539

540540
Elem = Elements[1];
541541
ASSERT_TRUE(std::holds_alternative<RootDescriptor>(Elem));
@@ -545,8 +545,8 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseRootDescriptorsTest) {
545545
ASSERT_EQ(std::get<RootDescriptor>(Elem).Space, 4u);
546546
ASSERT_EQ(std::get<RootDescriptor>(Elem).Visibility,
547547
ShaderVisibility::Geometry);
548-
ASSERT_EQ(std::get<RootDescriptor>(Elem).Flags,
549-
RootDescriptorFlags::ValidFlags);
548+
auto ValidRootDescriptorFlags = llvm::dxbc::RootDescriptorFlags(0xe);
549+
ASSERT_EQ(std::get<RootDescriptor>(Elem).Flags, ValidRootDescriptorFlags);
550550

551551
Elem = Elements[2];
552552
ASSERT_TRUE(std::holds_alternative<RootDescriptor>(Elem));
@@ -556,17 +556,18 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseRootDescriptorsTest) {
556556
ASSERT_EQ(std::get<RootDescriptor>(Elem).Space, 0u);
557557
ASSERT_EQ(std::get<RootDescriptor>(Elem).Visibility, ShaderVisibility::Hull);
558558
ASSERT_EQ(std::get<RootDescriptor>(Elem).Flags,
559-
RootDescriptorFlags::DataVolatile);
559+
llvm::dxbc::RootDescriptorFlags::DataVolatile);
560560
ASSERT_EQ(std::get<RootDescriptor>(Elem).Flags,
561-
RootDescriptorFlags::DataVolatile);
561+
llvm::dxbc::RootDescriptorFlags::DataVolatile);
562562

563563
Elem = Elements[3];
564564
ASSERT_EQ(std::get<RootDescriptor>(Elem).Type, DescriptorType::CBuffer);
565565
ASSERT_EQ(std::get<RootDescriptor>(Elem).Reg.ViewType, RegisterType::BReg);
566566
ASSERT_EQ(std::get<RootDescriptor>(Elem).Reg.Number, 0u);
567567
ASSERT_EQ(std::get<RootDescriptor>(Elem).Space, 0u);
568568
ASSERT_EQ(std::get<RootDescriptor>(Elem).Visibility, ShaderVisibility::All);
569-
ASSERT_EQ(std::get<RootDescriptor>(Elem).Flags, RootDescriptorFlags::None);
569+
ASSERT_EQ(std::get<RootDescriptor>(Elem).Flags,
570+
llvm::dxbc::RootDescriptorFlags::None);
570571

571572
ASSERT_TRUE(Consumer->isSatisfied());
572573
}

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

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +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 RootDescriptorFlags : unsigned {
33-
None = 0,
34-
DataVolatile = 0x2,
35-
DataStaticWhileSetAtExecute = 0x4,
36-
DataStatic = 0x8,
37-
ValidFlags = 0xe,
38-
};
39-
4032
enum class DescriptorRangeFlags : unsigned {
4133
None = 0,
4234
DescriptorsVolatile = 0x1,
@@ -151,16 +143,16 @@ struct RootDescriptor {
151143
Register Reg;
152144
uint32_t Space = 0;
153145
ShaderVisibility Visibility = ShaderVisibility::All;
154-
RootDescriptorFlags Flags;
146+
dxbc::RootDescriptorFlags Flags;
155147

156148
void setDefaultFlags() {
157149
switch (Type) {
158150
case DescriptorType::CBuffer:
159151
case DescriptorType::SRV:
160-
Flags = RootDescriptorFlags::DataStaticWhileSetAtExecute;
152+
Flags = dxbc::RootDescriptorFlags::DataStaticWhileSetAtExecute;
161153
break;
162154
case DescriptorType::UAV:
163-
Flags = RootDescriptorFlags::DataVolatile;
155+
Flags = dxbc::RootDescriptorFlags::DataVolatile;
164156
break;
165157
}
166158
}

llvm/lib/Frontend/HLSL/HLSLRootSignatureUtils.cpp

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -215,16 +215,9 @@ static raw_ostream &operator<<(raw_ostream &OS, const ClauseType &Type) {
215215
return OS;
216216
}
217217

218-
static const EnumEntry<RootDescriptorFlags> RootDescriptorFlagNames[] = {
219-
{"DataVolatile", RootDescriptorFlags::DataVolatile},
220-
{"DataStaticWhileSetAtExecute",
221-
RootDescriptorFlags::DataStaticWhileSetAtExecute},
222-
{"DataStatic", RootDescriptorFlags::DataStatic},
223-
};
224-
225218
static raw_ostream &operator<<(raw_ostream &OS,
226-
const RootDescriptorFlags &Flags) {
227-
printFlags(OS, Flags, ArrayRef(RootDescriptorFlagNames));
219+
const dxbc::RootDescriptorFlags &Flags) {
220+
printFlags(OS, Flags, dxbc::getRootDescriptorFlags());
228221

229222
return OS;
230223
}

llvm/unittests/Frontend/HLSLRootSignatureDumpTest.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ TEST(HLSLRootSignatureTest, RootSRVDump) {
131131
Descriptor.Reg = {RegisterType::TReg, 0};
132132
Descriptor.Space = 42;
133133
Descriptor.Visibility = ShaderVisibility::Geometry;
134-
Descriptor.Flags = RootDescriptorFlags::None;
134+
Descriptor.Flags = llvm::dxbc::RootDescriptorFlags::None;
135135

136136
std::string Out;
137137
llvm::raw_string_ostream OS(Out);
@@ -149,7 +149,7 @@ TEST(HLSLRootSignatureTest, RootUAVDump) {
149149
Descriptor.Reg = {RegisterType::UReg, 92374};
150150
Descriptor.Space = 932847;
151151
Descriptor.Visibility = ShaderVisibility::Hull;
152-
Descriptor.Flags = RootDescriptorFlags::ValidFlags;
152+
Descriptor.Flags = llvm::dxbc::RootDescriptorFlags(0xe);
153153

154154
std::string Out;
155155
llvm::raw_string_ostream OS(Out);

0 commit comments

Comments
 (0)