Add GLSL Trunc support.
This CL adds type determination for the Trunc method.
Bug: tint:5
Change-Id: I4f23dad7725f1f076fbbc7da8687de42a02cc482
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19941
Reviewed-by: David Neto <dneto@google.com>
diff --git a/src/type_determiner.cc b/src/type_determiner.cc
index ad6f9c4..3115e7c 100644
--- a/src/type_determiner.cc
+++ b/src/type_determiner.cc
@@ -576,7 +576,7 @@
return nullptr;
}
- if (name == "round" || name == "roundeven") {
+ if (name == "round" || name == "roundeven" || name == "trunc") {
if (params.size() != 1) {
error_ = "incorrect number of parameters for " + name +
". Expected 1 got " + std::to_string(params.size());
@@ -592,7 +592,10 @@
*id = GLSLstd450Round;
} else if (name == "roundeven") {
*id = GLSLstd450RoundEven;
+ } else if (name == "trunc") {
+ *id = GLSLstd450Trunc;
}
+
return params[0]->result_type();
}
diff --git a/src/type_determiner_test.cc b/src/type_determiner_test.cc
index bebeae4..f3a2b89 100644
--- a/src/type_determiner_test.cc
+++ b/src/type_determiner_test.cc
@@ -1589,7 +1589,8 @@
ImportData_FloatTest,
testing::Values(GLSLData{"round", GLSLstd450Round},
GLSLData{"roundeven",
- GLSLstd450RoundEven}));
+ GLSLstd450RoundEven},
+ GLSLData{"trunc", GLSLstd450Trunc}));
} // namespace
} // namespace tint