-
Notifications
You must be signed in to change notification settings - Fork 14.8k
[NFC][HLSL][DirectX] Let HLSLRootSignature
reuse the dxbc
defined enums
#145986
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
HLSLRootSignature
reuse the dxbc
defined enumsHLSLRootSignature
reuse the dxbc
defined enums
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks generally good, a few suggestions about how we specify valid values in the unittests.
Also sprinkling some aliases like using llvm::dxbc::DescriptorRangeFlags;
might help readability in some places - particularly those same tests.
@llvm/pr-subscribers-backend-directx Author: Finn Plummer (inbelic) ChangesThis pr removes the redundancy of having the same enums defined in both the front-end and back-end of handling root signatures. Since there are many more uses of the enum in the front-end of the code, we will adhere to the naming conventions used in the front-end, to minimize the diff. The macros in Additionally, the many Changes for each enum follow the pattern of a commit that will make the enum definition in Resolves #145815 Patch is 78.94 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/145986.diff 15 Files Affected:
diff --git a/clang/include/clang/Parse/ParseHLSLRootSignature.h b/clang/include/clang/Parse/ParseHLSLRootSignature.h
index afa2c4d8cfe50..18cd1f379e62c 100644
--- a/clang/include/clang/Parse/ParseHLSLRootSignature.h
+++ b/clang/include/clang/Parse/ParseHLSLRootSignature.h
@@ -71,7 +71,7 @@ class RootSignatureParser {
// expected, or, there is a lexing error
/// Root Element parse methods:
- std::optional<llvm::hlsl::rootsig::RootFlags> parseRootFlags();
+ std::optional<llvm::dxbc::RootFlags> parseRootFlags();
std::optional<llvm::hlsl::rootsig::RootConstants> parseRootConstants();
std::optional<llvm::hlsl::rootsig::RootDescriptor> parseRootDescriptor();
std::optional<llvm::hlsl::rootsig::DescriptorTable> parseDescriptorTable();
@@ -86,15 +86,15 @@ class RootSignatureParser {
std::optional<llvm::hlsl::rootsig::Register> Reg;
std::optional<uint32_t> Num32BitConstants;
std::optional<uint32_t> Space;
- std::optional<llvm::hlsl::rootsig::ShaderVisibility> Visibility;
+ std::optional<llvm::dxbc::ShaderVisibility> Visibility;
};
std::optional<ParsedConstantParams> parseRootConstantParams();
struct ParsedRootDescriptorParams {
std::optional<llvm::hlsl::rootsig::Register> Reg;
std::optional<uint32_t> Space;
- std::optional<llvm::hlsl::rootsig::ShaderVisibility> Visibility;
- std::optional<llvm::hlsl::rootsig::RootDescriptorFlags> Flags;
+ std::optional<llvm::dxbc::ShaderVisibility> Visibility;
+ std::optional<llvm::dxbc::RootDescriptorFlags> Flags;
};
std::optional<ParsedRootDescriptorParams>
parseRootDescriptorParams(RootSignatureToken::Kind RegType);
@@ -104,25 +104,25 @@ class RootSignatureParser {
std::optional<uint32_t> NumDescriptors;
std::optional<uint32_t> Space;
std::optional<uint32_t> Offset;
- std::optional<llvm::hlsl::rootsig::DescriptorRangeFlags> Flags;
+ std::optional<llvm::dxbc::DescriptorRangeFlags> Flags;
};
std::optional<ParsedClauseParams>
parseDescriptorTableClauseParams(RootSignatureToken::Kind RegType);
struct ParsedStaticSamplerParams {
std::optional<llvm::hlsl::rootsig::Register> Reg;
- std::optional<llvm::hlsl::rootsig::SamplerFilter> Filter;
- std::optional<llvm::hlsl::rootsig::TextureAddressMode> AddressU;
- std::optional<llvm::hlsl::rootsig::TextureAddressMode> AddressV;
- std::optional<llvm::hlsl::rootsig::TextureAddressMode> AddressW;
+ std::optional<llvm::dxbc::SamplerFilter> Filter;
+ std::optional<llvm::dxbc::TextureAddressMode> AddressU;
+ std::optional<llvm::dxbc::TextureAddressMode> AddressV;
+ std::optional<llvm::dxbc::TextureAddressMode> AddressW;
std::optional<float> MipLODBias;
std::optional<uint32_t> MaxAnisotropy;
- std::optional<llvm::hlsl::rootsig::ComparisonFunc> CompFunc;
- std::optional<llvm::hlsl::rootsig::StaticBorderColor> BorderColor;
+ std::optional<llvm::dxbc::ComparisonFunc> CompFunc;
+ std::optional<llvm::dxbc::StaticBorderColor> BorderColor;
std::optional<float> MinLOD;
std::optional<float> MaxLOD;
std::optional<uint32_t> Space;
- std::optional<llvm::hlsl::rootsig::ShaderVisibility> Visibility;
+ std::optional<llvm::dxbc::ShaderVisibility> Visibility;
};
std::optional<ParsedStaticSamplerParams> parseStaticSamplerParams();
@@ -132,17 +132,13 @@ class RootSignatureParser {
std::optional<float> parseFloatParam();
/// Parsing methods of various enums
- std::optional<llvm::hlsl::rootsig::ShaderVisibility> parseShaderVisibility();
- std::optional<llvm::hlsl::rootsig::SamplerFilter> parseSamplerFilter();
- std::optional<llvm::hlsl::rootsig::TextureAddressMode>
- parseTextureAddressMode();
- std::optional<llvm::hlsl::rootsig::ComparisonFunc> parseComparisonFunc();
- std::optional<llvm::hlsl::rootsig::StaticBorderColor>
- parseStaticBorderColor();
- std::optional<llvm::hlsl::rootsig::RootDescriptorFlags>
- parseRootDescriptorFlags();
- std::optional<llvm::hlsl::rootsig::DescriptorRangeFlags>
- parseDescriptorRangeFlags();
+ std::optional<llvm::dxbc::ShaderVisibility> parseShaderVisibility();
+ std::optional<llvm::dxbc::SamplerFilter> parseSamplerFilter();
+ std::optional<llvm::dxbc::TextureAddressMode> parseTextureAddressMode();
+ std::optional<llvm::dxbc::ComparisonFunc> parseComparisonFunc();
+ std::optional<llvm::dxbc::StaticBorderColor> parseStaticBorderColor();
+ std::optional<llvm::dxbc::RootDescriptorFlags> parseRootDescriptorFlags();
+ std::optional<llvm::dxbc::DescriptorRangeFlags> parseDescriptorRangeFlags();
/// Use NumericLiteralParser to convert CurToken.NumSpelling into a unsigned
/// 32-bit integer
diff --git a/clang/lib/Parse/ParseHLSLRootSignature.cpp b/clang/lib/Parse/ParseHLSLRootSignature.cpp
index e510302c3aae0..18d3644114eef 100644
--- a/clang/lib/Parse/ParseHLSLRootSignature.cpp
+++ b/clang/lib/Parse/ParseHLSLRootSignature.cpp
@@ -76,7 +76,7 @@ static FlagType maybeOrFlag(std::optional<FlagType> Flags, FlagType Flag) {
llvm::to_underlying(Flag));
}
-std::optional<RootFlags> RootSignatureParser::parseRootFlags() {
+std::optional<llvm::dxbc::RootFlags> RootSignatureParser::parseRootFlags() {
assert(CurToken.TokKind == TokenKind::kw_RootFlags &&
"Expects to only be invoked starting at given keyword");
@@ -84,7 +84,7 @@ std::optional<RootFlags> RootSignatureParser::parseRootFlags() {
CurToken.TokKind))
return std::nullopt;
- std::optional<RootFlags> Flags = RootFlags::None;
+ std::optional<llvm::dxbc::RootFlags> Flags = llvm::dxbc::RootFlags::None;
// Handle the edge-case of '0' to specify no flags set
if (tryConsumeExpectedToken(TokenKind::int_literal)) {
@@ -104,7 +104,8 @@ std::optional<RootFlags> RootSignatureParser::parseRootFlags() {
switch (CurToken.TokKind) {
#define ROOT_FLAG_ENUM(NAME, LIT) \
case TokenKind::en_##NAME: \
- Flags = maybeOrFlag<RootFlags>(Flags, RootFlags::NAME); \
+ Flags = maybeOrFlag<llvm::dxbc::RootFlags>(Flags, \
+ llvm::dxbc::RootFlags::NAME); \
break;
#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
default:
@@ -240,7 +241,7 @@ std::optional<DescriptorTable> RootSignatureParser::parseDescriptorTable() {
return std::nullopt;
DescriptorTable Table;
- std::optional<ShaderVisibility> Visibility;
+ std::optional<llvm::dxbc::ShaderVisibility> Visibility;
// Iterate as many Clauses as possible
do {
@@ -983,7 +984,7 @@ std::optional<float> RootSignatureParser::parseFloatParam() {
return std::nullopt;
}
-std::optional<llvm::hlsl::rootsig::ShaderVisibility>
+std::optional<llvm::dxbc::ShaderVisibility>
RootSignatureParser::parseShaderVisibility() {
assert(CurToken.TokKind == TokenKind::pu_equal &&
"Expects to only be invoked starting at given keyword");
@@ -999,7 +1000,7 @@ RootSignatureParser::parseShaderVisibility() {
switch (CurToken.TokKind) {
#define SHADER_VISIBILITY_ENUM(NAME, LIT) \
case TokenKind::en_##NAME: \
- return ShaderVisibility::NAME; \
+ return llvm::dxbc::ShaderVisibility::NAME; \
break;
#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
default:
@@ -1009,7 +1010,7 @@ RootSignatureParser::parseShaderVisibility() {
return std::nullopt;
}
-std::optional<llvm::hlsl::rootsig::SamplerFilter>
+std::optional<llvm::dxbc::SamplerFilter>
RootSignatureParser::parseSamplerFilter() {
assert(CurToken.TokKind == TokenKind::pu_equal &&
"Expects to only be invoked starting at given keyword");
@@ -1025,7 +1026,7 @@ RootSignatureParser::parseSamplerFilter() {
switch (CurToken.TokKind) {
#define FILTER_ENUM(NAME, LIT) \
case TokenKind::en_##NAME: \
- return SamplerFilter::NAME; \
+ return llvm::dxbc::SamplerFilter::NAME; \
break;
#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
default:
@@ -1035,7 +1036,7 @@ RootSignatureParser::parseSamplerFilter() {
return std::nullopt;
}
-std::optional<llvm::hlsl::rootsig::TextureAddressMode>
+std::optional<llvm::dxbc::TextureAddressMode>
RootSignatureParser::parseTextureAddressMode() {
assert(CurToken.TokKind == TokenKind::pu_equal &&
"Expects to only be invoked starting at given keyword");
@@ -1051,7 +1052,7 @@ RootSignatureParser::parseTextureAddressMode() {
switch (CurToken.TokKind) {
#define TEXTURE_ADDRESS_MODE_ENUM(NAME, LIT) \
case TokenKind::en_##NAME: \
- return TextureAddressMode::NAME; \
+ return llvm::dxbc::TextureAddressMode::NAME; \
break;
#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
default:
@@ -1061,7 +1062,7 @@ RootSignatureParser::parseTextureAddressMode() {
return std::nullopt;
}
-std::optional<llvm::hlsl::rootsig::ComparisonFunc>
+std::optional<llvm::dxbc::ComparisonFunc>
RootSignatureParser::parseComparisonFunc() {
assert(CurToken.TokKind == TokenKind::pu_equal &&
"Expects to only be invoked starting at given keyword");
@@ -1077,7 +1078,7 @@ RootSignatureParser::parseComparisonFunc() {
switch (CurToken.TokKind) {
#define COMPARISON_FUNC_ENUM(NAME, LIT) \
case TokenKind::en_##NAME: \
- return ComparisonFunc::NAME; \
+ return llvm::dxbc::ComparisonFunc::NAME; \
break;
#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
default:
@@ -1087,7 +1088,7 @@ RootSignatureParser::parseComparisonFunc() {
return std::nullopt;
}
-std::optional<llvm::hlsl::rootsig::StaticBorderColor>
+std::optional<llvm::dxbc::StaticBorderColor>
RootSignatureParser::parseStaticBorderColor() {
assert(CurToken.TokKind == TokenKind::pu_equal &&
"Expects to only be invoked starting at given keyword");
@@ -1103,7 +1104,7 @@ RootSignatureParser::parseStaticBorderColor() {
switch (CurToken.TokKind) {
#define STATIC_BORDER_COLOR_ENUM(NAME, LIT) \
case TokenKind::en_##NAME: \
- return StaticBorderColor::NAME; \
+ return llvm::dxbc::StaticBorderColor::NAME; \
break;
#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
default:
@@ -1113,7 +1114,7 @@ RootSignatureParser::parseStaticBorderColor() {
return std::nullopt;
}
-std::optional<llvm::hlsl::rootsig::RootDescriptorFlags>
+std::optional<llvm::dxbc::RootDescriptorFlags>
RootSignatureParser::parseRootDescriptorFlags() {
assert(CurToken.TokKind == TokenKind::pu_equal &&
"Expects to only be invoked starting at given keyword");
@@ -1124,7 +1125,7 @@ RootSignatureParser::parseRootDescriptorFlags() {
getDiags().Report(CurToken.TokLoc, diag::err_hlsl_rootsig_non_zero_flag);
return std::nullopt;
}
- return RootDescriptorFlags::None;
+ return llvm::dxbc::RootDescriptorFlags::None;
}
TokenKind Expected[] = {
@@ -1132,15 +1133,15 @@ RootSignatureParser::parseRootDescriptorFlags() {
#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
};
- std::optional<RootDescriptorFlags> Flags;
+ std::optional<llvm::dxbc::RootDescriptorFlags> Flags;
do {
if (tryConsumeExpectedToken(Expected)) {
switch (CurToken.TokKind) {
#define ROOT_DESCRIPTOR_FLAG_ENUM(NAME, LIT) \
case TokenKind::en_##NAME: \
- Flags = \
- maybeOrFlag<RootDescriptorFlags>(Flags, RootDescriptorFlags::NAME); \
+ Flags = maybeOrFlag<llvm::dxbc::RootDescriptorFlags>( \
+ Flags, llvm::dxbc::RootDescriptorFlags::NAME); \
break;
#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
default:
@@ -1152,7 +1153,7 @@ RootSignatureParser::parseRootDescriptorFlags() {
return Flags;
}
-std::optional<llvm::hlsl::rootsig::DescriptorRangeFlags>
+std::optional<llvm::dxbc::DescriptorRangeFlags>
RootSignatureParser::parseDescriptorRangeFlags() {
assert(CurToken.TokKind == TokenKind::pu_equal &&
"Expects to only be invoked starting at given keyword");
@@ -1163,7 +1164,7 @@ RootSignatureParser::parseDescriptorRangeFlags() {
getDiags().Report(CurToken.TokLoc, diag::err_hlsl_rootsig_non_zero_flag);
return std::nullopt;
}
- return DescriptorRangeFlags::None;
+ return llvm::dxbc::DescriptorRangeFlags::None;
}
TokenKind Expected[] = {
@@ -1171,15 +1172,15 @@ RootSignatureParser::parseDescriptorRangeFlags() {
#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
};
- std::optional<DescriptorRangeFlags> Flags;
+ std::optional<llvm::dxbc::DescriptorRangeFlags> Flags;
do {
if (tryConsumeExpectedToken(Expected)) {
switch (CurToken.TokKind) {
#define DESCRIPTOR_RANGE_FLAG_ENUM(NAME, LIT, ON) \
case TokenKind::en_##NAME: \
- Flags = \
- maybeOrFlag<DescriptorRangeFlags>(Flags, DescriptorRangeFlags::NAME); \
+ Flags = maybeOrFlag<llvm::dxbc::DescriptorRangeFlags>( \
+ Flags, llvm::dxbc::DescriptorRangeFlags::NAME); \
break;
#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
default:
diff --git a/clang/lib/Sema/SemaHLSL.cpp b/clang/lib/Sema/SemaHLSL.cpp
index 0974ccbf9267c..3bab0da5edea8 100644
--- a/clang/lib/Sema/SemaHLSL.cpp
+++ b/clang/lib/Sema/SemaHLSL.cpp
@@ -1199,10 +1199,9 @@ bool SemaHLSL::handleRootSignatureDecl(HLSLRootSignatureDecl *D,
auto ReportOverlap = [this, Loc, &HadOverlap](const RangeInfo *Info,
const RangeInfo *OInfo) {
HadOverlap = true;
- auto CommonVis =
- Info->Visibility == llvm::hlsl::rootsig::ShaderVisibility::All
- ? OInfo->Visibility
- : Info->Visibility;
+ auto CommonVis = Info->Visibility == llvm::dxbc::ShaderVisibility::All
+ ? OInfo->Visibility
+ : Info->Visibility;
this->Diag(Loc, diag::err_hlsl_resource_range_overlap)
<< llvm::to_underlying(Info->Class) << Info->LowerBound
<< /*unbounded=*/(Info->UpperBound == RangeInfo::Unbounded)
@@ -1237,7 +1236,7 @@ bool SemaHLSL::handleRootSignatureDecl(HLSLRootSignatureDecl *D,
// ResourceRanges in the former case and it will be an ArrayRef to just the
// all visiblity ResourceRange in the latter case.
ArrayRef<ResourceRange> OverlapRanges =
- Info.Visibility == llvm::hlsl::rootsig::ShaderVisibility::All
+ Info.Visibility == llvm::dxbc::ShaderVisibility::All
? ArrayRef<ResourceRange>{Ranges}.drop_front()
: ArrayRef<ResourceRange>{Ranges}.take_front();
diff --git a/clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp b/clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp
index 1e46ee35d5d49..ba42895afce6c 100644
--- a/clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp
+++ b/clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp
@@ -167,7 +167,7 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseDTClausesTest) {
ASSERT_EQ(std::get<DescriptorTableClause>(Elem).Offset,
DescriptorTableOffsetAppend);
ASSERT_EQ(std::get<DescriptorTableClause>(Elem).Flags,
- DescriptorRangeFlags::DataStaticWhileSetAtExecute);
+ llvm::dxbc::DescriptorRangeFlags::DataStaticWhileSetAtExecute);
Elem = Elements[1];
ASSERT_TRUE(std::holds_alternative<DescriptorTableClause>(Elem));
@@ -179,7 +179,7 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseDTClausesTest) {
ASSERT_EQ(std::get<DescriptorTableClause>(Elem).Space, 3u);
ASSERT_EQ(std::get<DescriptorTableClause>(Elem).Offset, 32u);
ASSERT_EQ(std::get<DescriptorTableClause>(Elem).Flags,
- DescriptorRangeFlags::None);
+ llvm::dxbc::DescriptorRangeFlags::None);
Elem = Elements[2];
ASSERT_TRUE(std::holds_alternative<DescriptorTableClause>(Elem));
@@ -192,7 +192,7 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseDTClausesTest) {
ASSERT_EQ(std::get<DescriptorTableClause>(Elem).Offset,
DescriptorTableOffsetAppend);
ASSERT_EQ(std::get<DescriptorTableClause>(Elem).Flags,
- DescriptorRangeFlags::None);
+ llvm::dxbc::DescriptorRangeFlags::None);
Elem = Elements[3];
ASSERT_TRUE(std::holds_alternative<DescriptorTableClause>(Elem));
@@ -205,20 +205,22 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseDTClausesTest) {
ASSERT_EQ(std::get<DescriptorTableClause>(Elem).Space, 0u);
ASSERT_EQ(std::get<DescriptorTableClause>(Elem).Offset,
DescriptorTableOffsetAppend);
+ auto ValidDescriptorRangeFlags = llvm::dxbc::DescriptorRangeFlags(0x1000f);
ASSERT_EQ(std::get<DescriptorTableClause>(Elem).Flags,
- DescriptorRangeFlags::ValidFlags);
+ ValidDescriptorRangeFlags);
Elem = Elements[4];
ASSERT_TRUE(std::holds_alternative<DescriptorTable>(Elem));
ASSERT_EQ(std::get<DescriptorTable>(Elem).NumClauses, (uint32_t)4);
ASSERT_EQ(std::get<DescriptorTable>(Elem).Visibility,
- ShaderVisibility::Pixel);
+ llvm::dxbc::ShaderVisibility::Pixel);
// Empty Descriptor Table
Elem = Elements[5];
ASSERT_TRUE(std::holds_alternative<DescriptorTable>(Elem));
ASSERT_EQ(std::get<DescriptorTable>(Elem).NumClauses, 0u);
- ASSERT_EQ(std::get<DescriptorTable>(Elem).Visibility, ShaderVisibility::All);
+ ASSERT_EQ(std::get<DescriptorTable>(Elem).Visibility,
+ llvm::dxbc::ShaderVisibility::All);
ASSERT_TRUE(Consumer->isSatisfied());
}
@@ -258,19 +260,25 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseStaticSamplerTest) {
ASSERT_TRUE(std::holds_alternative<StaticSampler>(Elem));
ASSERT_EQ(std::get<StaticSampler>(Elem).Reg.ViewType, RegisterType::SReg);
ASSERT_EQ(std::get<StaticSampler>(Elem).Reg.Number, 0u);
- ASSERT_EQ(std::get<StaticSampler>(Elem).Filter, SamplerFilter::Anisotropic);
- ASSERT_EQ(std::get<StaticSampler>(Elem).AddressU, TextureAddressMode::Wrap);
- ASSERT_EQ(std::get<StaticSampler>(Elem).AddressV, TextureAddressMode::Wrap);
- ASSERT_EQ(std::get<StaticSampler>(Elem).AddressW, TextureAddressMode::Wrap);
+ ASSERT_EQ(std::get<StaticSampler>(Elem).Filter,
+ llvm::dxbc::SamplerFilter::Anisotropic);
+ ASSERT_EQ(std::get<StaticSampler>(Elem).AddressU,
+ llvm::dxbc::TextureAddressMode::Wrap);
+ ASSERT_EQ(std::get<StaticSampler>(Elem).AddressV,
+ llvm::dxbc::TextureAddressMode::Wrap);
+ ASSERT_EQ(std::get<StaticSampler>(Elem).AddressW,
+ llvm::dxbc::TextureAddressMode::Wrap);
ASSERT_FLOAT_EQ(std::get<StaticSampler>(Elem).MipLODBias, 0.f);
ASSERT_EQ(std::get<StaticSampler>(Elem).MaxAnisotropy, 16u);
- ASSERT_EQ(std::get<StaticSampler>(Elem).CompFunc, ComparisonFunc::LessEqual);
+ ASSERT_EQ(std::get<StaticSampler>(Elem).CompFunc,
+ llvm::dxbc::ComparisonFunc::LessEqual);
ASSERT_EQ(std::get<StaticSampler>(Elem).BorderColor,
- StaticBorderColor::OpaqueWhite);
+ llvm::dxbc::StaticBorderColor::OpaqueWhite);
ASSERT_FLOAT_EQ(std::get<StaticSampler>(Elem).MinLOD, 0.f);
ASSERT_FLOAT_EQ(std::get<StaticSampler>(Elem).MaxLOD, 3.402823466e+38f);
ASSERT_EQ(std::get<StaticSampler>(Elem).Space, 0u);
- ASSERT_EQ(std::get<StaticSampler>(Elem).Visibility, ShaderVisibility::All);
+ ASSERT_EQ(std::get<StaticSampler>(Elem).Visibility,
+ llvm::dxbc::ShaderVisibility::All);
// Check values can be set as expected
Elem = Elements...
[truncated]
|
@llvm/pr-subscribers-hlsl Author: Finn Plummer (inbelic) ChangesThis pr removes the redundancy of having the same enums defined in both the front-end and back-end of handling root signatures. Since there are many more uses of the enum in the front-end of the code, we will adhere to the naming conventions used in the front-end, to minimize the diff. The macros in Additionally, the many Changes for each enum follow the pattern of a commit that will make the enum definition in Resolves #145815 Patch is 78.94 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/145986.diff 15 Files Affected:
diff --git a/clang/include/clang/Parse/ParseHLSLRootSignature.h b/clang/include/clang/Parse/ParseHLSLRootSignature.h
index afa2c4d8cfe50..18cd1f379e62c 100644
--- a/clang/include/clang/Parse/ParseHLSLRootSignature.h
+++ b/clang/include/clang/Parse/ParseHLSLRootSignature.h
@@ -71,7 +71,7 @@ class RootSignatureParser {
// expected, or, there is a lexing error
/// Root Element parse methods:
- std::optional<llvm::hlsl::rootsig::RootFlags> parseRootFlags();
+ std::optional<llvm::dxbc::RootFlags> parseRootFlags();
std::optional<llvm::hlsl::rootsig::RootConstants> parseRootConstants();
std::optional<llvm::hlsl::rootsig::RootDescriptor> parseRootDescriptor();
std::optional<llvm::hlsl::rootsig::DescriptorTable> parseDescriptorTable();
@@ -86,15 +86,15 @@ class RootSignatureParser {
std::optional<llvm::hlsl::rootsig::Register> Reg;
std::optional<uint32_t> Num32BitConstants;
std::optional<uint32_t> Space;
- std::optional<llvm::hlsl::rootsig::ShaderVisibility> Visibility;
+ std::optional<llvm::dxbc::ShaderVisibility> Visibility;
};
std::optional<ParsedConstantParams> parseRootConstantParams();
struct ParsedRootDescriptorParams {
std::optional<llvm::hlsl::rootsig::Register> Reg;
std::optional<uint32_t> Space;
- std::optional<llvm::hlsl::rootsig::ShaderVisibility> Visibility;
- std::optional<llvm::hlsl::rootsig::RootDescriptorFlags> Flags;
+ std::optional<llvm::dxbc::ShaderVisibility> Visibility;
+ std::optional<llvm::dxbc::RootDescriptorFlags> Flags;
};
std::optional<ParsedRootDescriptorParams>
parseRootDescriptorParams(RootSignatureToken::Kind RegType);
@@ -104,25 +104,25 @@ class RootSignatureParser {
std::optional<uint32_t> NumDescriptors;
std::optional<uint32_t> Space;
std::optional<uint32_t> Offset;
- std::optional<llvm::hlsl::rootsig::DescriptorRangeFlags> Flags;
+ std::optional<llvm::dxbc::DescriptorRangeFlags> Flags;
};
std::optional<ParsedClauseParams>
parseDescriptorTableClauseParams(RootSignatureToken::Kind RegType);
struct ParsedStaticSamplerParams {
std::optional<llvm::hlsl::rootsig::Register> Reg;
- std::optional<llvm::hlsl::rootsig::SamplerFilter> Filter;
- std::optional<llvm::hlsl::rootsig::TextureAddressMode> AddressU;
- std::optional<llvm::hlsl::rootsig::TextureAddressMode> AddressV;
- std::optional<llvm::hlsl::rootsig::TextureAddressMode> AddressW;
+ std::optional<llvm::dxbc::SamplerFilter> Filter;
+ std::optional<llvm::dxbc::TextureAddressMode> AddressU;
+ std::optional<llvm::dxbc::TextureAddressMode> AddressV;
+ std::optional<llvm::dxbc::TextureAddressMode> AddressW;
std::optional<float> MipLODBias;
std::optional<uint32_t> MaxAnisotropy;
- std::optional<llvm::hlsl::rootsig::ComparisonFunc> CompFunc;
- std::optional<llvm::hlsl::rootsig::StaticBorderColor> BorderColor;
+ std::optional<llvm::dxbc::ComparisonFunc> CompFunc;
+ std::optional<llvm::dxbc::StaticBorderColor> BorderColor;
std::optional<float> MinLOD;
std::optional<float> MaxLOD;
std::optional<uint32_t> Space;
- std::optional<llvm::hlsl::rootsig::ShaderVisibility> Visibility;
+ std::optional<llvm::dxbc::ShaderVisibility> Visibility;
};
std::optional<ParsedStaticSamplerParams> parseStaticSamplerParams();
@@ -132,17 +132,13 @@ class RootSignatureParser {
std::optional<float> parseFloatParam();
/// Parsing methods of various enums
- std::optional<llvm::hlsl::rootsig::ShaderVisibility> parseShaderVisibility();
- std::optional<llvm::hlsl::rootsig::SamplerFilter> parseSamplerFilter();
- std::optional<llvm::hlsl::rootsig::TextureAddressMode>
- parseTextureAddressMode();
- std::optional<llvm::hlsl::rootsig::ComparisonFunc> parseComparisonFunc();
- std::optional<llvm::hlsl::rootsig::StaticBorderColor>
- parseStaticBorderColor();
- std::optional<llvm::hlsl::rootsig::RootDescriptorFlags>
- parseRootDescriptorFlags();
- std::optional<llvm::hlsl::rootsig::DescriptorRangeFlags>
- parseDescriptorRangeFlags();
+ std::optional<llvm::dxbc::ShaderVisibility> parseShaderVisibility();
+ std::optional<llvm::dxbc::SamplerFilter> parseSamplerFilter();
+ std::optional<llvm::dxbc::TextureAddressMode> parseTextureAddressMode();
+ std::optional<llvm::dxbc::ComparisonFunc> parseComparisonFunc();
+ std::optional<llvm::dxbc::StaticBorderColor> parseStaticBorderColor();
+ std::optional<llvm::dxbc::RootDescriptorFlags> parseRootDescriptorFlags();
+ std::optional<llvm::dxbc::DescriptorRangeFlags> parseDescriptorRangeFlags();
/// Use NumericLiteralParser to convert CurToken.NumSpelling into a unsigned
/// 32-bit integer
diff --git a/clang/lib/Parse/ParseHLSLRootSignature.cpp b/clang/lib/Parse/ParseHLSLRootSignature.cpp
index e510302c3aae0..18d3644114eef 100644
--- a/clang/lib/Parse/ParseHLSLRootSignature.cpp
+++ b/clang/lib/Parse/ParseHLSLRootSignature.cpp
@@ -76,7 +76,7 @@ static FlagType maybeOrFlag(std::optional<FlagType> Flags, FlagType Flag) {
llvm::to_underlying(Flag));
}
-std::optional<RootFlags> RootSignatureParser::parseRootFlags() {
+std::optional<llvm::dxbc::RootFlags> RootSignatureParser::parseRootFlags() {
assert(CurToken.TokKind == TokenKind::kw_RootFlags &&
"Expects to only be invoked starting at given keyword");
@@ -84,7 +84,7 @@ std::optional<RootFlags> RootSignatureParser::parseRootFlags() {
CurToken.TokKind))
return std::nullopt;
- std::optional<RootFlags> Flags = RootFlags::None;
+ std::optional<llvm::dxbc::RootFlags> Flags = llvm::dxbc::RootFlags::None;
// Handle the edge-case of '0' to specify no flags set
if (tryConsumeExpectedToken(TokenKind::int_literal)) {
@@ -104,7 +104,8 @@ std::optional<RootFlags> RootSignatureParser::parseRootFlags() {
switch (CurToken.TokKind) {
#define ROOT_FLAG_ENUM(NAME, LIT) \
case TokenKind::en_##NAME: \
- Flags = maybeOrFlag<RootFlags>(Flags, RootFlags::NAME); \
+ Flags = maybeOrFlag<llvm::dxbc::RootFlags>(Flags, \
+ llvm::dxbc::RootFlags::NAME); \
break;
#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
default:
@@ -240,7 +241,7 @@ std::optional<DescriptorTable> RootSignatureParser::parseDescriptorTable() {
return std::nullopt;
DescriptorTable Table;
- std::optional<ShaderVisibility> Visibility;
+ std::optional<llvm::dxbc::ShaderVisibility> Visibility;
// Iterate as many Clauses as possible
do {
@@ -983,7 +984,7 @@ std::optional<float> RootSignatureParser::parseFloatParam() {
return std::nullopt;
}
-std::optional<llvm::hlsl::rootsig::ShaderVisibility>
+std::optional<llvm::dxbc::ShaderVisibility>
RootSignatureParser::parseShaderVisibility() {
assert(CurToken.TokKind == TokenKind::pu_equal &&
"Expects to only be invoked starting at given keyword");
@@ -999,7 +1000,7 @@ RootSignatureParser::parseShaderVisibility() {
switch (CurToken.TokKind) {
#define SHADER_VISIBILITY_ENUM(NAME, LIT) \
case TokenKind::en_##NAME: \
- return ShaderVisibility::NAME; \
+ return llvm::dxbc::ShaderVisibility::NAME; \
break;
#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
default:
@@ -1009,7 +1010,7 @@ RootSignatureParser::parseShaderVisibility() {
return std::nullopt;
}
-std::optional<llvm::hlsl::rootsig::SamplerFilter>
+std::optional<llvm::dxbc::SamplerFilter>
RootSignatureParser::parseSamplerFilter() {
assert(CurToken.TokKind == TokenKind::pu_equal &&
"Expects to only be invoked starting at given keyword");
@@ -1025,7 +1026,7 @@ RootSignatureParser::parseSamplerFilter() {
switch (CurToken.TokKind) {
#define FILTER_ENUM(NAME, LIT) \
case TokenKind::en_##NAME: \
- return SamplerFilter::NAME; \
+ return llvm::dxbc::SamplerFilter::NAME; \
break;
#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
default:
@@ -1035,7 +1036,7 @@ RootSignatureParser::parseSamplerFilter() {
return std::nullopt;
}
-std::optional<llvm::hlsl::rootsig::TextureAddressMode>
+std::optional<llvm::dxbc::TextureAddressMode>
RootSignatureParser::parseTextureAddressMode() {
assert(CurToken.TokKind == TokenKind::pu_equal &&
"Expects to only be invoked starting at given keyword");
@@ -1051,7 +1052,7 @@ RootSignatureParser::parseTextureAddressMode() {
switch (CurToken.TokKind) {
#define TEXTURE_ADDRESS_MODE_ENUM(NAME, LIT) \
case TokenKind::en_##NAME: \
- return TextureAddressMode::NAME; \
+ return llvm::dxbc::TextureAddressMode::NAME; \
break;
#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
default:
@@ -1061,7 +1062,7 @@ RootSignatureParser::parseTextureAddressMode() {
return std::nullopt;
}
-std::optional<llvm::hlsl::rootsig::ComparisonFunc>
+std::optional<llvm::dxbc::ComparisonFunc>
RootSignatureParser::parseComparisonFunc() {
assert(CurToken.TokKind == TokenKind::pu_equal &&
"Expects to only be invoked starting at given keyword");
@@ -1077,7 +1078,7 @@ RootSignatureParser::parseComparisonFunc() {
switch (CurToken.TokKind) {
#define COMPARISON_FUNC_ENUM(NAME, LIT) \
case TokenKind::en_##NAME: \
- return ComparisonFunc::NAME; \
+ return llvm::dxbc::ComparisonFunc::NAME; \
break;
#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
default:
@@ -1087,7 +1088,7 @@ RootSignatureParser::parseComparisonFunc() {
return std::nullopt;
}
-std::optional<llvm::hlsl::rootsig::StaticBorderColor>
+std::optional<llvm::dxbc::StaticBorderColor>
RootSignatureParser::parseStaticBorderColor() {
assert(CurToken.TokKind == TokenKind::pu_equal &&
"Expects to only be invoked starting at given keyword");
@@ -1103,7 +1104,7 @@ RootSignatureParser::parseStaticBorderColor() {
switch (CurToken.TokKind) {
#define STATIC_BORDER_COLOR_ENUM(NAME, LIT) \
case TokenKind::en_##NAME: \
- return StaticBorderColor::NAME; \
+ return llvm::dxbc::StaticBorderColor::NAME; \
break;
#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
default:
@@ -1113,7 +1114,7 @@ RootSignatureParser::parseStaticBorderColor() {
return std::nullopt;
}
-std::optional<llvm::hlsl::rootsig::RootDescriptorFlags>
+std::optional<llvm::dxbc::RootDescriptorFlags>
RootSignatureParser::parseRootDescriptorFlags() {
assert(CurToken.TokKind == TokenKind::pu_equal &&
"Expects to only be invoked starting at given keyword");
@@ -1124,7 +1125,7 @@ RootSignatureParser::parseRootDescriptorFlags() {
getDiags().Report(CurToken.TokLoc, diag::err_hlsl_rootsig_non_zero_flag);
return std::nullopt;
}
- return RootDescriptorFlags::None;
+ return llvm::dxbc::RootDescriptorFlags::None;
}
TokenKind Expected[] = {
@@ -1132,15 +1133,15 @@ RootSignatureParser::parseRootDescriptorFlags() {
#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
};
- std::optional<RootDescriptorFlags> Flags;
+ std::optional<llvm::dxbc::RootDescriptorFlags> Flags;
do {
if (tryConsumeExpectedToken(Expected)) {
switch (CurToken.TokKind) {
#define ROOT_DESCRIPTOR_FLAG_ENUM(NAME, LIT) \
case TokenKind::en_##NAME: \
- Flags = \
- maybeOrFlag<RootDescriptorFlags>(Flags, RootDescriptorFlags::NAME); \
+ Flags = maybeOrFlag<llvm::dxbc::RootDescriptorFlags>( \
+ Flags, llvm::dxbc::RootDescriptorFlags::NAME); \
break;
#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
default:
@@ -1152,7 +1153,7 @@ RootSignatureParser::parseRootDescriptorFlags() {
return Flags;
}
-std::optional<llvm::hlsl::rootsig::DescriptorRangeFlags>
+std::optional<llvm::dxbc::DescriptorRangeFlags>
RootSignatureParser::parseDescriptorRangeFlags() {
assert(CurToken.TokKind == TokenKind::pu_equal &&
"Expects to only be invoked starting at given keyword");
@@ -1163,7 +1164,7 @@ RootSignatureParser::parseDescriptorRangeFlags() {
getDiags().Report(CurToken.TokLoc, diag::err_hlsl_rootsig_non_zero_flag);
return std::nullopt;
}
- return DescriptorRangeFlags::None;
+ return llvm::dxbc::DescriptorRangeFlags::None;
}
TokenKind Expected[] = {
@@ -1171,15 +1172,15 @@ RootSignatureParser::parseDescriptorRangeFlags() {
#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
};
- std::optional<DescriptorRangeFlags> Flags;
+ std::optional<llvm::dxbc::DescriptorRangeFlags> Flags;
do {
if (tryConsumeExpectedToken(Expected)) {
switch (CurToken.TokKind) {
#define DESCRIPTOR_RANGE_FLAG_ENUM(NAME, LIT, ON) \
case TokenKind::en_##NAME: \
- Flags = \
- maybeOrFlag<DescriptorRangeFlags>(Flags, DescriptorRangeFlags::NAME); \
+ Flags = maybeOrFlag<llvm::dxbc::DescriptorRangeFlags>( \
+ Flags, llvm::dxbc::DescriptorRangeFlags::NAME); \
break;
#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
default:
diff --git a/clang/lib/Sema/SemaHLSL.cpp b/clang/lib/Sema/SemaHLSL.cpp
index 0974ccbf9267c..3bab0da5edea8 100644
--- a/clang/lib/Sema/SemaHLSL.cpp
+++ b/clang/lib/Sema/SemaHLSL.cpp
@@ -1199,10 +1199,9 @@ bool SemaHLSL::handleRootSignatureDecl(HLSLRootSignatureDecl *D,
auto ReportOverlap = [this, Loc, &HadOverlap](const RangeInfo *Info,
const RangeInfo *OInfo) {
HadOverlap = true;
- auto CommonVis =
- Info->Visibility == llvm::hlsl::rootsig::ShaderVisibility::All
- ? OInfo->Visibility
- : Info->Visibility;
+ auto CommonVis = Info->Visibility == llvm::dxbc::ShaderVisibility::All
+ ? OInfo->Visibility
+ : Info->Visibility;
this->Diag(Loc, diag::err_hlsl_resource_range_overlap)
<< llvm::to_underlying(Info->Class) << Info->LowerBound
<< /*unbounded=*/(Info->UpperBound == RangeInfo::Unbounded)
@@ -1237,7 +1236,7 @@ bool SemaHLSL::handleRootSignatureDecl(HLSLRootSignatureDecl *D,
// ResourceRanges in the former case and it will be an ArrayRef to just the
// all visiblity ResourceRange in the latter case.
ArrayRef<ResourceRange> OverlapRanges =
- Info.Visibility == llvm::hlsl::rootsig::ShaderVisibility::All
+ Info.Visibility == llvm::dxbc::ShaderVisibility::All
? ArrayRef<ResourceRange>{Ranges}.drop_front()
: ArrayRef<ResourceRange>{Ranges}.take_front();
diff --git a/clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp b/clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp
index 1e46ee35d5d49..ba42895afce6c 100644
--- a/clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp
+++ b/clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp
@@ -167,7 +167,7 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseDTClausesTest) {
ASSERT_EQ(std::get<DescriptorTableClause>(Elem).Offset,
DescriptorTableOffsetAppend);
ASSERT_EQ(std::get<DescriptorTableClause>(Elem).Flags,
- DescriptorRangeFlags::DataStaticWhileSetAtExecute);
+ llvm::dxbc::DescriptorRangeFlags::DataStaticWhileSetAtExecute);
Elem = Elements[1];
ASSERT_TRUE(std::holds_alternative<DescriptorTableClause>(Elem));
@@ -179,7 +179,7 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseDTClausesTest) {
ASSERT_EQ(std::get<DescriptorTableClause>(Elem).Space, 3u);
ASSERT_EQ(std::get<DescriptorTableClause>(Elem).Offset, 32u);
ASSERT_EQ(std::get<DescriptorTableClause>(Elem).Flags,
- DescriptorRangeFlags::None);
+ llvm::dxbc::DescriptorRangeFlags::None);
Elem = Elements[2];
ASSERT_TRUE(std::holds_alternative<DescriptorTableClause>(Elem));
@@ -192,7 +192,7 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseDTClausesTest) {
ASSERT_EQ(std::get<DescriptorTableClause>(Elem).Offset,
DescriptorTableOffsetAppend);
ASSERT_EQ(std::get<DescriptorTableClause>(Elem).Flags,
- DescriptorRangeFlags::None);
+ llvm::dxbc::DescriptorRangeFlags::None);
Elem = Elements[3];
ASSERT_TRUE(std::holds_alternative<DescriptorTableClause>(Elem));
@@ -205,20 +205,22 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseDTClausesTest) {
ASSERT_EQ(std::get<DescriptorTableClause>(Elem).Space, 0u);
ASSERT_EQ(std::get<DescriptorTableClause>(Elem).Offset,
DescriptorTableOffsetAppend);
+ auto ValidDescriptorRangeFlags = llvm::dxbc::DescriptorRangeFlags(0x1000f);
ASSERT_EQ(std::get<DescriptorTableClause>(Elem).Flags,
- DescriptorRangeFlags::ValidFlags);
+ ValidDescriptorRangeFlags);
Elem = Elements[4];
ASSERT_TRUE(std::holds_alternative<DescriptorTable>(Elem));
ASSERT_EQ(std::get<DescriptorTable>(Elem).NumClauses, (uint32_t)4);
ASSERT_EQ(std::get<DescriptorTable>(Elem).Visibility,
- ShaderVisibility::Pixel);
+ llvm::dxbc::ShaderVisibility::Pixel);
// Empty Descriptor Table
Elem = Elements[5];
ASSERT_TRUE(std::holds_alternative<DescriptorTable>(Elem));
ASSERT_EQ(std::get<DescriptorTable>(Elem).NumClauses, 0u);
- ASSERT_EQ(std::get<DescriptorTable>(Elem).Visibility, ShaderVisibility::All);
+ ASSERT_EQ(std::get<DescriptorTable>(Elem).Visibility,
+ llvm::dxbc::ShaderVisibility::All);
ASSERT_TRUE(Consumer->isSatisfied());
}
@@ -258,19 +260,25 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseStaticSamplerTest) {
ASSERT_TRUE(std::holds_alternative<StaticSampler>(Elem));
ASSERT_EQ(std::get<StaticSampler>(Elem).Reg.ViewType, RegisterType::SReg);
ASSERT_EQ(std::get<StaticSampler>(Elem).Reg.Number, 0u);
- ASSERT_EQ(std::get<StaticSampler>(Elem).Filter, SamplerFilter::Anisotropic);
- ASSERT_EQ(std::get<StaticSampler>(Elem).AddressU, TextureAddressMode::Wrap);
- ASSERT_EQ(std::get<StaticSampler>(Elem).AddressV, TextureAddressMode::Wrap);
- ASSERT_EQ(std::get<StaticSampler>(Elem).AddressW, TextureAddressMode::Wrap);
+ ASSERT_EQ(std::get<StaticSampler>(Elem).Filter,
+ llvm::dxbc::SamplerFilter::Anisotropic);
+ ASSERT_EQ(std::get<StaticSampler>(Elem).AddressU,
+ llvm::dxbc::TextureAddressMode::Wrap);
+ ASSERT_EQ(std::get<StaticSampler>(Elem).AddressV,
+ llvm::dxbc::TextureAddressMode::Wrap);
+ ASSERT_EQ(std::get<StaticSampler>(Elem).AddressW,
+ llvm::dxbc::TextureAddressMode::Wrap);
ASSERT_FLOAT_EQ(std::get<StaticSampler>(Elem).MipLODBias, 0.f);
ASSERT_EQ(std::get<StaticSampler>(Elem).MaxAnisotropy, 16u);
- ASSERT_EQ(std::get<StaticSampler>(Elem).CompFunc, ComparisonFunc::LessEqual);
+ ASSERT_EQ(std::get<StaticSampler>(Elem).CompFunc,
+ llvm::dxbc::ComparisonFunc::LessEqual);
ASSERT_EQ(std::get<StaticSampler>(Elem).BorderColor,
- StaticBorderColor::OpaqueWhite);
+ llvm::dxbc::StaticBorderColor::OpaqueWhite);
ASSERT_FLOAT_EQ(std::get<StaticSampler>(Elem).MinLOD, 0.f);
ASSERT_FLOAT_EQ(std::get<StaticSampler>(Elem).MaxLOD, 3.402823466e+38f);
ASSERT_EQ(std::get<StaticSampler>(Elem).Space, 0u);
- ASSERT_EQ(std::get<StaticSampler>(Elem).Visibility, ShaderVisibility::All);
+ ASSERT_EQ(std::get<StaticSampler>(Elem).Visibility,
+ llvm::dxbc::ShaderVisibility::All);
// Check values can be set as expected
Elem = Elements...
[truncated]
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks good, one more comment about using enum values rather than bit patterns in a test
LLVM Buildbot has detected a new failure on builder Full details are available at: https://lab.llvm.org/buildbot/#/builders/204/builds/14340 Here is the relevant piece of the build log for the reference
|
LLVM Buildbot has detected a new failure on builder Full details are available at: https://lab.llvm.org/buildbot/#/builders/27/builds/12518 Here is the relevant piece of the build log for the reference
|
This pr removes the redundancy of having the same enums defined in both the front-end and back-end of handling root signatures. Since there are many more uses of the enum in the front-end of the code, we will adhere to the naming conventions used in the front-end, to minimize the diff.
The macros in
DXContainerConstants.def
are also touched-up to be consistent and to have each macro name follow its respective definition in d3d12.h and searchable by name here.Additionally, the many
getEnumNames
are moved toDXContainer
fromHLSLRootSignatureUtils
as they we will want them to be exposed publicly anyways.Changes for each enum follow the pattern of a commit that will make the enum definition in
DXContainer
adhere to above listed naming conventions, followed by a commit to actually use that enum in the front-end.Resolves #145815