[Mesa-dev] [PATCH 00/10] panfrost: Try to make BO handling more consistent
Boris Brezillon
boris.brezillon at collabora.com
Tue Jul 2 13:23:43 UTC 2019
Hello,
This patch series is an attempt at making memory allocation more
consistent by implementing SLAB pool allocation around the BO allocation
logic.
Note that my initial goal was to pass referenced BOs to the kernel
driver, but I've decided to clean things up along the way (just let me
know if you think it was a mistake).
The first 4 patches are simple cleanups and could have been sent
separately, but it's easier for me to post everything as a single series
to avoid dependency issues.
Patch 5 might be a bit more controversial, as I move some of the
fields that were in panfrost_bo to panfrost_resource. The rationale here
being that other drivers (vc4, freedreno, ...) seem to keep _bo objects
as simple memory backing objs that do not contain any meta data
describing the buffer content. This approach allows us to re-use those
objects to allocate anything, not only texture or FB resources. Again,
if you think that's a wrong decision, let me know.
Patch 6 is in the same vein, it makes BO import/export functions more
generic so they can be used for !winsys bufs.
Patches 7-9 are here to re-use the BO creation/destruction logic as much
as possible instead of duplicating the code or having convoluted code
doing panfrost_bo <-> panfrost_memory conversions.
And finally, patch 10 is making use of all the changes described above
to pass all referenced BOs to the kernel driver when a job is submitted,
thus making sure the job will wait for all resources to be ready before
being scheduled.
I know there's a lot going on in the panfrost area right now, and some
of what I'm proposing here might be irrelevant or might have to be
ported on top of other changes (which is fine). Let me know if that's
the case.
Regards,
Boris
Boris Brezillon (10):
panfrost: Move scanout res creation out of panfrost_resource_create()
panfrost: Get rid of the panfrost_driver abstraction leftovers
panfrost: Get rid of the "free imported BO" logic
panfrost: Stop exposing internal panfrost_drm_*() functions
panfrost: Move BO meta-data out of panfrost_bo
panfrost: Avoid passing winsys handles to import/export BO funcs
panfrost: Move the mmap BO logic out of panfrost_drm_import_bo()
panfrost: Add the panfrost_drm_{create,release}_bo() helpers
panfrost: Make SLAB pool creation rely on BO helpers
panfrost: Pass referenced BOs to the SUBMIT ioctls
src/gallium/drivers/panfrost/pan_allocate.c | 21 +-
src/gallium/drivers/panfrost/pan_allocate.h | 22 +-
src/gallium/drivers/panfrost/pan_context.c | 40 +--
src/gallium/drivers/panfrost/pan_drm.c | 263 +++++++++---------
src/gallium/drivers/panfrost/pan_drm.h | 32 ---
src/gallium/drivers/panfrost/pan_fragment.c | 2 +-
src/gallium/drivers/panfrost/pan_mfbd.c | 24 +-
src/gallium/drivers/panfrost/pan_resource.c | 242 ++++++++--------
src/gallium/drivers/panfrost/pan_resource.h | 42 +--
src/gallium/drivers/panfrost/pan_scoreboard.c | 2 +-
src/gallium/drivers/panfrost/pan_screen.c | 2 -
src/gallium/drivers/panfrost/pan_screen.h | 17 +-
src/gallium/drivers/panfrost/pan_sfbd.c | 8 +-
13 files changed, 333 insertions(+), 384 deletions(-)
delete mode 100644 src/gallium/drivers/panfrost/pan_drm.h
--
2.21.0
More information about the mesa-dev
mailing list