aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorCamden <camden@lunarg.com>2019-08-05 11:28:57 -0600
committercamden-lunarg <51965765+camden-lunarg@users.noreply.github.com>2019-08-15 09:41:23 -0600
commit3231dcc258813ea5f53559c6c3640a382397d442 (patch)
treebdf730dc9423caecac0ab18c448cc631f6a3fc4d /scripts
parentf63aa978954bf12c12625a72ea226e09f95cf6a9 (diff)
downloadvulkan-validation-layers-3231dcc258813ea5f53559c6c3640a382397d442.tar.gz
layers: Add Best Practices to Enable list
Change-Id: I15027131b6c8e0857aa300dbeae23d7845632331
Diffstat (limited to 'scripts')
-rw-r--r--scripts/layer_chassis_generator.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/scripts/layer_chassis_generator.py b/scripts/layer_chassis_generator.py
index 1b6e9d998..332363f80 100644
--- a/scripts/layer_chassis_generator.py
+++ b/scripts/layer_chassis_generator.py
@@ -265,6 +265,10 @@ typedef enum ValidationCheckDisables {
VALIDATION_CHECK_DISABLE_IMAGE_LAYOUT_VALIDATION,
} ValidationCheckDisables;
+typedef enum VkValidationFeatureEnable {
+ VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES,
+} VkValidationFeatureEnable;
+
// CHECK_DISABLED struct is a container for bools that can block validation checks from being performed.
// These bools are all "false" by default meaning that all checks are enabled. Enum values can be specified
@@ -551,6 +555,10 @@ static const std::unordered_map<std::string, VkValidationFeatureEnableEXT> VkVal
{"VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT", VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT},
};
+static const std::unordered_map<std::string, VkValidationFeatureEnable> VkValFeatureEnableLookup2 = {
+ {"VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES", VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES},
+};
+
static const std::unordered_map<std::string, ValidationCheckDisables> ValidationDisableLookup = {
{"VALIDATION_CHECK_DISABLE_COMMAND_BUFFER_STATE", VALIDATION_CHECK_DISABLE_COMMAND_BUFFER_STATE},
{"VALIDATION_CHECK_DISABLE_OBJECT_IN_USE", VALIDATION_CHECK_DISABLE_OBJECT_IN_USE},
@@ -630,6 +638,16 @@ void SetValidationFeatureEnable(CHECK_ENABLED *enable_data, const VkValidationFe
}
}
+void SetValidationFeatureEnable(CHECK_ENABLED *enable_data, const VkValidationFeatureEnable feature_enable) {
+ switch(feature_enable) {
+ case VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES:
+ enable_data->best_practices = true;
+ break;
+ default:
+ break;
+ }
+}
+
// Set the local disable flag for settings specified through the VK_EXT_validation_flags extension
void SetValidationFlags(CHECK_DISABLED* disables, const VkValidationFlagsEXT* val_flags_struct) {
for (uint32_t i = 0; i < val_flags_struct->disabledValidationCheckCount; ++i) {
@@ -674,6 +692,11 @@ void SetLocalEnableSetting(std::string list_of_enables, std::string delimiter, C
auto result = VkValFeatureEnableLookup.find(token);
if (result != VkValFeatureEnableLookup.end()) {
SetValidationFeatureEnable(enables, result->second);
+ } else {
+ auto result2 = VkValFeatureEnableLookup2.find(token);
+ if (result2 != VkValFeatureEnableLookup2.end()) {
+ SetValidationFeatureEnable(enables, result2->second);
+ }
}
}
list_of_enables.erase(0, pos + delimiter.length());