aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Lobodzinski <mark@lunarg.com>2017-07-25 14:49:06 -0600
committerMark Lobodzinski <mark@lunarg.com>2017-07-26 14:30:46 -0600
commitab87a84283d781ce108742ae9d664652b7edbb09 (patch)
tree831f23a5ffb0e4dc2a3fe7003338dd9cb8b53645
parent650d7f609bef99a617093a33d86e4cfef948a31c (diff)
downloadusermoji-ab87a84283d781ce108742ae9d664652b7edbb09.tar.xz
layers: Add new PV ranged enum validation function
Uses new enum lists. Change-Id: I24629770e1018f5938fa82d2a3da8eb1cd716de7
-rw-r--r--layers/parameter_validation_utils.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/layers/parameter_validation_utils.h b/layers/parameter_validation_utils.h
index b9ec355f..29ac542c 100644
--- a/layers/parameter_validation_utils.h
+++ b/layers/parameter_validation_utils.h
@@ -652,6 +652,22 @@ bool validate_ranged_enum(debug_report_data *report_data, const char *apiName, c
return skip_call;
}
+template <typename T>
+bool validate_ranged_enum(debug_report_data *report_data, const char *apiName, const ParameterName &parameterName,
+ const char *enumName, const std::vector<T> &valid_values, T value, UNIQUE_VALIDATION_ERROR_CODE vuid) {
+ bool skip = false;
+
+ if (std::find(valid_values.begin(), valid_values.end(), value) == valid_values.end()) {
+ skip |= log_msg(report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, vuid,
+ LayerName,
+ "%s: value of %s (%d) does not fall within the begin..end range of the core %s "
+ "enumeration tokens and is not an extension added token. %s",
+ apiName, parameterName.get_name().c_str(), value, enumName, validation_error_map[vuid]);
+ }
+
+ return skip;
+}
+
/**
* Validate an array of Vulkan enumeration value.
*