Skip to content

Commit ff5c335

Browse files
inbelicgithub-actions[bot]
authored andcommitted
Automerge: Revert "[HLSL][RootSignature] Add parsing of filter enum for StaticSampler" (#142053)
The current naming of the `enum class Filter` and the Filter struct member causes ambiguity. This change will be reverted to be addressed by renaming the variable. Reverts llvm/llvm-project#140294
2 parents 8144dee + 29d49de commit ff5c335

File tree

6 files changed

+5
-181
lines changed

6 files changed

+5
-181
lines changed

clang/include/clang/Lex/HLSLRootSignatureTokenKinds.def

Lines changed: 1 addition & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,6 @@
5353
#ifndef SHADER_VISIBILITY_ENUM
5454
#define SHADER_VISIBILITY_ENUM(NAME, LIT) ENUM(NAME, LIT)
5555
#endif
56-
#ifndef FILTER_ENUM
57-
#define FILTER_ENUM(NAME, LIT) ENUM(NAME, LIT)
58-
#endif
5956
#ifndef TEXTURE_ADDRESS_MODE_ENUM
6057
#define TEXTURE_ADDRESS_MODE_ENUM(NAME, LIT) ENUM(NAME, LIT)
6158
#endif
@@ -107,11 +104,10 @@ KEYWORD(numDescriptors)
107104
KEYWORD(offset)
108105

109106
// StaticSampler Keywords:
110-
KEYWORD(filter)
107+
KEYWORD(mipLODBias)
111108
KEYWORD(addressU)
112109
KEYWORD(addressV)
113110
KEYWORD(addressW)
114-
KEYWORD(mipLODBias)
115111
KEYWORD(maxAnisotropy)
116112
KEYWORD(minLOD)
117113
KEYWORD(maxLOD)
@@ -158,44 +154,6 @@ SHADER_VISIBILITY_ENUM(Pixel, "SHADER_VISIBILITY_PIXEL")
158154
SHADER_VISIBILITY_ENUM(Amplification, "SHADER_VISIBILITY_AMPLIFICATION")
159155
SHADER_VISIBILITY_ENUM(Mesh, "SHADER_VISIBILITY_MESH")
160156

161-
// Filter Enums:
162-
FILTER_ENUM(MinMagMipPoint, "FILTER_MIN_MAG_MIP_POINT")
163-
FILTER_ENUM(MinMagPointMipLinear, "FILTER_MIN_MAG_POINT_MIP_LINEAR")
164-
FILTER_ENUM(MinPointMagLinearMipPoint, "FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT")
165-
FILTER_ENUM(MinPointMagMipLinear, "FILTER_MIN_POINT_MAG_MIP_LINEAR")
166-
FILTER_ENUM(MinLinearMagMipPoint, "FILTER_MIN_LINEAR_MAG_MIP_POINT")
167-
FILTER_ENUM(MinLinearMagPointMipLinear, "FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR")
168-
FILTER_ENUM(MinMagLinearMipPoint, "FILTER_MIN_MAG_LINEAR_MIP_POINT")
169-
FILTER_ENUM(MinMagMipLinear, "FILTER_MIN_MAG_MIP_LINEAR")
170-
FILTER_ENUM(Anisotropic, "FILTER_ANISOTROPIC")
171-
FILTER_ENUM(ComparisonMinMagMipPoint, "FILTER_COMPARISON_MIN_MAG_MIP_POINT")
172-
FILTER_ENUM(ComparisonMinMagPointMipLinear, "FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR")
173-
FILTER_ENUM(ComparisonMinPointMagLinearMipPoint, "FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT")
174-
FILTER_ENUM(ComparisonMinPointMagMipLinear, "FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR")
175-
FILTER_ENUM(ComparisonMinLinearMagMipPoint, "FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT")
176-
FILTER_ENUM(ComparisonMinLinearMagPointMipLinear, "FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR")
177-
FILTER_ENUM(ComparisonMinMagLinearMipPoint, "FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT")
178-
FILTER_ENUM(ComparisonMinMagMipLinear, "FILTER_COMPARISON_MIN_MAG_MIP_LINEAR")
179-
FILTER_ENUM(ComparisonAnisotropic, "FILTER_COMPARISON_ANISOTROPIC")
180-
FILTER_ENUM(MinimumMinMagMipPoint, "FILTER_MINIMUM_MIN_MAG_MIP_POINT")
181-
FILTER_ENUM(MinimumMinMagPointMipLinear, "FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR")
182-
FILTER_ENUM(MinimumMinPointMagLinearMipPoint, "FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT")
183-
FILTER_ENUM(MinimumMinPointMagMipLinear, "FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR")
184-
FILTER_ENUM(MinimumMinLinearMagMipPoint, "FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT")
185-
FILTER_ENUM(MinimumMinLinearMagPointMipLinear, "FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR")
186-
FILTER_ENUM(MinimumMinMagLinearMipPoint, "FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT")
187-
FILTER_ENUM(MinimumMinMagMipLinear, "FILTER_MINIMUM_MIN_MAG_MIP_LINEAR")
188-
FILTER_ENUM(MinimumAnisotropic, "FILTER_MINIMUM_ANISOTROPIC")
189-
FILTER_ENUM(MaximumMinMagMipPoint, "FILTER_MAXIMUM_MIN_MAG_MIP_POINT")
190-
FILTER_ENUM(MaximumMinMagPointMipLinear, "FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR")
191-
FILTER_ENUM(MaximumMinPointMagLinearMipPoint, "FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT")
192-
FILTER_ENUM(MaximumMinPointMagMipLinear, "FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR")
193-
FILTER_ENUM(MaximumMinLinearMagMipPoint, "FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT")
194-
FILTER_ENUM(MaximumMinLinearMagPointMipLinear, "FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR")
195-
FILTER_ENUM(MaximumMinMagLinearMipPoint, "FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT")
196-
FILTER_ENUM(MaximumMinMagMipLinear, "FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR")
197-
FILTER_ENUM(MaximumAnisotropic, "FILTER_MAXIMUM_ANISOTROPIC")
198-
199157
// Texture Address Mode Enums:
200158
TEXTURE_ADDRESS_MODE_ENUM(Wrap, "TEXTURE_ADDRESS_WRAP")
201159
TEXTURE_ADDRESS_MODE_ENUM(Mirror, "TEXTURE_ADDRESS_MIRROR")
@@ -204,7 +162,6 @@ TEXTURE_ADDRESS_MODE_ENUM(Border, "TEXTURE_ADDRESS_BORDER")
204162
TEXTURE_ADDRESS_MODE_ENUM(MirrorOnce, "TEXTURE_ADDRESS_MIRRORONCE")
205163

206164
#undef TEXTURE_ADDRESS_MODE_ENUM
207-
#undef FILTER_ENUM
208165
#undef SHADER_VISIBILITY_ENUM
209166
#undef DESCRIPTOR_RANGE_FLAG_ENUM
210167
#undef DESCRIPTOR_RANGE_FLAG_ENUM_OFF

clang/include/clang/Parse/ParseHLSLRootSignature.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,11 +111,10 @@ class RootSignatureParser {
111111

112112
struct ParsedStaticSamplerParams {
113113
std::optional<llvm::hlsl::rootsig::Register> Reg;
114-
std::optional<llvm::hlsl::rootsig::Filter> Filter;
114+
std::optional<float> MipLODBias;
115115
std::optional<llvm::hlsl::rootsig::TextureAddressMode> AddressU;
116116
std::optional<llvm::hlsl::rootsig::TextureAddressMode> AddressV;
117117
std::optional<llvm::hlsl::rootsig::TextureAddressMode> AddressW;
118-
std::optional<float> MipLODBias;
119118
std::optional<uint32_t> MaxAnisotropy;
120119
std::optional<float> MinLOD;
121120
std::optional<float> MaxLOD;
@@ -129,7 +128,6 @@ class RootSignatureParser {
129128

130129
/// Parsing methods of various enums
131130
std::optional<llvm::hlsl::rootsig::ShaderVisibility> parseShaderVisibility();
132-
std::optional<llvm::hlsl::rootsig::Filter> parseFilter();
133131
std::optional<llvm::hlsl::rootsig::TextureAddressMode>
134132
parseTextureAddressMode();
135133
std::optional<llvm::hlsl::rootsig::RootDescriptorFlags>

clang/lib/Parse/ParseHLSLRootSignature.cpp

Lines changed: 0 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -377,9 +377,6 @@ std::optional<StaticSampler> RootSignatureParser::parseStaticSampler() {
377377
Sampler.Reg = Params->Reg.value();
378378

379379
// Fill in optional values
380-
if (Params->Filter.has_value())
381-
Sampler.Filter = Params->Filter.value();
382-
383380
if (Params->AddressU.has_value())
384381
Sampler.AddressU = Params->AddressU.value();
385382

@@ -687,23 +684,6 @@ RootSignatureParser::parseStaticSamplerParams() {
687684
Params.Reg = Reg;
688685
}
689686

690-
// `filter` `=` FILTER
691-
if (tryConsumeExpectedToken(TokenKind::kw_filter)) {
692-
if (Params.Filter.has_value()) {
693-
getDiags().Report(CurToken.TokLoc, diag::err_hlsl_rootsig_repeat_param)
694-
<< CurToken.TokKind;
695-
return std::nullopt;
696-
}
697-
698-
if (consumeExpectedToken(TokenKind::pu_equal))
699-
return std::nullopt;
700-
701-
auto Filter = parseFilter();
702-
if (!Filter.has_value())
703-
return std::nullopt;
704-
Params.Filter = Filter;
705-
}
706-
707687
// `addressU` `=` TEXTURE_ADDRESS
708688
if (tryConsumeExpectedToken(TokenKind::kw_addressU)) {
709689
if (Params.AddressU.has_value()) {
@@ -929,31 +909,6 @@ RootSignatureParser::parseShaderVisibility() {
929909
return std::nullopt;
930910
}
931911

932-
std::optional<llvm::hlsl::rootsig::Filter> RootSignatureParser::parseFilter() {
933-
assert(CurToken.TokKind == TokenKind::pu_equal &&
934-
"Expects to only be invoked starting at given keyword");
935-
936-
TokenKind Expected[] = {
937-
#define FILTER_ENUM(NAME, LIT) TokenKind::en_##NAME,
938-
#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
939-
};
940-
941-
if (!tryConsumeExpectedToken(Expected))
942-
return std::nullopt;
943-
944-
switch (CurToken.TokKind) {
945-
#define FILTER_ENUM(NAME, LIT) \
946-
case TokenKind::en_##NAME: \
947-
return Filter::NAME; \
948-
break;
949-
#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
950-
default:
951-
llvm_unreachable("Switch for consumed enum token was not provided");
952-
}
953-
954-
return std::nullopt;
955-
}
956-
957912
std::optional<llvm::hlsl::rootsig::TextureAddressMode>
958913
RootSignatureParser::parseTextureAddressMode() {
959914
assert(CurToken.TokKind == TokenKind::pu_equal &&

clang/unittests/Lex/LexHLSLRootSignatureTest.cpp

Lines changed: 2 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,8 @@ TEST_F(LexHLSLRootSignatureTest, ValidLexAllTokensTest) {
136136
space visibility flags
137137
numDescriptors offset
138138
139-
filter addressU addressV addressW
140-
mipLODBias maxAnisotropy minLOD maxLOD
139+
mipLODBias addressU addressV addressW
140+
maxAnisotropy minLOD maxLOD
141141
142142
unbounded
143143
DESCRIPTOR_RANGE_OFFSET_APPEND
@@ -170,43 +170,6 @@ TEST_F(LexHLSLRootSignatureTest, ValidLexAllTokensTest) {
170170
shader_visibility_amplification
171171
shader_visibility_mesh
172172
173-
FILTER_MIN_MAG_MIP_POINT
174-
FILTER_MIN_MAG_POINT_MIP_LINEAR
175-
FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT
176-
FILTER_MIN_POINT_MAG_MIP_LINEAR
177-
FILTER_MIN_LINEAR_MAG_MIP_POINT
178-
FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR
179-
FILTER_MIN_MAG_LINEAR_MIP_POINT
180-
FILTER_MIN_MAG_MIP_LINEAR
181-
FILTER_ANISOTROPIC
182-
FILTER_COMPARISON_MIN_MAG_MIP_POINT
183-
FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR
184-
FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT
185-
FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR
186-
FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT
187-
FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR
188-
FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT
189-
FILTER_COMPARISON_MIN_MAG_MIP_LINEAR
190-
FILTER_COMPARISON_ANISOTROPIC
191-
FILTER_MINIMUM_MIN_MAG_MIP_POINT
192-
FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR
193-
FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT
194-
FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR
195-
FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT
196-
FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR
197-
FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT
198-
FILTER_MINIMUM_MIN_MAG_MIP_LINEAR
199-
FILTER_MINIMUM_ANISOTROPIC
200-
FILTER_MAXIMUM_MIN_MAG_MIP_POINT
201-
FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR
202-
FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT
203-
FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR
204-
FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT
205-
FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR
206-
FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT
207-
FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR
208-
FILTER_MAXIMUM_ANISOTROPIC
209-
210173
TEXTURE_ADDRESS_WRAP
211174
TEXTURE_ADDRESS_MIRROR
212175
TEXTURE_ADDRESS_CLAMP

clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,6 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseStaticSamplerTest) {
230230
minLOD = 4.2f, mipLODBias = 0.23e+3,
231231
addressW = TEXTURE_ADDRESS_CLAMP,
232232
addressV = TEXTURE_ADDRESS_BORDER,
233-
filter = FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT,
234233
maxLOD = 9000, addressU = TEXTURE_ADDRESS_MIRROR
235234
)
236235
)cc";
@@ -255,7 +254,6 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseStaticSamplerTest) {
255254
ASSERT_TRUE(std::holds_alternative<StaticSampler>(Elem));
256255
ASSERT_EQ(std::get<StaticSampler>(Elem).Reg.ViewType, RegisterType::SReg);
257256
ASSERT_EQ(std::get<StaticSampler>(Elem).Reg.Number, 0u);
258-
ASSERT_EQ(std::get<StaticSampler>(Elem).Filter, Filter::Anisotropic);
259257
ASSERT_EQ(std::get<StaticSampler>(Elem).AddressU, TextureAddressMode::Wrap);
260258
ASSERT_EQ(std::get<StaticSampler>(Elem).AddressV, TextureAddressMode::Wrap);
261259
ASSERT_EQ(std::get<StaticSampler>(Elem).AddressW, TextureAddressMode::Wrap);
@@ -269,8 +267,6 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseStaticSamplerTest) {
269267
ASSERT_TRUE(std::holds_alternative<StaticSampler>(Elem));
270268
ASSERT_EQ(std::get<StaticSampler>(Elem).Reg.ViewType, RegisterType::SReg);
271269
ASSERT_EQ(std::get<StaticSampler>(Elem).Reg.Number, 0u);
272-
ASSERT_EQ(std::get<StaticSampler>(Elem).Filter,
273-
Filter::MaximumMinPointMagLinearMipPoint);
274270
ASSERT_EQ(std::get<StaticSampler>(Elem).AddressU, TextureAddressMode::Mirror);
275271
ASSERT_EQ(std::get<StaticSampler>(Elem).AddressV, TextureAddressMode::Border);
276272
ASSERT_EQ(std::get<StaticSampler>(Elem).AddressW, TextureAddressMode::Clamp);

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

Lines changed: 1 addition & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,7 @@ class Metadata;
2727
namespace hlsl {
2828
namespace rootsig {
2929

30-
// Definition of the various enumerations and flags. The definitions of all
31-
// values here correspond to their description in the d3d12.h header and are
32-
// carried over from their values in DXC. For reference:
33-
// https://learn.microsoft.com/en-us/windows/win32/api/d3d12/
30+
// Definition of the various enumerations and flags
3431

3532
enum class RootFlags : uint32_t {
3633
None = 0,
@@ -79,47 +76,6 @@ enum class ShaderVisibility {
7976
Mesh = 7,
8077
};
8178

82-
// D3D12_FILTER enumeration:
83-
// https://learn.microsoft.com/en-us/windows/win32/api/d3d12/ne-d3d12-d3d12_filter
84-
enum class Filter {
85-
MinMagMipPoint = 0,
86-
MinMagPointMipLinear = 0x1,
87-
MinPointMagLinearMipPoint = 0x4,
88-
MinPointMagMipLinear = 0x5,
89-
MinLinearMagMipPoint = 0x10,
90-
MinLinearMagPointMipLinear = 0x11,
91-
MinMagLinearMipPoint = 0x14,
92-
MinMagMipLinear = 0x15,
93-
Anisotropic = 0x55,
94-
ComparisonMinMagMipPoint = 0x80,
95-
ComparisonMinMagPointMipLinear = 0x81,
96-
ComparisonMinPointMagLinearMipPoint = 0x84,
97-
ComparisonMinPointMagMipLinear = 0x85,
98-
ComparisonMinLinearMagMipPoint = 0x90,
99-
ComparisonMinLinearMagPointMipLinear = 0x91,
100-
ComparisonMinMagLinearMipPoint = 0x94,
101-
ComparisonMinMagMipLinear = 0x95,
102-
ComparisonAnisotropic = 0xd5,
103-
MinimumMinMagMipPoint = 0x100,
104-
MinimumMinMagPointMipLinear = 0x101,
105-
MinimumMinPointMagLinearMipPoint = 0x104,
106-
MinimumMinPointMagMipLinear = 0x105,
107-
MinimumMinLinearMagMipPoint = 0x110,
108-
MinimumMinLinearMagPointMipLinear = 0x111,
109-
MinimumMinMagLinearMipPoint = 0x114,
110-
MinimumMinMagMipLinear = 0x115,
111-
MinimumAnisotropic = 0x155,
112-
MaximumMinMagMipPoint = 0x180,
113-
MaximumMinMagPointMipLinear = 0x181,
114-
MaximumMinPointMagLinearMipPoint = 0x184,
115-
MaximumMinPointMagMipLinear = 0x185,
116-
MaximumMinLinearMagMipPoint = 0x190,
117-
MaximumMinLinearMagPointMipLinear = 0x191,
118-
MaximumMinMagLinearMipPoint = 0x194,
119-
MaximumMinMagMipLinear = 0x195,
120-
MaximumAnisotropic = 0x1d5
121-
};
122-
12379
enum class TextureAddressMode {
12480
Wrap = 1,
12581
Mirror = 2,
@@ -209,7 +165,6 @@ raw_ostream &operator<<(raw_ostream &OS, const DescriptorTableClause &Clause);
209165

210166
struct StaticSampler {
211167
Register Reg;
212-
Filter Filter = Filter::Anisotropic;
213168
TextureAddressMode AddressU = TextureAddressMode::Wrap;
214169
TextureAddressMode AddressV = TextureAddressMode::Wrap;
215170
TextureAddressMode AddressW = TextureAddressMode::Wrap;

0 commit comments

Comments
 (0)