mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-31 03:20:09 +01:00
freedreno: Synchronize batch and flush for staging resource
Staging blit downloads would wait on the src resource instead of the staging resource and didn't make sure to submit the blit batch first. Signed-off-by: Kristian H. Kristensen <hoegsberg@chromium.org> Reviewed-by: Rob Clark <robdclark@gmail.com>
This commit is contained in:
parent
64b8c86d37
commit
60c6778dda
1 changed files with 15 additions and 1 deletions
|
|
@ -498,7 +498,21 @@ fd_resource_transfer_map(struct pipe_context *pctx,
|
|||
|
||||
if (usage & PIPE_TRANSFER_READ) {
|
||||
fd_blit_to_staging(ctx, trans);
|
||||
fd_bo_cpu_prep(rsc->bo, ctx->pipe, DRM_FREEDRENO_PREP_READ);
|
||||
|
||||
struct fd_batch *batch = NULL;
|
||||
fd_batch_reference(&batch, staging_rsc->write_batch);
|
||||
|
||||
/* we can't fd_bo_cpu_prep() until the blit to staging
|
||||
* is submitted to kernel.. in that case write_batch
|
||||
* wouldn't be NULL yet:
|
||||
*/
|
||||
if (batch) {
|
||||
fd_batch_sync(batch);
|
||||
fd_batch_reference(&batch, NULL);
|
||||
}
|
||||
|
||||
fd_bo_cpu_prep(staging_rsc->bo, ctx->pipe,
|
||||
DRM_FREEDRENO_PREP_READ);
|
||||
}
|
||||
|
||||
buf = fd_bo_map(staging_rsc->bo);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue