layers: Add sType VUIDs to Parameter Validation
- Updated validation check to accept VUID
- Modified PV codegen to calculate VUIDs for sType checks
- Modified PV codegen to verify VUIDs are valid enums before using
- Updated error database for 65 new VUIDs covered
Change-Id: Ia964822d5a12db0da9c8b425e0ccb72d1bd550a8
diff --git a/layers/parameter_validation_utils.h b/layers/parameter_validation_utils.h
index c1d4b4d..679c050 100644
--- a/layers/parameter_validation_utils.h
+++ b/layers/parameter_validation_utils.h
@@ -280,7 +280,8 @@
*/
template <typename T>
bool validate_struct_type(debug_report_data *report_data, const char *apiName, const ParameterName ¶meterName,
- const char *sTypeName, const T *value, VkStructureType sType, bool required) {
+ const char *sTypeName, const T *value, VkStructureType sType, bool required,
+ UNIQUE_VALIDATION_ERROR_CODE vuid) {
bool skip_call = false;
if (value == NULL) {
@@ -290,9 +291,9 @@
parameterName.get_name().c_str());
}
} else if (value->sType != sType) {
- skip_call |= log_msg(report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__,
- INVALID_STRUCT_STYPE, LayerName, "%s: parameter %s->sType must be %s", apiName,
- parameterName.get_name().c_str(), sTypeName);
+ skip_call |= log_msg(report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, vuid,
+ LayerName, "%s: parameter %s->sType must be %s. %s", apiName, parameterName.get_name().c_str(),
+ sTypeName, validation_error_map[vuid]);
}
return skip_call;