zink: move cmdbuf-resetting into a helper
authorErik Faye-Lund <erik.faye-lund@collabora.com>
Mon, 25 Mar 2019 13:59:44 +0000 (14:59 +0100)
committerErik Faye-Lund <erik.faye-lund@collabora.com>
Mon, 28 Oct 2019 08:51:44 +0000 (08:51 +0000)
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
src/gallium/drivers/zink/zink_cmdbuf.c

index 8d868558dfbe6b2f37ea706dfd9a735b38f76082..df55b2377f544e1fb003345cbcbc9a265c7b4037 100644 (file)
@@ -6,16 +6,22 @@
 
 #include "util/u_debug.h"
 
+static void
+reset_cmdbuf(struct zink_screen *screen, struct zink_cmdbuf *cmdbuf)
+{
+   // cmdbuf hasn't been submitted before
+   if (!cmdbuf->fence)
+      return;
+
+   zink_fence_finish(screen, cmdbuf->fence, PIPE_TIMEOUT_INFINITE);
+   zink_fence_reference(screen, &cmdbuf->fence, NULL);
+}
+
 struct zink_cmdbuf *
 zink_start_cmdbuf(struct zink_context *ctx)
 {
    struct zink_cmdbuf *cmdbuf = &ctx->cmdbuf;
-
-   if (cmdbuf->fence) {
-      struct zink_screen *screen = zink_screen(ctx->base.screen);
-      zink_fence_finish(screen, cmdbuf->fence, PIPE_TIMEOUT_INFINITE);
-      zink_fence_reference(screen, &cmdbuf->fence, NULL);
-   }
+   reset_cmdbuf(zink_screen(ctx->base.screen), cmdbuf);
 
    VkCommandBufferBeginInfo cbbi = {};
    cbbi.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;