Mesa (main): lavapipe: Use vk_command_pool

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Feb 11 08:46:48 UTC 2022


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

Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date:   Mon Feb  7 14:26:49 2022 -0600

lavapipe: Use vk_command_pool

Acked-By: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14917>

---

 src/gallium/frontends/lavapipe/lvp_cmd_buffer.c | 22 +++++++++++-----------
 src/gallium/frontends/lavapipe/lvp_private.h    |  8 ++++----
 2 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/src/gallium/frontends/lavapipe/lvp_cmd_buffer.c b/src/gallium/frontends/lavapipe/lvp_cmd_buffer.c
index 612a5ae3efb..b3c23aafd22 100644
--- a/src/gallium/frontends/lavapipe/lvp_cmd_buffer.c
+++ b/src/gallium/frontends/lavapipe/lvp_cmd_buffer.c
@@ -33,21 +33,21 @@ static VkResult lvp_create_cmd_buffer(
 {
    struct lvp_cmd_buffer *cmd_buffer;
 
-   cmd_buffer = vk_alloc(&pool->alloc, sizeof(*cmd_buffer), 8,
+   cmd_buffer = vk_alloc(&pool->vk.alloc, sizeof(*cmd_buffer), 8,
                          VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
    if (cmd_buffer == NULL)
       return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
 
    VkResult result = vk_command_buffer_init(&cmd_buffer->vk, &device->vk, level);
    if (result != VK_SUCCESS) {
-      vk_free(&pool->alloc, cmd_buffer);
+      vk_free(&pool->vk.alloc, cmd_buffer);
       return result;
    }
 
    cmd_buffer->device = device;
    cmd_buffer->pool = pool;
 
-   cmd_buffer->queue.alloc = &pool->alloc;
+   cmd_buffer->queue.alloc = &pool->vk.alloc;
    list_inithead(&cmd_buffer->queue.cmds);
 
    cmd_buffer->status = LVP_CMD_BUFFER_STATUS_INITIAL;
@@ -126,7 +126,7 @@ lvp_cmd_buffer_destroy(struct lvp_cmd_buffer *cmd_buffer)
    vk_free_queue(&cmd_buffer->queue);
    list_del(&cmd_buffer->pool_link);
    vk_command_buffer_finish(&cmd_buffer->vk);
-   vk_free(&cmd_buffer->pool->alloc, cmd_buffer);
+   vk_free(&cmd_buffer->pool->vk.alloc, cmd_buffer);
 }
 
 VKAPI_ATTR void VKAPI_CALL lvp_FreeCommandBuffers(
@@ -194,12 +194,12 @@ VKAPI_ATTR VkResult VKAPI_CALL lvp_CreateCommandPool(
    if (pool == NULL)
       return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
 
-   vk_object_base_init(&device->vk, &pool->base,
-                       VK_OBJECT_TYPE_COMMAND_POOL);
-   if (pAllocator)
-      pool->alloc = *pAllocator;
-   else
-      pool->alloc = device->vk.alloc;
+   VkResult result = vk_command_pool_init(&pool->vk, &device->vk,
+                                          pCreateInfo, pAllocator);
+   if (result != VK_SUCCESS) {
+      vk_free2(&device->vk.alloc, pAllocator, pool);
+      return result;
+   }
 
    list_inithead(&pool->cmd_buffers);
    list_inithead(&pool->free_cmd_buffers);
@@ -230,7 +230,7 @@ VKAPI_ATTR void VKAPI_CALL lvp_DestroyCommandPool(
       lvp_cmd_buffer_destroy(cmd_buffer);
    }
 
-   vk_object_base_finish(&pool->base);
+   vk_command_pool_finish(&pool->vk);
    vk_free2(&device->vk.alloc, pAllocator, pool);
 }
 
diff --git a/src/gallium/frontends/lavapipe/lvp_private.h b/src/gallium/frontends/lavapipe/lvp_private.h
index e961bff3c91..efd39c16791 100644
--- a/src/gallium/frontends/lavapipe/lvp_private.h
+++ b/src/gallium/frontends/lavapipe/lvp_private.h
@@ -63,6 +63,7 @@ typedef uint32_t xcb_window_t;
 #include "vk_format.h"
 #include "vk_cmd_queue.h"
 #include "vk_command_buffer.h"
+#include "vk_command_pool.h"
 #include "vk_queue.h"
 
 #include "wsi_common.h"
@@ -538,8 +539,7 @@ struct lvp_query_pool {
 };
 
 struct lvp_cmd_pool {
-   struct vk_object_base                        base;
-   VkAllocationCallbacks                        alloc;
+   struct vk_command_pool                       vk;
    struct list_head                             cmd_buffers;
    struct list_head                             free_cmd_buffers;
 };
@@ -579,8 +579,8 @@ VK_DEFINE_HANDLE_CASTS(lvp_physical_device, vk.base, VkPhysicalDevice,
                        VK_OBJECT_TYPE_PHYSICAL_DEVICE)
 VK_DEFINE_HANDLE_CASTS(lvp_queue, vk.base, VkQueue, VK_OBJECT_TYPE_QUEUE)
 
-   VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_cmd_pool, base,VkCommandPool,
-                                  VK_OBJECT_TYPE_COMMAND_POOL)
+VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_cmd_pool, vk.base, VkCommandPool,
+                               VK_OBJECT_TYPE_COMMAND_POOL)
 VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_buffer, base, VkBuffer,
                                VK_OBJECT_TYPE_BUFFER)
 VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_buffer_view, base, VkBufferView,



More information about the mesa-commit mailing list