From a752c4ecdaa2084a4335993947512cd0eaa79046 Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Mon, 6 Mar 2017 12:16:05 +0100 Subject: [PATCH] anv/cmd_buffer: skip vkCmdExecuteCommands() on broken command buffers v2: Assert on secondary commands, applications should've called vkEndCommandBuffer() and received an error for them before (Jason) Reviewed-by: Topi Pohjolainen --- src/intel/vulkan/genX_cmd_buffer.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index 89aeff2..4d14fcd 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -646,6 +646,9 @@ genX(CmdExecuteCommands)( assert(primary->level == VK_COMMAND_BUFFER_LEVEL_PRIMARY); + if (anv_batch_has_error(&primary->batch)) + return; + /* The secondary command buffers will assume that the PMA fix is disabled * when they begin executing. Make sure this is true. */ @@ -655,6 +658,7 @@ genX(CmdExecuteCommands)( ANV_FROM_HANDLE(anv_cmd_buffer, secondary, pCmdBuffers[i]); assert(secondary->level == VK_COMMAND_BUFFER_LEVEL_SECONDARY); + assert(!anv_batch_has_error(&secondary->batch)); if (secondary->usage_flags & VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT) { -- 2.7.4