Author: joaosaffran Date: 2025-10-02T16:45:31-04:00 New Revision: bdb8b2b33ce4ec74802b83e8189cb5d56a112231
URL: https://github.com/llvm/llvm-project/commit/bdb8b2b33ce4ec74802b83e8189cb5d56a112231 DIFF: https://github.com/llvm/llvm-project/commit/bdb8b2b33ce4ec74802b83e8189cb5d56a112231.diff LOG: Revert "[HLSL] Update Frontend to support version 1.2 of root signature (#160…" This reverts commit f2c8c42821a8c6de8984a1e7a932233cf221d5c1. Added: Modified: clang/include/clang/Basic/LangOptions.h clang/include/clang/Driver/Options.td clang/include/clang/Lex/HLSLRootSignatureTokenKinds.def clang/include/clang/Parse/ParseHLSLRootSignature.h clang/lib/AST/TextNodeDumper.cpp clang/lib/Driver/ToolChains/HLSL.cpp clang/lib/Parse/ParseHLSLRootSignature.cpp clang/test/AST/HLSL/RootSignature-Target-AST.hlsl clang/test/AST/HLSL/RootSignatures-AST.hlsl clang/test/CodeGenHLSL/RootSignature.hlsl clang/test/SemaHLSL/RootSignature-err.hlsl clang/test/SemaHLSL/RootSignature-flags-err.hlsl clang/unittests/Lex/LexHLSLRootSignatureTest.cpp clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp llvm/include/llvm/BinaryFormat/DXContainer.h llvm/include/llvm/Frontend/HLSL/HLSLRootSignature.h llvm/lib/Frontend/HLSL/HLSLRootSignature.cpp llvm/lib/Frontend/HLSL/RootSignatureValidations.cpp llvm/lib/ObjectYAML/DXContainerYAML.cpp llvm/unittests/Frontend/HLSLRootSignatureDumpTest.cpp Removed: ################################################################################ diff --git a/clang/include/clang/Basic/LangOptions.h b/clang/include/clang/Basic/LangOptions.h index 41595ec2a060d..a8943df5b39aa 100644 --- a/clang/include/clang/Basic/LangOptions.h +++ b/clang/include/clang/Basic/LangOptions.h @@ -549,7 +549,8 @@ class LangOptions : public LangOptionsBase { 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 2ef609831637e..2f865d8c30318 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -9476,7 +9476,7 @@ def target_profile : DXCJoinedOrSeparate<"T">, MetaVarName<"<profile>">, "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 @@ def fdx_rootsignature_version : 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 1d7f7adbe076f..a5cfeb34b2b51 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(OpaqueWhite, "STATIC_BORDER_COLOR_OPAQUE_WHITE") 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 @@ STATIC_SAMPLER_FLAG_ENUM(NonNormalizedCoordinates, "NON_NORMALIZED_COORDINATES") #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 8f91d7cd7b031..b06846fd83c09 100644 --- a/clang/include/clang/Parse/ParseHLSLRootSignature.h +++ b/clang/include/clang/Parse/ParseHLSLRootSignature.h @@ -130,7 +130,6 @@ class RootSignatureParser { 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 @@ class RootSignatureParser { 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 cf5e9147ad78b..8f7fe3bea4e8f 100644 --- a/clang/lib/AST/TextNodeDumper.cpp +++ b/clang/lib/AST/TextNodeDumper.cpp @@ -3095,9 +3095,6 @@ void TextNodeDumper::VisitHLSLRootSignatureDecl( 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 2869549e6b3f0..f4858e4c960de 100644 --- a/clang/lib/Driver/ToolChains/HLSL.cpp +++ b/clang/lib/Driver/ToolChains/HLSL.cpp @@ -64,7 +64,7 @@ bool isLegalShaderModel(Triple &T) { } 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 7be6eecc520b1..3b16efb1f1199 100644 --- a/clang/lib/Parse/ParseHLSLRootSignature.cpp +++ b/clang/lib/Parse/ParseHLSLRootSignature.cpp @@ -485,9 +485,6 @@ std::optional<StaticSampler> RootSignatureParser::parseStaticSampler() { 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 @@ RootSignatureParser::parseStaticSamplerParams() { 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 @@ RootSignatureParser::parseDescriptorRangeFlags(TokenKind Context) { 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 129ab7022f361..91441e32e047d 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 0f0f3a5ca706f..32da1f14853b0 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 @@ void same_rs_string_main() {} // CHECK: -RootSignatureAttr 0x{{.*}} {{.*}} [[DIFF_RS_DECL]] [RootSignature(SampleDifferentRS)] void diff erent_rs_string_main() {} - -#define SampleStaticSamplerRS \ - "StaticSampler(s0, flags = NON_NORMALIZED_COORDINATES)" - -// Ensure that static samplers flags are correctly parsed in diff erent 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 eaff3a9e73305..bbab6a73a3658 100644 --- a/clang/test/CodeGenHLSL/RootSignature.hlsl +++ b/clang/test/CodeGenHLSL/RootSignature.hlsl @@ -82,8 +82,8 @@ void RootDescriptorsEntry() {} // 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 @@ void RootDescriptorsEntry() {} " 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 debeafe7ee446..89c684cd8d11f 100644 --- a/clang/test/SemaHLSL/RootSignature-err.hlsl +++ b/clang/test/SemaHLSL/RootSignature-err.hlsl @@ -191,10 +191,6 @@ void basic_validation_5() {} [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 c79e692202ded..9449d33cee1ad 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 @@ void bad_root_descriptor_flags_0() {} [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 @@ void bad_descriptor_range_flags_3() {} [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 82f19686167da..01f8d4f97b092 100644 --- a/clang/unittests/Lex/LexHLSLRootSignatureTest.cpp +++ b/clang/unittests/Lex/LexHLSLRootSignatureTest.cpp @@ -226,9 +226,6 @@ TEST_F(LexHLSLRootSignatureTest, ValidLexAllTokensTest) { 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 f7e9d2d32c3f4..9b9f5dd8a63bb 100644 --- a/clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp +++ b/clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp @@ -263,8 +263,7 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseStaticSamplerTest) { 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 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseStaticSamplerTest) { 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 8944e73688eed..08a7ddb6929f5 100644 --- a/llvm/include/llvm/BinaryFormat/DXContainer.h +++ b/llvm/include/llvm/BinaryFormat/DXContainer.h @@ -844,7 +844,6 @@ struct StaticSampler : public v1::StaticSampler { 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 edee6a7dec6fc..37224d8a94527 100644 --- a/llvm/include/llvm/Frontend/HLSL/HLSLRootSignature.h +++ b/llvm/include/llvm/Frontend/HLSL/HLSLRootSignature.h @@ -56,8 +56,7 @@ struct RootDescriptor { 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 @@ struct DescriptorTableClause { 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 2b33e560d74ac..92c62b83fadb0 100644 --- a/llvm/lib/Frontend/HLSL/HLSLRootSignature.cpp +++ b/llvm/lib/Frontend/HLSL/HLSLRootSignature.cpp @@ -113,13 +113,6 @@ static raw_ostream &operator<<(raw_ostream &OS, 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 @@ raw_ostream &operator<<(raw_ostream &OS, const StaticSampler &Sampler) { << ", 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 8a2b03d9ede8b..2c78d622f7f28 100644 --- a/llvm/lib/Frontend/HLSL/RootSignatureValidations.cpp +++ b/llvm/lib/Frontend/HLSL/RootSignatureValidations.cpp @@ -40,7 +40,7 @@ bool verifyRootDescriptorFlag(uint32_t Version, uint32_t FlagsVal) { 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 5dff9bad12b52..3c09ae4e5f2bc 100644 --- a/llvm/lib/ObjectYAML/DXContainerYAML.cpp +++ b/llvm/lib/ObjectYAML/DXContainerYAML.cpp @@ -154,7 +154,7 @@ DXContainerYAML::RootSignatureYamlDesc::create( 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 451c376219c38..1eb03f16527ec 100644 --- a/llvm/unittests/Frontend/HLSLRootSignatureDumpTest.cpp +++ b/llvm/unittests/Frontend/HLSLRootSignatureDumpTest.cpp @@ -266,8 +266,7 @@ TEST(HLSLRootSignatureTest, DefaultStaticSamplerDump) { "minLOD = 0.000000e+00, " "maxLOD = 3.402823e+38, " "space = 0, " - "visibility = All, " - "flags = None" + "visibility = All" ")"; EXPECT_EQ(Out, Expected); } @@ -288,7 +287,6 @@ TEST(HLSLRootSignatureTest, DefinedStaticSamplerDump) { 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 @@ TEST(HLSLRootSignatureTest, DefinedStaticSamplerDump) { "minLOD = 1.000000e+00, " "maxLOD = 3.200000e+01, " "space = 7, " - "visibility = Domain, " - "flags = NonNormalizedCoordinates" + "visibility = Domain" ")"; EXPECT_EQ(Out, Expected); } _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
