Module: Mesa
Branch: main
Commit: c05434cd6dff49d48df283d4a99523e0bbda0fbb
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c05434cd6dff49d48df283d4a99523e0bbda0fbb

Author: Yevhenii Kolesnikov <[email protected]>
Date:   Tue Apr  6 15:00:53 2021 +0300

radv: Use a common vk_command_buffer structure

Switch to using common structure.

Signed-off-by: Yevhenii Kolesnikov <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13000>

---

 src/amd/vulkan/radv_cmd_buffer.c | 17 ++++++++++++++---
 src/amd/vulkan/radv_private.h    |  3 ++-
 2 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c
index c6047ad96ef..8f4b30187a9 100644
--- a/src/amd/vulkan/radv_cmd_buffer.c
+++ b/src/amd/vulkan/radv_cmd_buffer.c
@@ -408,7 +408,7 @@ radv_destroy_cmd_buffer(struct radv_cmd_buffer *cmd_buffer)
    for (unsigned i = 0; i < MAX_BIND_POINTS; i++)
       free(cmd_buffer->descriptors[i].push_set.set.mapped_ptr);
 
-   vk_object_base_finish(&cmd_buffer->base);
+   vk_command_buffer_finish(&cmd_buffer->vk);
    vk_free(&cmd_buffer->pool->alloc, cmd_buffer);
 }
 
@@ -422,7 +422,12 @@ radv_create_cmd_buffer(struct radv_device *device, struct 
radv_cmd_pool *pool,
    if (cmd_buffer == NULL)
       return vk_error(device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
 
-   vk_object_base_init(&device->vk, &cmd_buffer->base, 
VK_OBJECT_TYPE_COMMAND_BUFFER);
+   VkResult result =
+      vk_command_buffer_init(&cmd_buffer->vk, &device->vk);
+   if (result != VK_SUCCESS) {
+      vk_free(&cmd_buffer->pool->alloc, cmd_buffer);
+      return result;
+   }
 
    cmd_buffer->device = device;
    cmd_buffer->pool = pool;
@@ -449,6 +454,8 @@ radv_create_cmd_buffer(struct radv_device *device, struct 
radv_cmd_pool *pool,
 static VkResult
 radv_reset_cmd_buffer(struct radv_cmd_buffer *cmd_buffer)
 {
+   vk_command_buffer_reset(&cmd_buffer->vk);
+
    cmd_buffer->device->ws->cs_reset(cmd_buffer->cs);
 
    list_for_each_entry_safe(struct radv_cmd_buffer_upload, up, 
&cmd_buffer->upload.list, list)
@@ -3817,7 +3824,11 @@ radv_AllocateCommandBuffers(VkDevice _device, const 
VkCommandBufferAllocateInfo
 
          result = radv_reset_cmd_buffer(cmd_buffer);
          cmd_buffer->level = pAllocateInfo->level;
-         vk_object_base_reset(&cmd_buffer->base);
+         vk_command_buffer_finish(&cmd_buffer->vk);
+         VkResult init_result =
+            vk_command_buffer_init(&cmd_buffer->vk, &device->vk);
+         if (init_result != VK_SUCCESS)
+            result = init_result;
 
          pCommandBuffers[i] = radv_cmd_buffer_to_handle(cmd_buffer);
       } else {
diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h
index 0430e4ef6d6..64c7c4edf38 100644
--- a/src/amd/vulkan/radv_private.h
+++ b/src/amd/vulkan/radv_private.h
@@ -61,6 +61,7 @@
 #include "vk_instance.h"
 #include "vk_physical_device.h"
 #include "vk_shader_module.h"
+#include "vk_command_buffer.h"
 #include "vk_util.h"
 
 #include "ac_binary.h"
@@ -1461,7 +1462,7 @@ enum radv_cmd_buffer_status {
 };
 
 struct radv_cmd_buffer {
-   struct vk_object_base base;
+   struct vk_command_buffer vk;
 
    struct radv_device *device;
 

Reply via email to