diff options
author | Erik Faye-Lund <[email protected]> | 2019-07-10 12:40:01 +0200 |
---|---|---|
committer | Erik Faye-Lund <[email protected]> | 2019-10-28 08:51:45 +0000 |
commit | 03efb6dd27b9ad8aafc8d06a4b8bd338fa850f89 (patch) | |
tree | c4074a22b85cf71ccc885409df2a36a31b29b5b7 /src/gallium/drivers/zink/zink_batch.c | |
parent | 8edd357795bf71c98bca73de34d962ddbaacccc4 (diff) |
zink: cleanup zink_end_batch
This inlines submit_cmdbuf into zink_end_batch, the only place it's
used. This makes the code a bit more straight-forward to read.
Acked-by: Jordan Justen <[email protected]>
Diffstat (limited to 'src/gallium/drivers/zink/zink_batch.c')
-rw-r--r-- | src/gallium/drivers/zink/zink_batch.c | 37 |
1 files changed, 14 insertions, 23 deletions
diff --git a/src/gallium/drivers/zink/zink_batch.c b/src/gallium/drivers/zink/zink_batch.c index 474421081bf..1f87e874aaf 100644 --- a/src/gallium/drivers/zink/zink_batch.c +++ b/src/gallium/drivers/zink/zink_batch.c @@ -60,9 +60,19 @@ zink_start_batch(struct zink_context *ctx, struct zink_batch *batch) debug_printf("vkBeginCommandBuffer failed\n"); } -static bool -submit_cmdbuf(struct zink_context *ctx, VkCommandBuffer cmdbuf, VkFence fence) +void +zink_end_batch(struct zink_context *ctx, struct zink_batch *batch) { + if (vkEndCommandBuffer(batch->cmdbuf) != VK_SUCCESS) { + debug_printf("vkEndCommandBuffer failed\n"); + return; + } + + assert(batch->fence == NULL); + batch->fence = zink_create_fence(ctx->base.screen); + if (!batch->fence) + return; + VkPipelineStageFlags wait = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT; VkSubmitInfo si = {}; @@ -73,29 +83,10 @@ submit_cmdbuf(struct zink_context *ctx, VkCommandBuffer cmdbuf, VkFence fence) si.pSignalSemaphores = NULL; si.pWaitDstStageMask = &wait; si.commandBufferCount = 1; - si.pCommandBuffers = &cmdbuf; + si.pCommandBuffers = &batch->cmdbuf; - if (vkQueueSubmit(ctx->queue, 1, &si, fence) != VK_SUCCESS) { + if (vkQueueSubmit(ctx->queue, 1, &si, batch->fence->fence) != VK_SUCCESS) debug_printf("vkQueueSubmit failed\n"); - return false; - } - - return true; -} - -void -zink_end_batch(struct zink_context *ctx, struct zink_batch *batch) -{ - if (vkEndCommandBuffer(batch->cmdbuf) != VK_SUCCESS) { - debug_printf("vkEndCommandBuffer failed\n"); - return; - } - - assert(batch->fence == NULL); - batch->fence = zink_create_fence(ctx->base.screen); - if (!batch->fence || - !submit_cmdbuf(ctx, batch->cmdbuf, batch->fence->fence)) - return; } void |