From ab87a84283d781ce108742ae9d664652b7edbb09 Mon Sep 17 00:00:00 2001 From: Mark Lobodzinski Date: Tue, 25 Jul 2017 14:49:06 -0600 Subject: layers: Add new PV ranged enum validation function Uses new enum lists. Change-Id: I24629770e1018f5938fa82d2a3da8eb1cd716de7 --- layers/parameter_validation_utils.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) 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 +bool validate_ranged_enum(debug_report_data *report_data, const char *apiName, const ParameterName ¶meterName, + const char *enumName, const std::vector &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. * -- cgit v1.2.3