From: Matt Roper <matthew.d.roper@intel.com>
To: intel-gfx@lists.freedesktop.org
Subject: [PATCH 0/3] New DDB allocation algorithm
Date: Thu, 6 Dec 2018 09:09:41 -0800 [thread overview]
Message-ID: <20181206170944.16539-1-matthew.d.roper@intel.com> (raw)
Our current algorithm for partitioning a pipe's DDB allocation bases
plane allocations exclusively on the proportion of the pipe's data rate
that the plane contributes. This is a simple heuristic that works
pretty well in a lot of cases, but it breaks down when there's a large
difference in plane sizes (e.g., one full-screen plane and another
100x100 plane). When sizes are very different, using proportional data
rate can leave the smaller planes without enough DDB allocation to even
hit their level 0 watermarks (which means the whole configuration
becomes impossible), or can artificially limit how high of a watermark
level the smaller planes can achieve. These problems are most visible
on APL (due to the platform's smaller DDB in general).
A better algorithm is to calculate watermarks first, DDB second, and use
the block counts from the watermark calculation to give planes exactly
the allocation they need to hit the highest possible global watermark
level. Mahesh took a stab at implementing this algorithm about 1.5
years ago, but there were some bugs that led to regressions and nobody
had time to track them down. Our watermark code has evolved
significantly since that time, but the problems with the original
datarate-proportional algorithm remain.
Matt Roper (3):
drm/i915: Remove a very stale FIXME
drm/i915: Don't use DDB allocation when choosing gen9 watermark method
drm/i915: Switch to level-based DDB allocation algorithm
drivers/gpu/drm/i915/intel_pm.c | 356 ++++++++++++++--------------------------
1 file changed, 121 insertions(+), 235 deletions(-)
--
2.14.4
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next reply other threads:[~2018-12-06 17:10 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-06 17:09 Matt Roper [this message]
2018-12-06 17:09 ` [PATCH 1/3] drm/i915: Remove a very stale FIXME Matt Roper
2018-12-10 19:34 ` Ville Syrjälä
2018-12-06 17:09 ` [PATCH 2/3] drm/i915: Don't use DDB allocation when choosing gen9 watermark method Matt Roper
2018-12-06 17:09 ` [PATCH 3/3] drm/i915: Switch to level-based DDB allocation algorithm Matt Roper
2018-12-06 23:55 ` [PATCH 3/3] drm/i915: Switch to level-based DDB allocation algorithm (v2) Matt Roper
2018-12-10 20:16 ` Ville Syrjälä
2018-12-06 17:18 ` ✗ Fi.CI.CHECKPATCH: warning for New DDB allocation algorithm Patchwork
2018-12-06 17:19 ` ✗ Fi.CI.SPARSE: " Patchwork
2018-12-06 17:44 ` ✗ Fi.CI.BAT: failure " Patchwork
2018-12-07 0:23 ` ✗ Fi.CI.SPARSE: warning for New DDB allocation algorithm (rev2) Patchwork
2018-12-07 0:40 ` ✓ Fi.CI.BAT: success " Patchwork
2018-12-07 13:44 ` ✓ Fi.CI.IGT: " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181206170944.16539-1-matthew.d.roper@intel.com \
--to=matthew.d.roper@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox