[Mesa-dev] [PATCH v3 00/25] panfrost: Rework the batch pipelining logic

Boris Brezillon boris.brezillon at collabora.com
Sun Sep 8 14:40:39 UTC 2019


On Thu,  5 Sep 2019 21:41:25 +0200
Boris Brezillon <boris.brezillon at collabora.com> wrote:

> Hello,
> 
> This is actually a v1 expect for patches 1 to 4, which have already
> been submitted separately.
> 
> The goal here is to rework the panfrost_job logic (renamed
> panfrost_batch at the beginning of the series) to avoid unnecessary
> flushes when we can.
> 
> The new solution is based on the VC4/V3D implementation.
> 
> Regards,
> 
> Boris
> 
> Boris Brezillon (25):
>   panfrost: s/job/batch/
>   panfrost: Pass a batch to panfrost_drm_submit_vs_fs_batch()
>   panfrost: Stop passing a ctx to functions being passed a batch
>   panfrost: Make transient allocation rely on the BO cache
>   panfrost: Convert ctx->{scratchpad,tiler_heap,tiler_dummy} to plain
>     BOs
>   panfrost: Get rid of unused panfrost_context fields
>   panfrost: Get rid of the now unused SLAB allocator
>   panfrost: Rename pan_bo_cache.c into pan_bo.c

Queued patches 1 to 8.

>   panfrost: Rework the panfrost_bo API
>   panfrost: Make sure the BO is 'ready' when picked from the cache
>   panfrost: Use a pipe_framebuffer_state as the batch key
>   panfrost: Get rid of the unused 'flush jobs accessing res' infra
>   panfrost: Allow testing if a specific batch is targeting a scanout FB
>   panfrost: Move the fence creation in panfrost_flush()
>   panfrost: Move the batch submission logic to panfrost_batch_submit()
>   panfrost: Pass a batch to panfrost_{allocate,upload}_transient()
>   panfrost: Pass a batch to functions emitting FB descs
>   panfrost: Use ctx->wallpaper_batch in panfrost_blit_wallpaper()
>   panfrost: Pass a batch to panfrost_set_value_job()
>   panfrost: Prepare things to avoid flushes on FB switch
>   panfrost: Add new helpers to describe job depencencies on BOs
>   panfrost: Delay payloads[].offset_start initialization
>   panfrost: Remove uneeded add_bo() in initialize_surface()
>   panfrost: Support batch pipelining
>   panfrost/ci: New tests are passing
> 
>  .../drivers/panfrost/ci/expected-failures.txt |   4 -
>  src/gallium/drivers/panfrost/meson.build      |   2 +-
>  src/gallium/drivers/panfrost/pan_allocate.c   |  95 +---
>  src/gallium/drivers/panfrost/pan_allocate.h   |  40 +-
>  src/gallium/drivers/panfrost/pan_assemble.c   |   3 +-
>  src/gallium/drivers/panfrost/pan_blend_cso.c  |   9 +-
>  src/gallium/drivers/panfrost/pan_blit.c       |   9 +-
>  src/gallium/drivers/panfrost/pan_bo.c         | 405 ++++++++++++++
>  src/gallium/drivers/panfrost/pan_bo.h         |  80 +++
>  src/gallium/drivers/panfrost/pan_bo_cache.c   | 167 ------
>  src/gallium/drivers/panfrost/pan_compute.c    |  12 +-
>  src/gallium/drivers/panfrost/pan_context.c    | 478 +++++++----------
>  src/gallium/drivers/panfrost/pan_context.h    |  51 +-
>  src/gallium/drivers/panfrost/pan_drm.c        | 266 +---------
>  src/gallium/drivers/panfrost/pan_fragment.c   |  32 +-
>  src/gallium/drivers/panfrost/pan_instancing.c |   9 +-
>  src/gallium/drivers/panfrost/pan_job.c        | 493 ++++++++++++------
>  src/gallium/drivers/panfrost/pan_job.h        |  97 ++--
>  src/gallium/drivers/panfrost/pan_mfbd.c       |  58 +--
>  src/gallium/drivers/panfrost/pan_resource.c   |  64 +--
>  src/gallium/drivers/panfrost/pan_resource.h   |   8 +-
>  src/gallium/drivers/panfrost/pan_scoreboard.c |  29 +-
>  src/gallium/drivers/panfrost/pan_screen.c     |   5 +-
>  src/gallium/drivers/panfrost/pan_screen.h     |  62 +--
>  src/gallium/drivers/panfrost/pan_sfbd.c       |  50 +-
>  src/gallium/drivers/panfrost/pan_varyings.c   |  13 +-
>  26 files changed, 1277 insertions(+), 1264 deletions(-)
>  create mode 100644 src/gallium/drivers/panfrost/pan_bo.c
>  create mode 100644 src/gallium/drivers/panfrost/pan_bo.h
>  delete mode 100644 src/gallium/drivers/panfrost/pan_bo_cache.c
> 



More information about the mesa-dev mailing list