[Mesa-dev] [PATCH v2 19/24] anv/cmd_buffer: skip vkCmdExecuteCommands() on broken command buffers

Iago Toral Quiroga itoral at igalia.com
Fri Mar 10 12:38:32 UTC 2017


v2: Assert on secondary commands, applications should've called
    vkEndCommandBuffer() and received an error for them before.
---
 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 b3f1009..510355e 100644
--- a/src/intel/vulkan/genX_cmd_buffer.c
+++ b/src/intel/vulkan/genX_cmd_buffer.c
@@ -644,6 +644,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.
     */
@@ -653,6 +656,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



More information about the mesa-dev mailing list