Browse Source

zink: wait for transfer when reading

TODO: this could really benefit from a separate transfer-queue, I think.
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
tags/19.3-branchpoint
Erik Faye-Lund 6 years ago
parent
commit
97f4827e2e
1 changed files with 9 additions and 0 deletions
  1. 9
    0
      src/gallium/drivers/zink/zink_resource.c

+ 9
- 0
src/gallium/drivers/zink/zink_resource.c View File

@@ -456,6 +456,15 @@ zink_transfer_map(struct pipe_context *pctx,
false);
if (ret == false)
return NULL;

/* need to wait for rendering to finish */
struct pipe_fence_handle *fence = NULL;
pctx->flush(pctx, &fence, PIPE_FLUSH_HINT_FINISH);
if (fence) {
pctx->screen->fence_finish(pctx->screen, NULL, fence,
PIPE_TIMEOUT_INFINITE);
pctx->screen->fence_reference(pctx->screen, &fence, NULL);
}
}

VkResult result = vkMapMemory(screen->dev, staging_res->mem,

Loading…
Cancel
Save