From 5cdcae6743d24f1a54ff6af94f6ecc130fbd5987 Mon Sep 17 00:00:00 2001 From: Tobin Ehlis Date: Fri, 1 Dec 2017 15:59:53 -0700 Subject: layers:Limit warning on secondary command buffer Only warn if a secondary command buffer has a renderPass that is valid and has not set VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT. This avoid warning for the case where uninitialized data is present in the renderPass handle. --- layers/core_validation.cpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'layers/core_validation.cpp') diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index c78feff9..f6b8d44f 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -5204,15 +5204,16 @@ VKAPI_ATTR VkResult VKAPI_CALL BeginCommandBuffer(VkCommandBuffer commandBuffer, cb_node->framebuffers.insert(cb_node->beginInfo.pInheritanceInfo->framebuffer); } else if (VK_NULL_HANDLE != cb_node->beginInfo.pInheritanceInfo->renderPass) { // This is a user-requested warning. This is a likely case where user forgot to set RP continue bit - skip |= - log_msg(dev_data->report_data, VK_DEBUG_REPORT_WARNING_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT, - HandleToUint64(cb_node->beginInfo.pInheritanceInfo->renderPass), __LINE__, - VALIDATION_ERROR_0280006a, "CORE", - "vkBeginCommandBuffer(): Secondary command buffer with a non-null pInheritanceInfo->renderPass " - "does not have " - "VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT. If you intend to draw from this command buffer " - "you must set " - "VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT in pBeginInfo->flags."); + // but only warn if renderPass actually exists, indicating this was intentional vs just uninitialized junk + if (GetRenderPassState(dev_data, cb_node->beginInfo.pInheritanceInfo->renderPass)) { + skip |= log_msg( + dev_data->report_data, VK_DEBUG_REPORT_WARNING_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT, + HandleToUint64(cb_node->beginInfo.pInheritanceInfo->renderPass), __LINE__, VALIDATION_ERROR_0280006a, + "CORE", + "vkBeginCommandBuffer(): Secondary command buffer with a non-null pInheritanceInfo->renderPass " + "does not have VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT. If you intend to draw from this " + "command buffer you must set VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT in pBeginInfo->flags."); + } } } } -- cgit v1.2.3