From: "Kumar, Shobhit" <shobhit.kumar@linux.intel.com>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: Kalyan Kondapally <kalyan.kondapally@intel.com>,
intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915/skl: Increase ddb blocks to support large cursor sizes
Date: Thu, 18 Feb 2016 13:58:39 +0530 [thread overview]
Message-ID: <56C580B7.30008@linux.intel.com> (raw)
In-Reply-To: <56C2F692.7080500@linux.intel.com>
On 02/16/2016 03:44 PM, Kumar, Shobhit wrote:
> On 01/05/2016 03:44 PM, Daniel Vetter wrote:
>> On Mon, Jan 04, 2016 at 07:18:26PM +0530, Kumar, Shobhit wrote:
>>> On 12/23/2015 08:22 AM, Kumar, Shobhit wrote:
>>>> On 12/21/2015 05:39 PM, Daniel Vetter wrote:
>>>>> On Fri, Dec 18, 2015 at 07:24:19AM -0800, Matt Roper wrote:
>>>>>> On Fri, Dec 18, 2015 at 07:14:17AM -0800, Matt Roper wrote:
>>>>>>> On Fri, Dec 18, 2015 at 05:10:12PM +0200, Ville Syrjälä wrote:
>>>>>>>> On Fri, Dec 18, 2015 at 06:58:58AM -0800, Matt Roper wrote:
>>>>>>>>> On Fri, Dec 18, 2015 at 12:35:47PM +0200, Ville Syrjälä wrote:
>>>>>>>>>> On Wed, Dec 16, 2015 at 07:06:20PM -0800, Radhakrishna Sripada
>>>>>>>>>> wrote:
>>>>>>>>>>> Original value of 32 blocks is not sufficient when using cursor
>>>>>>>>>>> size of
>>>>>>>>>>> 256x256 causing FIFO underruns when the reworked wm
>>>>>>>>>>> caluclations in
>>>>>>>>>>>
>>>>>>>>>>> commit 024c9045221fe45482863c47c4b4c47d37f97cbf
>>>>>>>>>>> Author: Matt Roper <matthew.d.roper@intel.com>
>>>>>>>>>>> Date: Thu Sep 24 15:53:11 2015 -0700
>>>>>>>>>>>
>>>>>>>>>>> drm/i915/skl: Eliminate usage of pipe_wm_parameters from
>>>>>>>>>>> SKL-style WM (v4)
>>>>>>>>>>
>>>>>>>>>> Well that commit is obviously incorrect. It's now using the
>>>>>>>>>> pipe src
>>>>>>>>>> width as the plane width for all planes.
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Yeah, we already noted that bug in another email thread, but
>>>>>>>>> decided
>>>>>>>>> that it was unrelated to the problems Radhakrishna is facing.
>>>>>>>>> Radhakrishna is only using a cursor (which doesn't use that buggy
>>>>>>>>> function)
>>>>>>>>
>>>>>>>> Pop quiz: what does it use then?
>>>>>>>
>>>>>>> All non-cursor planes (i.e., primary+sprite). Cursors use a
>>>>>>> fixed DDB
>>>>>>> allocation (currently 32 blocks as suggested by bspec, but
>>>>>>> Radhakrishna's testing has found this to be too small, so his patch
>>>>>>> here
>>>>>>> is bumping that number up.
>>>>>>>
>>>>>>
>>>>>> To elaborate on this some more, we have some suspicions about why the
>>>>>> bspec-suggested 32 blocks might not be enough. There's some new
>>>>>> workaround information in the bspec about sometimes needing to
>>>>>> disable
>>>>>> the system agent (SAGV) on non-BXT gen9, depending on the
>>>>>> configuration
>>>>>> and that's not something that's been implemented in our driver
>>>>>> code yet.
>>>>>> There's also another new workaround that checks raw system memory
>>>>>> bandwidth and adjusts watermark programming that hasn't been
>>>>>> implemented
>>>>>> yet either. It could be that one of those two missing workarounds is
>>>>>> the true culprit, but Radhakrishna's patch here looks like a
>>>>>> reasonable
>>>>>> short-term workaround; my main worry is that if he needs to bump the
>>>>>> hardcoded 32 up to to 52 for the single pipe case, he might also
>>>>>> need to
>>>>>> bump the hardcoded 8 up as well for the multi-pipe case; I don't
>>>>>> think
>>>>>> anyone has tested that yet (and this seems to be a SKL-specific
>>>>>> problem,
>>>>>> so I can't reproduce it on my BXT).
>>>>>
>>>>> This needs at least a very big comment that we're just hacking around
>>>>> with
>>>>> duct-tape. Also allocating DDB shouldn't matter for correctness, as
>>>>> long
>>>>> as we compute the WM values correctly. I wonder how this fixes
>>>>> anything
>>>>> really (except making it a bit harder to hit perhaps due to the
>>>>> enlarged
>>>>> buffering it affords for the cursor).
>>>>
>>>> Agree Daniel, but in our detailed testing this is found to have fixed
>>>> reliably all known flickers. I recommend to have a detailed comment and
>>>> *put* the duct-tape. I can have a rerun of detailed tests again to
>>>> ensure that its indeed fixing everything.
>>>>
>>>>>
>>>>> Imo better to just implement the other workarounds first, then see
>>>>> what's
>>>>> left.
>>>>
>>>> I know there are few known workarounds pending. Lets continue
>>>> implementing them and more. But with Matt's patch not fixing the issue,
>>>> lets take this as an immediate short term fix and come back to remove
>>>> the duct-tape when we have correct fix.
>>>
>>> I experimented and found that reverting this patch but having arbitrated
>>> display bandwidth based workaround to increase latency values for all
>>> levels
>>> is fixing the flicker. Will be working on this along with Mahesh, unless
>>> Matt, you have a patch for this already.
>>
>> Excellent, really happy that we can go ahead with a reasonable looking
>> fix
>> right away here.
>
> Daniel, we implemented the memory latency increase for quick test and it
> worked, but in reality that situation was not hitting even with a QHD
> eDP and 4k@60 DP with a two channel 1867 MHz memory. So this was not a
> solution.
>
> There have been another patch series to try to fix this that I posted -
> https://patchwork.freedesktop.org/patch/71758/
>
> and we have been trying with lot of Matt's patches for watermark, and
> along with what I posted but all of this has not yielded perfect under
> run error free results though improved a little.
>
> But cursor DDB bump for both internal and external pipe is resulting in
> complete fix of the problem. As of now that is the only solution I can
> think off and has been extensively tested with QHD eDP/ 19x10 eDP + 4k
> DP/HDMI and working reliably. I think we should be dynamically
> allocating cursor DDB as well so that it will increase the DDB if cursor
> size is big.
>
> But for now proposal is to statically increase these cursor DDB to 52
> for single pipe as in this patch and additionally have it 32 in case of
> multi pipe scenario. Once we have all water mark thingy sorted out, we
> can come back and re-look at this.
Daniel, any comments or suggestions ?
Regards
Shobhit
>
> Regards
> Shobhit
>
>
>>
>> Thanks, Daniel
>>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2016-02-18 8:28 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-17 3:06 [PATCH] drm/i915/skl: Increase ddb blocks to support large cursor sizes Radhakrishna Sripada
2015-12-18 10:01 ` Jani Nikula
2015-12-18 10:35 ` Ville Syrjälä
2015-12-18 14:58 ` Matt Roper
2015-12-18 15:10 ` Ville Syrjälä
2015-12-18 15:14 ` Matt Roper
2015-12-18 15:24 ` Matt Roper
2015-12-21 12:09 ` Daniel Vetter
2015-12-23 2:52 ` Kumar, Shobhit
2016-01-04 13:48 ` Kumar, Shobhit
2016-01-05 10:14 ` Daniel Vetter
2016-02-16 10:14 ` Kumar, Shobhit
2016-02-18 8:28 ` Kumar, Shobhit [this message]
2015-12-18 15:34 ` Ville Syrjälä
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=56C580B7.30008@linux.intel.com \
--to=shobhit.kumar@linux.intel.com \
--cc=daniel@ffwll.ch \
--cc=intel-gfx@lists.freedesktop.org \
--cc=kalyan.kondapally@intel.com \
/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;
as well as URLs for NNTP newsgroup(s).