Skip to content

Commit 94e8738

Browse files
committed
add testing of setting parameters
1 parent 1b337ea commit 94e8738

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-3
lines changed

clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,11 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseDTClausesTest) {
225225

226226
TEST_F(ParseHLSLRootSignatureTest, ValidParseStaticSamplerTest) {
227227
const llvm::StringLiteral Source = R"cc(
228-
StaticSampler(s0, mipLODBias = 0)
228+
StaticSampler(s0),
229+
StaticSampler(s0, maxAnisotropy = 3,
230+
minLOD = 4.2f, mipLODBias = 0.23e+3,
231+
maxLOD = 9000,
232+
)
229233
)cc";
230234

231235
TrivialModuleLoader ModLoader;
@@ -241,13 +245,28 @@ TEST_F(ParseHLSLRootSignatureTest, ValidParseStaticSamplerTest) {
241245

242246
ASSERT_FALSE(Parser.parse());
243247

244-
ASSERT_EQ(Elements.size(), 1u);
248+
ASSERT_EQ(Elements.size(), 2u);
245249

250+
// Check default values are as expected
246251
RootElement Elem = Elements[0];
247252
ASSERT_TRUE(std::holds_alternative<StaticSampler>(Elem));
248253
ASSERT_EQ(std::get<StaticSampler>(Elem).Reg.ViewType, RegisterType::SReg);
249254
ASSERT_EQ(std::get<StaticSampler>(Elem).Reg.Number, 0u);
250255
ASSERT_EQ(std::get<StaticSampler>(Elem).MipLODBias, 0.f);
256+
ASSERT_EQ(std::get<StaticSampler>(Elem).MaxAnisotropy, 16u);
257+
ASSERT_EQ(std::get<StaticSampler>(Elem).MinLOD, 0.f);
258+
ASSERT_EQ(std::get<StaticSampler>(Elem).MaxLOD, 3.402823466e+38f);
259+
260+
// Check values can be set as expected
261+
Elem = Elements[1];
262+
ASSERT_TRUE(std::holds_alternative<StaticSampler>(Elem));
263+
ASSERT_EQ(std::get<StaticSampler>(Elem).Reg.ViewType, RegisterType::SReg);
264+
ASSERT_EQ(std::get<StaticSampler>(Elem).Reg.Number, 0u);
265+
ASSERT_EQ(std::get<StaticSampler>(Elem).MipLODBias, 230.f);
266+
ASSERT_EQ(std::get<StaticSampler>(Elem).MaxAnisotropy, 3u);
267+
ASSERT_EQ(std::get<StaticSampler>(Elem).MinLOD, 4.2f);
268+
ASSERT_EQ(std::get<StaticSampler>(Elem).MaxLOD, 9000.f);
269+
251270

252271
ASSERT_TRUE(Consumer->isSatisfied());
253272
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ struct StaticSampler {
163163
float MipLODBias = 0.f;
164164
uint32_t MaxAnisotropy = 16;
165165
float MinLOD = 0.f;
166-
float MaxLOD = 3.402823466e+38f;
166+
float MaxLOD = 3.402823466e+38f; // FLT_MAX
167167
};
168168

169169
/// Models RootElement : RootFlags | RootConstants | RootParam

0 commit comments

Comments
 (0)