radv: 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:45 +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 base object.

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/amd/vulkan/radv_cmd_buffer.c

index 6e0cc08..5380194 100644 (file)
@@ -3872,6 +3872,7 @@ VkResult radv_AllocateCommandBuffers(
 
                        result = radv_reset_cmd_buffer(cmd_buffer);
                        cmd_buffer->level = pAllocateInfo->level;
+                       vk_object_base_reset(&cmd_buffer->base);
 
                        pCommandBuffers[i] = radv_cmd_buffer_to_handle(cmd_buffer);
                } else {