Add GLSL normalize method.
This CL adds type determinater support for Normalize.
Bug: tint:5
Change-Id: Idbea41942172f8404122b7a756ccf1ec5aad2af8
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19950
Reviewed-by: David Neto <dneto@google.com>
diff --git a/src/type_determiner.cc b/src/type_determiner.cc
index c250bdd..06e45c5 100644
--- a/src/type_determiner.cc
+++ b/src/type_determiner.cc
@@ -595,7 +595,7 @@
name == "acos" || name == "atan" || name == "sinh" || name == "cosh" ||
name == "tanh" || name == "asinh" || name == "acosh" || name == "atanh" ||
name == "exp" || name == "log" || name == "exp2" || name == "log2" ||
- name == "sqrt" || name == "inversesqrt") {
+ name == "sqrt" || name == "inversesqrt" || name == "normalize") {
if (params.size() != 1) {
error_ = "incorrect number of parameters for " + name +
". Expected 1 got " + std::to_string(params.size());
@@ -663,6 +663,8 @@
*id = GLSLstd450Sqrt;
} else if (name == "inversesqrt") {
*id = GLSLstd450InverseSqrt;
+ } else if (name == "normalize") {
+ *id = GLSLstd450Normalize;
}
return params[0]->result_type();
diff --git a/src/type_determiner_test.cc b/src/type_determiner_test.cc
index f08f491..cbb52bf 100644
--- a/src/type_determiner_test.cc
+++ b/src/type_determiner_test.cc
@@ -1615,7 +1615,8 @@
GLSLData{"exp2", GLSLstd450Exp2},
GLSLData{"log2", GLSLstd450Log2},
GLSLData{"sqrt", GLSLstd450Sqrt},
- GLSLData{"inversesqrt", GLSLstd450InverseSqrt}));
+ GLSLData{"inversesqrt", GLSLstd450InverseSqrt},
+ GLSLData{"normalize", GLSLstd450Normalize}));
} // namespace
} // namespace tint