Revert "[HLSL] Update Frontend to support version 1.2 of root signature (#160…"
This reverts commit f2c8c42821a8c6de8984a1e7a932233cf221d5c1.
diff --git a/clang/include/clang/Basic/LangOptions.h b/clang/include/clang/Basic/LangOptions.h
index 41595ec..a8943df 100644
--- a/clang/include/clang/Basic/LangOptions.h
+++ b/clang/include/clang/Basic/LangOptions.h
@@ -549,7 +549,8 @@
bool CheckNew = false;
/// The HLSL root signature version for dxil.
- llvm::dxbc::RootSignatureVersion HLSLRootSigVer;
+ llvm::dxbc::RootSignatureVersion HLSLRootSigVer =
+ llvm::dxbc::RootSignatureVersion::V1_1;
/// The HLSL root signature that will be used to overide the root signature
/// used for the shader entry point.
diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td
index 2ef6098..2f865d8 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -9476,7 +9476,7 @@
"lib_6_3, lib_6_4, lib_6_5, lib_6_6, lib_6_7, lib_6_x,"
"ms_6_5, ms_6_6, ms_6_7,"
"as_6_5, as_6_6, as_6_7,"
- "rootsig_1_0, rootsig_1_1, rootsig_1_2">;
+ "rootsig_1_0, rootsig_1_1">;
def emit_pristine_llvm : DXCFlag<"emit-pristine-llvm">,
HelpText<"Emit pristine LLVM IR from the frontend by not running any LLVM passes at all."
"Same as -S + -emit-llvm + -disable-llvm-passes.">;
@@ -9489,9 +9489,9 @@
Group<dxc_Group>,
Visibility<[ClangOption, CC1Option]>,
HelpText<"Root Signature Version">,
- Values<"rootsig_1_0,rootsig_1_1,rootsig_1_2">,
+ Values<"rootsig_1_0,rootsig_1_1">,
NormalizedValuesScope<"llvm::dxbc::RootSignatureVersion">,
- NormalizedValues<["V1_0", "V1_1", "V1_2"]>,
+ NormalizedValues<["V1_0", "V1_1"]>,
MarshallingInfoEnum<LangOpts<"HLSLRootSigVer">, "V1_1">;
def dxc_rootsig_ver :
Separate<["/", "-"], "force-rootsig-ver">,
diff --git a/clang/include/clang/Lex/HLSLRootSignatureTokenKinds.def b/clang/include/clang/Lex/HLSLRootSignatureTokenKinds.def
index 1d7f7ad..a5cfeb3 100644
--- a/clang/include/clang/Lex/HLSLRootSignatureTokenKinds.def
+++ b/clang/include/clang/Lex/HLSLRootSignatureTokenKinds.def
@@ -65,9 +65,6 @@
#ifndef STATIC_BORDER_COLOR_ENUM
#define STATIC_BORDER_COLOR_ENUM(NAME, LIT) ENUM(NAME, LIT)
#endif
-#ifndef STATIC_SAMPLER_FLAG_ENUM
-#define STATIC_SAMPLER_FLAG_ENUM(NAME, LIT) ENUM(NAME, LIT)
-#endif
// General Tokens:
TOK(invalid, "invalid identifier")
@@ -231,10 +228,6 @@
STATIC_BORDER_COLOR_ENUM(OpaqueBlackUint, "STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT")
STATIC_BORDER_COLOR_ENUM(OpaqueWhiteUint, "STATIC_BORDER_COLOR_OPAQUE_WHITE_UINT")
-// Root Descriptor Flag Enums:
-STATIC_SAMPLER_FLAG_ENUM(UintBorderColor, "UINT_BORDER_COLOR")
-STATIC_SAMPLER_FLAG_ENUM(NonNormalizedCoordinates, "NON_NORMALIZED_COORDINATES")
-
#undef STATIC_BORDER_COLOR_ENUM
#undef COMPARISON_FUNC_ENUM
#undef TEXTURE_ADDRESS_MODE_ENUM
@@ -244,7 +237,6 @@
#undef DESCRIPTOR_RANGE_FLAG_ENUM_OFF
#undef DESCRIPTOR_RANGE_FLAG_ENUM_ON
#undef ROOT_DESCRIPTOR_FLAG_ENUM
-#undef STATIC_SAMPLER_FLAG_ENUM
#undef ROOT_FLAG_ENUM
#undef DESCRIPTOR_RANGE_OFFSET_ENUM
#undef UNBOUNDED_ENUM
diff --git a/clang/include/clang/Parse/ParseHLSLRootSignature.h b/clang/include/clang/Parse/ParseHLSLRootSignature.h
index 8f91d7c..b06846f 100644
--- a/clang/include/clang/Parse/ParseHLSLRootSignature.h
+++ b/clang/include/clang/Parse/ParseHLSLRootSignature.h
@@ -130,7 +130,6 @@
std::optional<float> MaxLOD;
std::optional<uint32_t> Space;
std::optional<llvm::dxbc::ShaderVisibility> Visibility;
- std::optional<llvm::dxbc::StaticSamplerFlags> Flags;
};
std::optional<ParsedStaticSamplerParams> parseStaticSamplerParams();
@@ -154,8 +153,6 @@
parseRootDescriptorFlags(RootSignatureToken::Kind Context);
std::optional<llvm::dxbc::DescriptorRangeFlags>
parseDescriptorRangeFlags(RootSignatureToken::Kind Context);
- std::optional<llvm::dxbc::StaticSamplerFlags>
- parseStaticSamplerFlags(RootSignatureToken::Kind Context);
/// Use NumericLiteralParser to convert CurToken.NumSpelling into a unsigned
/// 32-bit integer
diff --git a/clang/lib/AST/TextNodeDumper.cpp b/clang/lib/AST/TextNodeDumper.cpp
index cf5e914..8f7fe3b 100644
--- a/clang/lib/AST/TextNodeDumper.cpp
+++ b/clang/lib/AST/TextNodeDumper.cpp
@@ -3095,9 +3095,6 @@
case llvm::dxbc::RootSignatureVersion::V1_1:
OS << "1.1";
break;
- case llvm::dxbc::RootSignatureVersion::V1_2:
- OS << "1.2";
- break;
}
OS << ", ";
llvm::hlsl::rootsig::dumpRootElements(OS, D->getRootElements());
diff --git a/clang/lib/Driver/ToolChains/HLSL.cpp b/clang/lib/Driver/ToolChains/HLSL.cpp
index 2869549..f4858e4 100644
--- a/clang/lib/Driver/ToolChains/HLSL.cpp
+++ b/clang/lib/Driver/ToolChains/HLSL.cpp
@@ -64,7 +64,7 @@
} break;
case Triple::EnvironmentType::RootSignature:
VersionTuple MinVer(1, 0);
- VersionTuple MaxVer(1, 2);
+ VersionTuple MaxVer(1, 1);
return MinVer <= Version && Version <= MaxVer;
}
return false;
diff --git a/clang/lib/Parse/ParseHLSLRootSignature.cpp b/clang/lib/Parse/ParseHLSLRootSignature.cpp
index 7be6eec..3b16efb 100644
--- a/clang/lib/Parse/ParseHLSLRootSignature.cpp
+++ b/clang/lib/Parse/ParseHLSLRootSignature.cpp
@@ -485,9 +485,6 @@
if (Params->Visibility.has_value())
Sampler.Visibility = Params->Visibility.value();
- if (Params->Flags.has_value())
- Sampler.Flags = Params->Flags.value();
-
return Sampler;
}
@@ -929,20 +926,6 @@
if (!Visibility.has_value())
return std::nullopt;
Params.Visibility = Visibility;
- } else if (tryConsumeExpectedToken(TokenKind::kw_flags)) {
- // `flags` `=` STATIC_SAMPLE_FLAGS
- if (Params.Flags.has_value()) {
- reportDiag(diag::err_hlsl_rootsig_repeat_param) << CurToken.TokKind;
- return std::nullopt;
- }
-
- if (consumeExpectedToken(TokenKind::pu_equal))
- return std::nullopt;
-
- auto Flags = parseStaticSamplerFlags(TokenKind::kw_flags);
- if (!Flags.has_value())
- return std::nullopt;
- Params.Flags = Flags;
} else {
consumeNextToken(); // let diagnostic be at the start of invalid token
reportDiag(diag::err_hlsl_invalid_token)
@@ -1272,50 +1255,6 @@
return Flags;
}
-std::optional<llvm::dxbc::StaticSamplerFlags>
-RootSignatureParser::parseStaticSamplerFlags(TokenKind Context) {
- assert(CurToken.TokKind == TokenKind::pu_equal &&
- "Expects to only be invoked starting at given keyword");
-
- // Handle the edge-case of '0' to specify no flags set
- if (tryConsumeExpectedToken(TokenKind::int_literal)) {
- if (!verifyZeroFlag()) {
- reportDiag(diag::err_hlsl_rootsig_non_zero_flag);
- return std::nullopt;
- }
- return llvm::dxbc::StaticSamplerFlags::None;
- }
-
- TokenKind Expected[] = {
-#define STATIC_SAMPLER_FLAG_ENUM(NAME, LIT) TokenKind::en_##NAME,
-#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
- };
-
- std::optional<llvm::dxbc::StaticSamplerFlags> Flags;
-
- do {
- if (tryConsumeExpectedToken(Expected)) {
- switch (CurToken.TokKind) {
-#define STATIC_SAMPLER_FLAG_ENUM(NAME, LIT) \
- case TokenKind::en_##NAME: \
- Flags = maybeOrFlag<llvm::dxbc::StaticSamplerFlags>( \
- Flags, llvm::dxbc::StaticSamplerFlags::NAME); \
- break;
-#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
- default:
- llvm_unreachable("Switch for consumed enum token was not provided");
- }
- } else {
- consumeNextToken(); // consume token to point at invalid token
- reportDiag(diag::err_hlsl_invalid_token)
- << /*value=*/1 << /*value of*/ Context;
- return std::nullopt;
- }
- } while (tryConsumeExpectedToken(TokenKind::pu_or));
-
- return Flags;
-}
-
std::optional<uint32_t> RootSignatureParser::handleUIntLiteral() {
// Parse the numeric value and do semantic checks on its specification
clang::NumericLiteralParser Literal(
diff --git a/clang/test/AST/HLSL/RootSignature-Target-AST.hlsl b/clang/test/AST/HLSL/RootSignature-Target-AST.hlsl
index 129ab70..91441e3 100644
--- a/clang/test/AST/HLSL/RootSignature-Target-AST.hlsl
+++ b/clang/test/AST/HLSL/RootSignature-Target-AST.hlsl
@@ -1,15 +1,9 @@
// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-rootsignature -ast-dump \
-// RUN: -fdx-rootsignature-version=rootsig_1_0 \
-// RUN: -hlsl-entry EntryRootSig -disable-llvm-passes -o - %s | FileCheck %s --check-prefixes=CHECK,CHECK-V1_0
-
-// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-rootsignature -ast-dump \
-// RUN: -fdx-rootsignature-version=rootsig_1_1 \
// RUN: -hlsl-entry EntryRootSig -disable-llvm-passes -o - %s | FileCheck %s --check-prefixes=CHECK,CHECK-V1_1
// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-rootsignature -ast-dump \
-// RUN: -fdx-rootsignature-version=rootsig_1_2 \
-// RUN: -hlsl-entry EntryRootSig -disable-llvm-passes -o - %s | FileCheck %s --check-prefixes=CHECK,CHECK-V1_2
-
+// RUN: -fdx-rootsignature-version=rootsig_1_0 \
+// RUN: -hlsl-entry EntryRootSig -disable-llvm-passes -o - %s | FileCheck %s --check-prefixes=CHECK,CHECK-V1_0
// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-rootsignature -ast-dump \
// RUN: -D CmdRS='"UAV(u0)"'\
@@ -18,13 +12,11 @@
// CHECK: -HLSLRootSignatureDecl 0x{{.*}} {{.*}} implicit [[ENTRY_RS_DECL:__hlsl_rootsig_decl_\d*]]
// CHECK-V1_0-SAME: version: 1.0,
// CHECK-V1_1-SAME: version: 1.1,
-// CHECK-V1_2-SAME: version: 1.2,
// CHECK-SAME: RootElements{
// CHECK-SAME: RootCBV(b0,
// CHECK-SAME: space = 0, visibility = All,
// CHECK-V1_0-SAME: flags = DataVolatile
// CHECK-V1_1-SAME: flags = DataStaticWhileSetAtExecute
-// CHECK-V1_2-SAME: flags = DataStaticWhileSetAtExecute
// CHECK-SAME: )
// CHECK-SAME: }
#define EntryRootSig "CBV(b0)"
diff --git a/clang/test/AST/HLSL/RootSignatures-AST.hlsl b/clang/test/AST/HLSL/RootSignatures-AST.hlsl
index 0f0f3a5..32da1f1 100644
--- a/clang/test/AST/HLSL/RootSignatures-AST.hlsl
+++ b/clang/test/AST/HLSL/RootSignatures-AST.hlsl
@@ -6,9 +6,6 @@
// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -ast-dump \
// RUN: -fdx-rootsignature-version=rootsig_1_1 \
// RUN: -disable-llvm-passes -o - %s | FileCheck %s --check-prefixes=CHECK,CHECK-V1_1
-// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -ast-dump \
-// RUN: -fdx-rootsignature-version=rootsig_1_2 \
-// RUN: -disable-llvm-passes -o - %s | FileCheck %s --check-prefixes=CHECK,CHECK-V1_2
// This test ensures that the sample root signature is parsed without error and
// the Attr AST Node is created succesfully. If an invalid root signature was
@@ -34,7 +31,6 @@
// CHECK: -HLSLRootSignatureDecl 0x{{.*}} {{.*}} implicit [[SAMPLE_RS_DECL:__hlsl_rootsig_decl_\d*]]
// CHECK-V1_0: version: 1.0,
// CHECK-V1_1: version: 1.1,
-// CHECK-V1_2: version: 1.2,
// CHECK-SAME: RootElements{
// CHECK-SAME: RootFlags(AllowInputAssemblerInputLayout | DenyVertexShaderRootAccess),
// CHECK-SAME: RootCBV(b0,
@@ -66,7 +62,6 @@
// CHECK-SAME: s0, numDescriptors = 4, space = 1, offset = DescriptorTableOffsetAppend,
// CHECK-V1_0-SAME: flags = DescriptorsVolatile
// CHECK-V1_1-SAME: flags = None
-// CHECK-V1_2-SAME: flags = None
// CHECK-SAME: ),
// CHECK-SAME: DescriptorTable(
// CHECK-SAME: numClauses = 1, visibility = All
@@ -78,7 +73,6 @@
// CHECK-SAME: s1, filter = Anisotropic, addressU = Wrap, addressV = Wrap, addressW = Wrap,
// CHECK-SAME: mipLODBias = 0.000000e+00, maxAnisotropy = 16, comparisonFunc = LessEqual,
// CHECK-SAME: borderColor = OpaqueWhite, minLOD = 0.000000e+00, maxLOD = 3.402823e+38, space = 0, visibility = All
-// CHECK-SAME: flags = None
// CHECK-SAME: )}
// CHECK: -RootSignatureAttr 0x{{.*}} {{.*}} [[SAMPLE_RS_DECL]]
@@ -137,24 +131,3 @@
// CHECK: -RootSignatureAttr 0x{{.*}} {{.*}} [[DIFF_RS_DECL]]
[RootSignature(SampleDifferentRS)]
void different_rs_string_main() {}
-
-#define SampleStaticSamplerRS \
- "StaticSampler(s0, flags = NON_NORMALIZED_COORDINATES)"
-
-// Ensure that static samplers flags are correctly parsed in different versions
-
-// CHECK: -HLSLRootSignatureDecl 0x{{.*}} {{.*}} implicit [[DIFF_RS_DECL:__hlsl_rootsig_decl_\d*]]
-// CHECK-V1_0: version: 1.0,
-// CHECK-V1_1: version: 1.1,
-// CHECK-V1_2: version: 1.2,
-// CHECK-SAME: RootElements{
-// CHECK-SAME: StaticSampler(
-// CHECK-SAME: s0, filter = Anisotropic, addressU = Wrap, addressV = Wrap, addressW = Wrap,
-// CHECK-SAME: mipLODBias = 0.000000e+00, maxAnisotropy = 16, comparisonFunc = LessEqual,
-// CHECK-SAME: borderColor = OpaqueWhite, minLOD = 0.000000e+00, maxLOD = 3.402823e+38, space = 0, visibility = All
-// CHECK-SAME: flags = NonNormalizedCoordinates
-// CHECK-SAME: )}
-
-// CHECK: -RootSignatureAttr 0x{{.*}} {{.*}} [[DIFF_RS_DECL]]
-[RootSignature(SampleStaticSamplerRS)]
-void statoc_sampler_v12_main() {}
diff --git a/clang/test/CodeGenHLSL/RootSignature.hlsl b/clang/test/CodeGenHLSL/RootSignature.hlsl
index eaff3a9..bbab6a7 100644
--- a/clang/test/CodeGenHLSL/RootSignature.hlsl
+++ b/clang/test/CodeGenHLSL/RootSignature.hlsl
@@ -82,8 +82,8 @@
// checking minLOD, maxLOD
// CHECK-SAME: float -1.280000e+02, float 1.280000e+02,
-// checking register, space, visibility and flag
-// CHECK-SAME: i32 42, i32 0, i32 0, i32 1}
+// checking register, space, visibility and flags
+// CHECK-SAME: i32 42, i32 0, i32 0, i32 0}
#define SampleStaticSampler \
"StaticSampler(s42, " \
@@ -96,7 +96,6 @@
" borderColor = STATIC_BORDER_COLOR_OPAQUE_WHITE, " \
" minLOD = -128.f, maxLOD = 128.f, " \
" space = 0, visibility = SHADER_VISIBILITY_ALL, " \
- " flags = UINT_BORDER_COLOR" \
")"
[shader("compute"), RootSignature(SampleStaticSampler)]
[numthreads(1,1,1)]
diff --git a/clang/test/SemaHLSL/RootSignature-err.hlsl b/clang/test/SemaHLSL/RootSignature-err.hlsl
index debeafe..89c684c 100644
--- a/clang/test/SemaHLSL/RootSignature-err.hlsl
+++ b/clang/test/SemaHLSL/RootSignature-err.hlsl
@@ -191,10 +191,6 @@
[RootSignature("StaticSampler(s0, mipLODBias = 15.990001)")]
void basic_validation_6() {}
-// expected-error@+1 {{invalid value of flags}}
-[RootSignature("StaticSampler(s0, flags = FLAG_TYPO)")]
-void basic_validation_7() {}
-
// expected-error@+1 {{sampler and non-sampler resource mixed in descriptor table}}
[RootSignature("DescriptorTable(Sampler(s0), CBV(b0))")]
void mixed_resource_table() {}
diff --git a/clang/test/SemaHLSL/RootSignature-flags-err.hlsl b/clang/test/SemaHLSL/RootSignature-flags-err.hlsl
index c79e692..9449d33 100644
--- a/clang/test/SemaHLSL/RootSignature-flags-err.hlsl
+++ b/clang/test/SemaHLSL/RootSignature-flags-err.hlsl
@@ -2,8 +2,7 @@
// RUN: -fdx-rootsignature-version=rootsig_1_0 %s -verify=v10
// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library -x hlsl -fsyntax-only \
// RUN: -fdx-rootsignature-version=rootsig_1_1 %s -verify=v11
-// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library -x hlsl -fsyntax-only \
-// RUN: -fdx-rootsignature-version=rootsig_1_2 %s -verify=v12
+
// Root Descriptor Flags:
// v10-error@+1 {{invalid flags for version 1.0}}
@@ -14,9 +13,8 @@
[RootSignature("CBV(b0, flags = DATA_STATIC_WHILE_SET_AT_EXECUTE)")]
void bad_root_descriptor_flags_1() {}
-// v10-error@+3 {{invalid flags for version 1.0}}
-// v11-error@+2 {{invalid flags for version 1.1}}
-// v12-error@+1 {{invalid flags for version 1.2}}
+// v10-error@+2 {{invalid flags for version 1.0}}
+// v11-error@+1 {{invalid flags for version 1.1}}
[RootSignature("CBV(b0, flags = DATA_STATIC | DATA_VOLATILE)")]
void bad_root_descriptor_flags_2() {}
@@ -42,20 +40,18 @@
[RootSignature("DescriptorTable(CBV(b0, flags = DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS))")]
void bad_descriptor_range_flags_4() {}
-// v10-error@+3 {{invalid flags for version 1.0}}
-// v11-error@+2 {{invalid flags for version 1.1}}
-// v12-error@+1 {{invalid flags for version 1.2}}
+// v10-error@+2 {{invalid flags for version 1.0}}
+// v11-error@+1 {{invalid flags for version 1.1}}
[RootSignature("DescriptorTable(CBV(b0, flags = DATA_STATIC | DATA_STATIC_WHILE_SET_AT_EXECUTE))")]
void bad_descriptor_range_flags_5() {}
-// v10-error@+3 {{invalid flags for version 1.0}}
-// v11-error@+2 {{invalid flags for version 1.1}}
-// v12-error@+1 {{invalid flags for version 1.2}}
+// v10-error@+2 {{invalid flags for version 1.0}}
+// v11-error@+1 {{invalid flags for version 1.1}}
[RootSignature("DescriptorTable(CBV(b0, flags = DESCRIPTORS_VOLATILE | DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS))")]
void bad_descriptor_range_flags_6() {}
-// v10-error@+3 {{invalid flags for version 1.0}}
-// v11-error@+2 {{invalid flags for version 1.1}}
-// v12-error@+1 {{invalid flags for version 1.2}}
+// v10-error@+2 {{invalid flags for version 1.0}}
+// v11-error@+1 {{invalid flags for version 1.1}}
[RootSignature("DescriptorTable(CBV(b0, flags = DESCRIPTORS_VOLATILE | DATA_STATIC))")]
void bad_descriptor_range_flags_7() {}
+
diff --git a/clang/unittests/Lex/LexHLSLRootSignatureTest.cpp b/clang/unittests/Lex/LexHLSLRootSignatureTest.cpp
index 82f1968..01f8d4f 100644
--- a/clang/unittests/Lex/LexHLSLRootSignatureTest.cpp
+++ b/clang/unittests/Lex/LexHLSLRootSignatureTest.cpp
@@ -226,9 +226,6 @@
STATIC_BORDER_COLOR_OPAQUE_WHITE
STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT
STATIC_BORDER_COLOR_OPAQUE_WHITE_UINT
-
- UINT_BORDER_COLOR
- NON_NORMALIZED_COORDINATES
)cc";
hlsl::RootSignatureLexer Lexer(Source);
diff --git a/clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp b/clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp
index f7e9d2d..9b9f5dd 100644
--- a/clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp
+++ b/clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp
@@ -263,8 +263,7 @@
filter = FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT,
maxLOD = 9000, addressU = TEXTURE_ADDRESS_MIRROR,
comparisonFunc = COMPARISON_NOT_EQUAL,
- borderColor = STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT,
- flags = 0
+ borderColor = STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT
)
)cc";
@@ -337,37 +336,6 @@
ASSERT_TRUE(Consumer->isSatisfied());
}
-TEST_F(ParseHLSLRootSignatureTest, ValidStaticSamplerFlagsTest) {
- const llvm::StringLiteral Source = R"cc(
- StaticSampler(s0, flags = UINT_BORDER_COLOR | NON_NORMALIZED_COORDINATES)
- )cc";
-
- auto Ctx = createMinimalASTContext();
- StringLiteral *Signature = wrapSource(Ctx, Source);
-
- TrivialModuleLoader ModLoader;
- auto PP = createPP(Source, ModLoader);
-
- hlsl::RootSignatureParser Parser(RootSignatureVersion::V1_1, Signature, *PP);
-
- // Test no diagnostics produced
- Consumer->setNoDiag();
-
- ASSERT_FALSE(Parser.parse());
-
- auto Elements = Parser.getElements();
- ASSERT_EQ(Elements.size(), 1u);
-
- RootElement Elem = Elements[0].getElement();
- ASSERT_TRUE(std::holds_alternative<StaticSampler>(Elem));
- auto ValidStaticSamplerFlags =
- llvm::dxbc::StaticSamplerFlags::NonNormalizedCoordinates |
- llvm::dxbc::StaticSamplerFlags::UintBorderColor;
- ASSERT_EQ(std::get<StaticSampler>(Elem).Flags, ValidStaticSamplerFlags);
-
- ASSERT_TRUE(Consumer->isSatisfied());
-}
-
TEST_F(ParseHLSLRootSignatureTest, ValidParseFloatsTest) {
const llvm::StringLiteral Source = R"cc(
StaticSampler(s0, mipLODBias = 0),
diff --git a/llvm/include/llvm/BinaryFormat/DXContainer.h b/llvm/include/llvm/BinaryFormat/DXContainer.h
index 8944e73..08a7ddb 100644
--- a/llvm/include/llvm/BinaryFormat/DXContainer.h
+++ b/llvm/include/llvm/BinaryFormat/DXContainer.h
@@ -844,7 +844,6 @@
enum class RootSignatureVersion {
V1_0 = 0x1,
V1_1 = 0x2,
- V1_2 = 0x3,
};
} // namespace dxbc
diff --git a/llvm/include/llvm/Frontend/HLSL/HLSLRootSignature.h b/llvm/include/llvm/Frontend/HLSL/HLSLRootSignature.h
index edee6a7..37224d8 100644
--- a/llvm/include/llvm/Frontend/HLSL/HLSLRootSignature.h
+++ b/llvm/include/llvm/Frontend/HLSL/HLSLRootSignature.h
@@ -56,8 +56,7 @@
return;
}
- assert((Version == llvm::dxbc::RootSignatureVersion::V1_1 ||
- Version == llvm::dxbc::RootSignatureVersion::V1_2) &&
+ assert(Version == llvm::dxbc::RootSignatureVersion::V1_1 &&
"Specified an invalid root signature version");
switch (Type) {
case dxil::ResourceClass::CBuffer:
@@ -101,8 +100,7 @@
return;
}
- assert((Version == dxbc::RootSignatureVersion::V1_1 ||
- Version == dxbc::RootSignatureVersion::V1_2) &&
+ assert(Version == dxbc::RootSignatureVersion::V1_1 &&
"Specified an invalid root signature version");
switch (Type) {
case dxil::ResourceClass::CBuffer:
diff --git a/llvm/lib/Frontend/HLSL/HLSLRootSignature.cpp b/llvm/lib/Frontend/HLSL/HLSLRootSignature.cpp
index 2b33e56..92c62b8 100644
--- a/llvm/lib/Frontend/HLSL/HLSLRootSignature.cpp
+++ b/llvm/lib/Frontend/HLSL/HLSLRootSignature.cpp
@@ -113,13 +113,6 @@
return OS;
}
-static raw_ostream &operator<<(raw_ostream &OS,
- const llvm::dxbc::StaticSamplerFlags &Flags) {
- printFlags(OS, Flags, dxbc::getStaticSamplerFlags());
-
- return OS;
-}
-
raw_ostream &operator<<(raw_ostream &OS, const dxbc::RootFlags &Flags) {
OS << "RootFlags(";
printFlags(OS, Flags, dxbc::getRootFlags());
@@ -179,7 +172,7 @@
<< ", borderColor = " << Sampler.BorderColor
<< ", minLOD = " << Sampler.MinLOD << ", maxLOD = " << Sampler.MaxLOD
<< ", space = " << Sampler.Space << ", visibility = " << Sampler.Visibility
- << ", flags = " << Sampler.Flags << ")";
+ << ")";
return OS;
}
diff --git a/llvm/lib/Frontend/HLSL/RootSignatureValidations.cpp b/llvm/lib/Frontend/HLSL/RootSignatureValidations.cpp
index 8a2b03d..2c78d62 100644
--- a/llvm/lib/Frontend/HLSL/RootSignatureValidations.cpp
+++ b/llvm/lib/Frontend/HLSL/RootSignatureValidations.cpp
@@ -40,7 +40,7 @@
if (Version == 1)
return Flags == FlagT::DataVolatile;
- assert((Version <= 3) && "Provided invalid root signature version");
+ assert(Version == 2 && "Provided invalid root signature version");
// The data-specific flags are mutually exclusive.
FlagT DataFlags = FlagT::DataVolatile | FlagT::DataStatic |
diff --git a/llvm/lib/ObjectYAML/DXContainerYAML.cpp b/llvm/lib/ObjectYAML/DXContainerYAML.cpp
index 5dff9ba..3c09ae4 100644
--- a/llvm/lib/ObjectYAML/DXContainerYAML.cpp
+++ b/llvm/lib/ObjectYAML/DXContainerYAML.cpp
@@ -154,7 +154,7 @@
if (Error E = readDescriptorRanges<dxbc::RTS0::v1::DescriptorRange>(
Header, RootSigDesc, DTV))
return std::move(E);
- } else if (Version == 2 || Version == 3) {
+ } else if (Version == 2) {
if (Error E = readDescriptorRanges<dxbc::RTS0::v2::DescriptorRange>(
Header, RootSigDesc, DTV))
return std::move(E);
diff --git a/llvm/unittests/Frontend/HLSLRootSignatureDumpTest.cpp b/llvm/unittests/Frontend/HLSLRootSignatureDumpTest.cpp
index 451c376..1eb03f1 100644
--- a/llvm/unittests/Frontend/HLSLRootSignatureDumpTest.cpp
+++ b/llvm/unittests/Frontend/HLSLRootSignatureDumpTest.cpp
@@ -266,8 +266,7 @@
"minLOD = 0.000000e+00, "
"maxLOD = 3.402823e+38, "
"space = 0, "
- "visibility = All, "
- "flags = None"
+ "visibility = All"
")";
EXPECT_EQ(Out, Expected);
}
@@ -288,7 +287,6 @@
Sampler.MaxLOD = 32.0f;
Sampler.Space = 7;
Sampler.Visibility = llvm::dxbc::ShaderVisibility::Domain;
- Sampler.Flags = llvm::dxbc::StaticSamplerFlags::NonNormalizedCoordinates;
std::string Out;
llvm::raw_string_ostream OS(Out);
@@ -307,8 +305,7 @@
"minLOD = 1.000000e+00, "
"maxLOD = 3.200000e+01, "
"space = 7, "
- "visibility = Domain, "
- "flags = NonNormalizedCoordinates"
+ "visibility = Domain"
")";
EXPECT_EQ(Out, Expected);
}