panfrost: Allocate the polygon lists on-demand

Submitted by Boris Brezillon on Aug. 2, 2019, 10:12 a.m.

Details

Reviewer None
Submitted Aug. 2, 2019, 10:12 a.m.
Last Updated Aug. 2, 2019, 5:19 p.m.
Revision 2

Cover Letter(s)

Revision 1
      Hello,

This patch series is getting rid of the 64MB polygon-list allocation
that was done at context init time in favor of a per-job polygon-list
allocation allowing us to shrink the BO size considerably and thus
reduce memory consumption.

The first 8 patches are random cleanups. Most of them are needed to
get patch 9 working (patch 2, 3, 4, 5, 6 and 8), others are just things
I decided to get rid off along the way (patches 1 and 7).

Regards,

Boris

Alyssa Rosenzweig (1):
  panfrost: Allocate polygon lists on-demand

Boris Brezillon (8):
  panfrost: Get rid of ctx->job
  panfrost: Remove job from ctx->jobs at submission time
  panfrost: Delay FB descriptor allocation
  panfrost: Bail out early when new and current FB states are equal
  panfrost: Bail out early when doing a wallpaper blit
  panfrost: Don't emit a new FB desc when setting a new FB state
  panfrost: Get rid of the skippable param in attach_vt_framebuffer()
  panfrost: Handle the bo == NULL case in panfrost_bo_[un]reference()

 src/gallium/drivers/panfrost/pan_context.c    | 61 +++++++++++--------
 src/gallium/drivers/panfrost/pan_context.h    |  7 +--
 src/gallium/drivers/panfrost/pan_drm.c        |  2 +-
 src/gallium/drivers/panfrost/pan_job.c        | 40 +++++++++---
 src/gallium/drivers/panfrost/pan_job.h        |  6 ++
 src/gallium/drivers/panfrost/pan_resource.c   |  6 +-
 src/gallium/drivers/panfrost/pan_scoreboard.c |  5 +-
 7 files changed, 82 insertions(+), 45 deletions(-)
    
Revision 2
      Hello,

This patch series is getting rid of the 64MB polygon-list allocation
that was done at context init time in favor of a per-job polygon-list
allocation allowing us to shrink the BO size considerably and thus
reduce memory consumption.

The first 8 patches are random cleanups. Most of them are needed to
simplify patch 9 (patch 2, 3, 4, 5, 6 and 8), others are just things I
decided to get rid off because they were not used (patch 1 and 7).

Not much has changed in this v2 apart from the 1st patch (the one
removing the ctx->job field) being replaced by another one making this
field useful (to limit the number of hash lookups).

Regards,

Boris

Alyssa Rosenzweig (1):
  panfrost: Allocate polygon lists on-demand

Boris Brezillon (8):
  panfrost: Make ctx->job useful
  panfrost: Remove job from ctx->jobs at submission time
  panfrost: Delay FB descriptor allocation
  panfrost: Bail out early when new and current FB states are equal
  panfrost: Bail out early when doing a wallpaper blit
  panfrost: Don't emit a new FB desc when setting a new FB state
  panfrost: Get rid of the skippable param in attach_vt_framebuffer()
  panfrost: Handle the bo == NULL case in panfrost_bo_[un]reference()

 src/gallium/drivers/panfrost/pan_context.c    | 66 +++++++++++--------
 src/gallium/drivers/panfrost/pan_context.h    |  4 --
 src/gallium/drivers/panfrost/pan_drm.c        |  2 +-
 src/gallium/drivers/panfrost/pan_job.c        | 51 +++++++++++++-
 src/gallium/drivers/panfrost/pan_job.h        |  6 ++
 src/gallium/drivers/panfrost/pan_resource.c   |  6 +-
 src/gallium/drivers/panfrost/pan_scoreboard.c |  5 +-
 7 files changed, 104 insertions(+), 36 deletions(-)
    

Revisions