We are about to add a batch queue to keep track of submission order. Let's rename the existing batches hash table (which is used to get the batch attached to an FBO) into fbo_to_batch to avoid confusion.
Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com> --- src/gallium/drivers/panfrost/pan_context.c | 2 +- src/gallium/drivers/panfrost/pan_context.h | 2 +- src/gallium/drivers/panfrost/pan_job.c | 21 +++++++++++---------- src/gallium/drivers/panfrost/pan_resource.c | 16 ++++++++-------- 4 files changed, 21 insertions(+), 20 deletions(-) diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c index 07bafad58a00..0330b5852676 100644 --- a/src/gallium/drivers/panfrost/pan_context.c +++ b/src/gallium/drivers/panfrost/pan_context.c @@ -1355,7 +1355,7 @@ panfrost_flush( */ if (fence) { util_dynarray_init(&fences, NULL); - hash_table_foreach(ctx->batches, hentry) { + hash_table_foreach(ctx->fbo_to_batch, hentry) { struct panfrost_batch *batch = hentry->data; panfrost_batch_fence_reference(batch->out_sync); diff --git a/src/gallium/drivers/panfrost/pan_context.h b/src/gallium/drivers/panfrost/pan_context.h index d50ed57d5d8a..f13967f51b46 100644 --- a/src/gallium/drivers/panfrost/pan_context.h +++ b/src/gallium/drivers/panfrost/pan_context.h @@ -112,7 +112,7 @@ struct panfrost_context { /* Bound job batch and map of panfrost_batch_key to job batches */ struct panfrost_batch *batch; - struct hash_table *batches; + struct hash_table *fbo_to_batch; /* panfrost_bo -> panfrost_bo_access */ struct hash_table *accessed_bos; diff --git a/src/gallium/drivers/panfrost/pan_job.c b/src/gallium/drivers/panfrost/pan_job.c index a56f4044fda0..45f9d9d24b41 100644 --- a/src/gallium/drivers/panfrost/pan_job.c +++ b/src/gallium/drivers/panfrost/pan_job.c @@ -132,9 +132,9 @@ panfrost_freeze_batch(struct panfrost_batch *batch) * matches. This way, next draws/clears targeting this FBO will trigger * the creation of a new batch. */ - entry = _mesa_hash_table_search(ctx->batches, &batch->key); + entry = _mesa_hash_table_search(ctx->fbo_to_batch, &batch->key); if (entry && entry->data == batch) - _mesa_hash_table_remove(ctx->batches, entry); + _mesa_hash_table_remove(ctx->fbo_to_batch, entry); /* If this is the bound batch, the panfrost_context parameters are * relevant so submitting it invalidates those parameters, but if it's @@ -153,7 +153,7 @@ static bool panfrost_batch_is_frozen(struct panfrost_batch *batch) struct panfrost_context *ctx = batch->ctx; struct hash_entry *entry; - entry = _mesa_hash_table_search(ctx->batches, &batch->key); + entry = _mesa_hash_table_search(ctx->fbo_to_batch, &batch->key); if (entry && entry->data == batch) return false; @@ -248,7 +248,8 @@ panfrost_get_batch(struct panfrost_context *ctx, const struct pipe_framebuffer_state *key) { /* Lookup the job first */ - struct hash_entry *entry = _mesa_hash_table_search(ctx->batches, key); + struct hash_entry *entry = _mesa_hash_table_search(ctx->fbo_to_batch, + key); if (entry) return entry->data; @@ -258,7 +259,7 @@ panfrost_get_batch(struct panfrost_context *ctx, struct panfrost_batch *batch = panfrost_create_batch(ctx, key); /* Save the created job */ - _mesa_hash_table_insert(ctx->batches, &batch->key, batch); + _mesa_hash_table_insert(ctx->fbo_to_batch, &batch->key, batch); return batch; } @@ -915,7 +916,7 @@ panfrost_flush_all_batches(struct panfrost_context *ctx, bool wait) util_dynarray_init(&syncobjs, NULL); } - hash_table_foreach(ctx->batches, hentry) { + hash_table_foreach(ctx->fbo_to_batch, hentry) { struct panfrost_batch *batch = hentry->data; assert(batch); @@ -931,7 +932,7 @@ panfrost_flush_all_batches(struct panfrost_context *ctx, bool wait) panfrost_batch_submit(batch); } - assert(!ctx->batches->entries); + assert(!ctx->fbo_to_batch->entries); /* Collect batch fences before returning */ panfrost_gc_fences(ctx); @@ -1183,9 +1184,9 @@ panfrost_batch_is_scanout(struct panfrost_batch *batch) void panfrost_batch_init(struct panfrost_context *ctx) { - ctx->batches = _mesa_hash_table_create(ctx, - panfrost_batch_hash, - panfrost_batch_compare); + ctx->fbo_to_batch = _mesa_hash_table_create(ctx, + panfrost_batch_hash, + panfrost_batch_compare); ctx->accessed_bos = _mesa_hash_table_create(ctx, _mesa_hash_pointer, _mesa_key_pointer_equal); } diff --git a/src/gallium/drivers/panfrost/pan_resource.c b/src/gallium/drivers/panfrost/pan_resource.c index d59529ff15b7..49088618ae4b 100644 --- a/src/gallium/drivers/panfrost/pan_resource.c +++ b/src/gallium/drivers/panfrost/pan_resource.c @@ -592,11 +592,11 @@ panfrost_transfer_map(struct pipe_context *pctx, /* No flush for writes to uninitialized */ } else if (!(usage & PIPE_TRANSFER_UNSYNCHRONIZED)) { if (usage & PIPE_TRANSFER_WRITE) { - panfrost_flush_batches_accessing_bo(ctx, bo, PAN_BO_GPU_ACCESS_RW); - panfrost_bo_wait(bo, INT64_MAX, PAN_BO_GPU_ACCESS_RW); + panfrost_flush_batches_accessing_bo(ctx, bo, PAN_BO_ACCESS_RW); + panfrost_bo_wait(bo, INT64_MAX, PAN_BO_ACCESS_RW); } else if (usage & PIPE_TRANSFER_READ) { - panfrost_flush_batches_accessing_bo(ctx, bo, PAN_BO_GPU_ACCESS_WRITE); - panfrost_bo_wait(bo, INT64_MAX, PAN_BO_GPU_ACCESS_WRITE); + panfrost_flush_batches_accessing_bo(ctx, bo, PAN_BO_ACCESS_WRITE); + panfrost_bo_wait(bo, INT64_MAX, PAN_BO_ACCESS_WRITE); } else { /* Why are you even mapping?! */ } @@ -746,8 +746,8 @@ panfrost_generate_mipmap( * reorder-type optimizations in place. But for now prioritize * correctness. */ - panfrost_flush_batches_accessing_bo(ctx, rsrc->bo, PAN_BO_GPU_ACCESS_RW); - panfrost_bo_wait(rsrc->bo, INT64_MAX, PAN_BO_GPU_ACCESS_RW); + panfrost_flush_batches_accessing_bo(ctx, rsrc->bo, PAN_BO_ACCESS_RW); + panfrost_bo_wait(rsrc->bo, INT64_MAX, PAN_BO_ACCESS_RW); /* We've flushed the original buffer if needed, now trigger a blit */ @@ -761,8 +761,8 @@ panfrost_generate_mipmap( * the state tracker deal with it. */ if (blit_res) { - panfrost_flush_batches_accessing_bo(ctx, rsrc->bo, PAN_BO_GPU_ACCESS_WRITE); - panfrost_bo_wait(rsrc->bo, INT64_MAX, PAN_BO_GPU_ACCESS_WRITE); + panfrost_flush_batches_accessing_bo(ctx, rsrc->bo, PAN_BO_ACCESS_WRITE); + panfrost_bo_wait(rsrc->bo, INT64_MAX, PAN_BO_ACCESS_WRITE); } return blit_res; -- 2.21.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev