[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