layers: Add Best Practices to Enable list
Change-Id: I15027131b6c8e0857aa300dbeae23d7845632331
diff --git a/layers/best_practices.cpp b/layers/best_practices.cpp
index da0e4c3..b5447f6 100644
--- a/layers/best_practices.cpp
+++ b/layers/best_practices.cpp
@@ -17,4 +17,4 @@
* Author: Camden Stocker <camden@lunarg.com>
*/
-#include "best_practices.h"
\ No newline at end of file
+#include "best_practices.h"
diff --git a/layers/best_practices.h b/layers/best_practices.h
index d769c91..8fc76ac 100644
--- a/layers/best_practices.h
+++ b/layers/best_practices.h
@@ -23,4 +23,4 @@
class BestPractices : public ValidationObject {
public:
-};
\ No newline at end of file
+};
diff --git a/layers/generated/chassis.cpp b/layers/generated/chassis.cpp
index 6c3eb8d..5632c54 100644
--- a/layers/generated/chassis.cpp
+++ b/layers/generated/chassis.cpp
@@ -154,6 +154,10 @@
{"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},
@@ -233,6 +237,16 @@
}
}
+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) {
@@ -277,6 +291,11 @@
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());
diff --git a/layers/generated/chassis.h b/layers/generated/chassis.h
index 8b7998b..fec2a88 100644
--- a/layers/generated/chassis.h
+++ b/layers/generated/chassis.h
@@ -2386,6 +2386,10 @@
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
diff --git a/scripts/layer_chassis_generator.py b/scripts/layer_chassis_generator.py
index 1b6e9d9..332363f 100644
--- a/scripts/layer_chassis_generator.py
+++ b/scripts/layer_chassis_generator.py
@@ -265,6 +265,10 @@
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 @@
{"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 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 @@
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());