diff options
| author | Mark Lobodzinski <mark@lunarg.com> | 2017-07-25 14:49:06 -0600 |
|---|---|---|
| committer | Mark Lobodzinski <mark@lunarg.com> | 2017-07-26 14:30:46 -0600 |
| commit | ab87a84283d781ce108742ae9d664652b7edbb09 (patch) | |
| tree | 831f23a5ffb0e4dc2a3fe7003338dd9cb8b53645 | |
| parent | 650d7f609bef99a617093a33d86e4cfef948a31c (diff) | |
| download | usermoji-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.h | 16 |
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 ¶meterName, + 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. * |
