All of lore.kernel.org
 help / color / mirror / Atom feed
From: Manfred G Kitzbichler <manfred.kitzbichler@gmail.com>
To: "Ville Syrjälä" <ville.syrjala@linux.intel.com>,
	"Matt Roper" <matthew.d.roper@intel.com>
Cc: simdev11@outlook.com, intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915: Pretend cursor is always on for ILK-style WM calculations
Date: Mon, 1 Feb 2016 14:43:39 +0000	[thread overview]
Message-ID: <56AF6F1B.2040003@gmail.com> (raw)
In-Reply-To: <20160201142222.GP23290@intel.com>

I can confirm that the proposed patch fixes the flicker problem on my 
system (openSuse Factory kernel 4.4.0-2-default), even though I had to 
slightly modify it to apply it to the current openSuse Factory sources).



On 02/01/2016 02:22 PM, Ville Syrjälä wrote:
> On Mon, Feb 01, 2016 at 01:26:14AM -0800, Matt Roper wrote:
>> Due to our lack of two-step watermark programming, our driver has
>> historically pretended that the cursor plane is always on for the
>> purpose of watermark calculations; this helps avoid serious flickering
>> when the cursor turns off/on (e.g., when the user moves the mouse
>> pointer to a different screen).  That workaround was accidentally
>> dropped as we started working toward atomic watermark updates.  Since we
>> still aren't quite there yet with two-stage updates, we need to
>> resurrect the workaround and treat the cursor as always active.
>>
>> Cc: simdev11@outlook.com
>> Cc: manfred.kitzbichler@gmail.com
>> Reported-by: simdev11@outlook.com
>> Reported-by: manfred.kitzbichler@gmail.com
>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93892
>> Fixes: 43d59eda1 ("drm/i915: Eliminate usage of plane_wm_parameters from ILK-style WM code (v2)")
>> Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
>> ---
>> I'm traveling at the moment and don't have any HW access, so this patch is
>> completely untested, but I think it will solve the issue being reported.
>>
>>   drivers/gpu/drm/i915/intel_pm.c | 15 ++++++++++-----
>>   1 file changed, 10 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
>> index 31bc4ea..a53c018 100644
>> --- a/drivers/gpu/drm/i915/intel_pm.c
>> +++ b/drivers/gpu/drm/i915/intel_pm.c
>> @@ -1799,16 +1799,21 @@ static uint32_t ilk_compute_cur_wm(const struct intel_crtc_state *cstate,
>>   				   const struct intel_plane_state *pstate,
>>   				   uint32_t mem_value)
>>   {
>> -	int cpp = pstate->base.fb ?
>> -		drm_format_plane_cpp(pstate->base.fb->pixel_format, 0) : 0;
>> +	/*
>> +	 * We treat the cursor plane as always-on for the purposes of watermark
>> +	 * calculation.  Until we have two-stage watermark programming merged,
>> +	 * this is necessary to avoid flickering.
>> +	 */
>> +	int cpp = 4;
>> +	int width = drm_rect_width(&pstate->dst) ?: 64;
> I don't think we can rely on that being correct when the plane is not
> visible. Also for the cursor, I'm not sure we should be even using the
> visible width of the plane when it's partially visible.
>
>>   
>> -	if (!cstate->base.active || !pstate->visible)
>> +	if (!cstate->base.active)
>>   		return 0;
>>   
>> +
>>   	return ilk_wm_method2(ilk_pipe_pixel_rate(cstate),
>>   			      cstate->base.adjusted_mode.crtc_htotal,
>> -			      drm_rect_width(&pstate->dst),
>> -			      cpp, mem_value);
>> +			      width, cpp, mem_value);
>>   }
>>   
>>   /* Only for WM_LP. */
>> -- 
>> 2.1.4
>>
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2016-02-01 14:43 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-01  9:26 [PATCH] drm/i915: Pretend cursor is always on for ILK-style WM calculations Matt Roper
2016-02-01  9:47 ` ✗ Fi.CI.BAT: failure for " Patchwork
2016-02-01 14:22 ` [PATCH] " Ville Syrjälä
2016-02-01 14:43   ` Manfred G Kitzbichler [this message]
2016-02-02  3:31   ` Matt Roper
2016-02-02 16:30     ` Ville Syrjälä
2016-02-03  6:06       ` [PATCH] drm/i915: Pretend cursor is always on for ILK-style WM calculations (v2) Matt Roper
2016-02-03 11:16         ` Ville Syrjälä
2016-02-03 14:05           ` Matt Roper
2016-02-11  8:50             ` Daniel Vetter
2016-02-11 15:12               ` Matt Roper
2016-02-08 19:05     ` Matt Roper
2016-02-09  9:36       ` Jani Nikula

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=56AF6F1B.2040003@gmail.com \
    --to=manfred.kitzbichler@gmail.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=matthew.d.roper@intel.com \
    --cc=simdev11@outlook.com \
    --cc=ville.syrjala@linux.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.