lavapipe: use common command buffer status code.
authorDave Airlie <airlied@redhat.com>
Wed, 8 Jun 2022 00:46:43 +0000 (10:46 +1000)
committerMarge Bot <emma+marge@anholt.net>
Fri, 11 Nov 2022 05:01:24 +0000 (05:01 +0000)
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16922>

src/gallium/frontends/lavapipe/lvp_cmd_buffer.c
src/gallium/frontends/lavapipe/lvp_private.h

index 3d91357..81d2b77 100644 (file)
@@ -56,7 +56,6 @@ lvp_create_cmd_buffer(struct vk_command_pool *pool,
 
    cmd_buffer->device = device;
 
-   cmd_buffer->status = LVP_CMD_BUFFER_STATUS_INITIAL;
    *cmd_buffer_out = &cmd_buffer->vk;
 
    return VK_SUCCESS;
@@ -66,12 +65,7 @@ static void
 lvp_reset_cmd_buffer(struct vk_command_buffer *vk_cmd_buffer,
                      UNUSED VkCommandBufferResetFlags flags)
 {
-   struct lvp_cmd_buffer *cmd_buffer =
-      container_of(vk_cmd_buffer, struct lvp_cmd_buffer, vk);
-
-   vk_command_buffer_reset(&cmd_buffer->vk);
-
-   cmd_buffer->status = LVP_CMD_BUFFER_STATUS_INITIAL;
+   vk_command_buffer_reset(vk_cmd_buffer);
 }
 
 const struct vk_command_buffer_ops lvp_cmd_buffer_ops = {
@@ -85,9 +79,9 @@ VKAPI_ATTR VkResult VKAPI_CALL lvp_BeginCommandBuffer(
    const VkCommandBufferBeginInfo*             pBeginInfo)
 {
    LVP_FROM_HANDLE(lvp_cmd_buffer, cmd_buffer, commandBuffer);
-   if (cmd_buffer->status != LVP_CMD_BUFFER_STATUS_INITIAL)
-      lvp_reset_cmd_buffer(&cmd_buffer->vk, 0);
-   cmd_buffer->status = LVP_CMD_BUFFER_STATUS_RECORDING;
+
+   vk_command_buffer_begin(&cmd_buffer->vk, pBeginInfo);
+
    return VK_SUCCESS;
 }
 
@@ -95,13 +89,8 @@ VKAPI_ATTR VkResult VKAPI_CALL lvp_EndCommandBuffer(
    VkCommandBuffer                             commandBuffer)
 {
    LVP_FROM_HANDLE(lvp_cmd_buffer, cmd_buffer, commandBuffer);
-   VkResult result = vk_command_buffer_get_record_result(&cmd_buffer->vk);
-
-   cmd_buffer->status = result == VK_SUCCESS ?
-      LVP_CMD_BUFFER_STATUS_EXECUTABLE :
-      LVP_CMD_BUFFER_STATUS_INVALID;
 
-   return result;
+   return vk_command_buffer_end(&cmd_buffer->vk);
 }
 
 static void
index b6904df..96e32f1 100644 (file)
@@ -473,21 +473,11 @@ struct lvp_query_pool {
    struct pipe_query *queries[0];
 };
 
-enum lvp_cmd_buffer_status {
-   LVP_CMD_BUFFER_STATUS_INVALID,
-   LVP_CMD_BUFFER_STATUS_INITIAL,
-   LVP_CMD_BUFFER_STATUS_RECORDING,
-   LVP_CMD_BUFFER_STATUS_EXECUTABLE,
-   LVP_CMD_BUFFER_STATUS_PENDING,
-};
-
 struct lvp_cmd_buffer {
    struct vk_command_buffer vk;
 
    struct lvp_device *                          device;
 
-   enum lvp_cmd_buffer_status status;
-
    uint8_t push_constants[MAX_PUSH_CONSTANTS_SIZE];
 };