X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Fpanfrost%2Fpan_job.c;h=7db9ce936a5b6d5fe4a430d2dfb37d5115854fe3;hb=d87ab72ce95dce2d5b0e5116b66e8df6dc3f51c5;hp=43aee264b3c394d99eb8abffe719ba2382f4ff3f;hpb=4047c691bff192fdcac20a16fb9a4f4071de4af9;p=mesa.git diff --git a/src/gallium/drivers/panfrost/pan_job.c b/src/gallium/drivers/panfrost/pan_job.c index 43aee264b3c..7db9ce936a5 100644 --- a/src/gallium/drivers/panfrost/pan_job.c +++ b/src/gallium/drivers/panfrost/pan_job.c @@ -175,11 +175,8 @@ panfrost_free_batch(struct panfrost_batch *batch) hash_table_foreach(batch->bos, entry) panfrost_bo_unreference((struct panfrost_bo *)entry->key); - hash_table_foreach(batch->pool.bos, entry) - panfrost_bo_unreference((struct panfrost_bo *)entry->key); - - hash_table_foreach(batch->invisible_pool.bos, entry) - panfrost_bo_unreference((struct panfrost_bo *)entry->key); + panfrost_pool_cleanup(&batch->pool); + panfrost_pool_cleanup(&batch->invisible_pool); util_dynarray_foreach(&batch->dependencies, struct panfrost_batch_fence *, dep) { @@ -980,17 +977,19 @@ panfrost_batch_submit_ioctl(struct panfrost_batch *batch, submit.jc = first_job_desc; submit.requirements = reqs; - bo_handles = calloc(batch->pool.bos->entries + batch->invisible_pool.bos->entries + batch->bos->entries + 1, sizeof(*bo_handles)); + bo_handles = calloc(panfrost_pool_num_bos(&batch->pool) + + panfrost_pool_num_bos(&batch->invisible_pool) + + batch->bos->entries + 1, + sizeof(*bo_handles)); assert(bo_handles); hash_table_foreach(batch->bos, entry) panfrost_batch_record_bo(entry, bo_handles, submit.bo_handle_count++); - hash_table_foreach(batch->pool.bos, entry) - panfrost_batch_record_bo(entry, bo_handles, submit.bo_handle_count++); - - hash_table_foreach(batch->invisible_pool.bos, entry) - panfrost_batch_record_bo(entry, bo_handles, submit.bo_handle_count++); + panfrost_pool_get_bo_handles(&batch->pool, bo_handles + submit.bo_handle_count); + submit.bo_handle_count += panfrost_pool_num_bos(&batch->pool); + panfrost_pool_get_bo_handles(&batch->invisible_pool, bo_handles + submit.bo_handle_count); + submit.bo_handle_count += panfrost_pool_num_bos(&batch->invisible_pool); /* Used by all tiler jobs (XXX: skip for compute-only) */ if (!(reqs & PANFROST_JD_REQ_FS))