From f99171e3401949aa86e0c0cca31fca3c9b229b5d Mon Sep 17 00:00:00 2001 From: Jan-Harald Fredriksen Date: Wed, 8 Jun 2016 14:20:50 +0200 Subject: 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 --- layers/core_validation.cpp | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'layers/core_validation.cpp') 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 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, -- cgit v1.2.3