/* Preallocate the main pool, since every batch has at least one job
* structure so it will be used */
- batch->pool = panfrost_create_pool(batch, dev, 0, true);
+ panfrost_pool_init(&batch->pool, batch, dev, 0, true);
/* Don't preallocate the invisible pool, since not every batch will use
* the pre-allocation, particularly if the varyings are larger than the
* preallocation and a reallocation is needed after anyway. */
- batch->invisible_pool =
- panfrost_create_pool(batch, dev, PAN_BO_INVISIBLE, false);
+ panfrost_pool_init(&batch->invisible_pool, batch, dev, PAN_BO_INVISIBLE, false);
panfrost_batch_add_fbo_bos(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) {
.flags = 0x0,
.width = MALI_POSITIVE(batch->key.width),
.height = MALI_POSITIVE(batch->key.height),
- .tiler_heap_meta = panfrost_pool_upload(&batch->pool, &tiler_heap_meta, sizeof(tiler_heap_meta)),
+ .tiler_heap_meta = panfrost_pool_upload_aligned(&batch->pool, &tiler_heap_meta, sizeof(tiler_heap_meta), 64)
};
- batch->tiler_meta = panfrost_pool_upload(&batch->pool, &tiler_meta, sizeof(tiler_meta));
+ batch->tiler_meta = panfrost_pool_upload_aligned(&batch->pool, &tiler_meta, sizeof(tiler_meta), 64);
return batch->tiler_meta;
}
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))