tu: reset object base on recycled command buffers
authorDave Airlie <airlied@redhat.com>
Fri, 19 Feb 2021 02:15:05 +0000 (12:15 +1000)
committerDave Airlie <airlied@redhat.com>
Sun, 21 Feb 2021 23:32:49 +0000 (09:32 +1000)
The loader_set_dispatch overwrites the magic with the dispatch
pointer, however when cmd buffers get recycled, and the loader
is in debug mode, it asserts that the magic isn't set anymore.

When recycling command buffers, reset the object base.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9145>

src/freedreno/vulkan/tu_cmd_buffer.c

index 2cce807..8da5d7c 100644 (file)
@@ -1430,6 +1430,7 @@ tu_AllocateCommandBuffers(VkDevice _device,
 
          result = tu_reset_cmd_buffer(cmd_buffer);
          cmd_buffer->level = pAllocateInfo->level;
+         vk_object_base_reset(&cmd_buffer->base);
 
          pCommandBuffers[i] = tu_cmd_buffer_to_handle(cmd_buffer);
       } else {