aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan-Harald Fredriksen <jan-harald.fredriksen@arm.com>2016-06-08 14:20:50 +0200
committerMark Lobodzinski <mark@lunarg.com>2016-06-09 10:39:39 -0600
commitf99171e3401949aa86e0c0cca31fca3c9b229b5d (patch)
tree4b931efdf010a3451d1fba8e36c290b7476cc940
parenta2f7158ec4016adbca53bed110654edfb3a4c945 (diff)
downloadusermoji-f99171e3401949aa86e0c0cca31fca3c9b229b5d.tar.xz
layers: PR629, Remove subpass warnings
The validation layer checks for dependency between subpasses using the same attachments, but it also issues warnings if there are "only" implicit dependencies between two subpasses. This is explicitly allowed by the spec and should not cause validation warnings. Change-Id: I1039955d6d445e1ee234116c6da2e4dbaf9c7dd9
-rw-r--r--layers/core_validation.cpp11
1 files changed, 3 insertions, 8 deletions
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp
index 809023af..949276b6 100644
--- a/layers/core_validation.cpp
+++ b/layers/core_validation.cpp
@@ -8199,15 +8199,10 @@ static bool CheckDependencyExists(const layer_data *my_data, const int subpass,
auto prev_elem = std::find(node.prev.begin(), node.prev.end(), dependent_subpasses[k]);
auto next_elem = std::find(node.next.begin(), node.next.end(), dependent_subpasses[k]);
if (prev_elem == node.prev.end() && next_elem == node.next.end()) {
- // If no dependency exits an implicit dependency still might. If so, warn and if not throw an error.
+ // If no dependency exits an implicit dependency still might. If not, throw an error.
std::unordered_set<uint32_t> processed_nodes;
- if (FindDependency(subpass, dependent_subpasses[k], subpass_to_node, processed_nodes) ||
- FindDependency(dependent_subpasses[k], subpass, subpass_to_node, processed_nodes)) {
- skip_call |= log_msg(my_data->report_data, VK_DEBUG_REPORT_WARNING_BIT_EXT, (VkDebugReportObjectTypeEXT)0, 0,
- __LINE__, DRAWSTATE_INVALID_RENDERPASS, "DS",
- "A dependency between subpasses %d and %d must exist but only an implicit one is specified.",
- subpass, dependent_subpasses[k]);
- } else {
+ if (!(FindDependency(subpass, dependent_subpasses[k], subpass_to_node, processed_nodes) ||
+ FindDependency(dependent_subpasses[k], subpass, subpass_to_node, processed_nodes))) {
skip_call |= log_msg(my_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT)0, 0,
__LINE__, DRAWSTATE_INVALID_RENDERPASS, "DS",
"A dependency between subpasses %d and %d must exist but one is not specified.", subpass,