From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
To: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH v2 2/9] drm/i915: Kill off intel_crtc->atomic.wait_vblank, v3.
Date: Tue, 9 Feb 2016 12:07:01 +0100 [thread overview]
Message-ID: <56B9C855.6020505@linux.intel.com> (raw)
In-Reply-To: <20160209104224.GH23290@intel.com>
Op 09-02-16 om 11:42 schreef Ville Syrjälä:
> On Tue, Feb 09, 2016 at 11:27:44AM +0100, Maarten Lankhorst wrote:
>> Hey,
>>
>> Op 13-01-16 om 13:58 schreef Ville Syrjälä:
>>> On Mon, Jan 11, 2016 at 01:27:42PM +0100, Maarten Lankhorst wrote:
>>>> Currently we perform our own wait in post_plane_update,
>>>> but the atomic core performs another one in wait_for_vblanks.
>>>> This means that 2 vblanks are done when a fb is changed,
>>>> which is a bit overkill.
>>>>
>>>> Merge them by creating a helper function that takes a crtc mask
>>>> for the planes to wait on.
>>>>
>>>> The broadwell vblank workaround may look gone entirely but this is
>>>> not the case. pipe_config->wm_changed is set to true
>>>> when any plane is turned on, which forces a vblank wait.
>>> Still NAK, because you just removed the comment entirely.
>> I may have removed the comment but there will always be an unconditional wait because of the wm changes.
>> In some future commit I will rework do_intel_finish_page_flip to deal with atomic, and in that function the comment
>> will be useful again.
> The comment is the spec here, so it should be kept. Actually what I
> really want is to stop using the flip done interrupt entirely since
> it's arguably broken, at which point the comment should problably be
> moved to somewhere else (interrupt setup code, flip completion code,
> etc.). But removing the comment would be bad since then people might
> not understand why we do it the way we do.
I think the flip done interrupt will still be needed for cs flips, but Chris was against removing it iirc. I'll move the comment to page_flip_finished for now.
>>>> Changes since v1:
>>>> - Removing the double vblank wait on broadwell moved to its own commit.
>>>> Changes since v2:
>>>> - Move out POWER_DOMAIN_MODESET handling to its own commit.
>>>>
>>>> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>>>> ---
>>>> drivers/gpu/drm/i915/intel_atomic.c | 1 +
>>>> drivers/gpu/drm/i915/intel_display.c | 80 ++++++++++++++++++++++++++----------
>>>> drivers/gpu/drm/i915/intel_drv.h | 2 +-
>>>> 3 files changed, 61 insertions(+), 22 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/i915/intel_atomic.c b/drivers/gpu/drm/i915/intel_atomic.c
>>>> index 9682d94af710..ba9a57f33c43 100644
>>>> --- a/drivers/gpu/drm/i915/intel_atomic.c
>>>> +++ b/drivers/gpu/drm/i915/intel_atomic.c
>>>> @@ -98,6 +98,7 @@ intel_crtc_duplicate_state(struct drm_crtc *crtc)
>>>> crtc_state->disable_cxsr = false;
>>>> crtc_state->wm_changed = false;
>>>> crtc_state->wm.need_postvbl_update = false;
>>>> + crtc_state->fb_changed = false;
>>>>
>>>> return &crtc_state->base;
>>>> }
>>>> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
>>>> index 2aa1c5367625..eac73f005a70 100644
>>>> --- a/drivers/gpu/drm/i915/intel_display.c
>>>> +++ b/drivers/gpu/drm/i915/intel_display.c
>>>> @@ -4796,9 +4796,6 @@ static void intel_post_plane_update(struct intel_crtc *crtc)
>>>> to_intel_crtc_state(crtc->base.state);
>>>> struct drm_device *dev = crtc->base.dev;
>>>>
>>>> - if (atomic->wait_vblank)
>>>> - intel_wait_for_vblank(dev, crtc->pipe);
>>>> -
>>>> intel_frontbuffer_flip(dev, atomic->fb_bits);
>>>>
>>>> crtc->wm.cxsr_allowed = true;
>>>> @@ -11872,6 +11869,9 @@ int intel_plane_atomic_calc_changes(struct drm_crtc_state *crtc_state,
>>>> if (!was_visible && !visible)
>>>> return 0;
>>>>
>>>> + if (fb != old_plane_state->base.fb)
>>>> + pipe_config->fb_changed = true;
>>> Isn't that going to slow down cursor updates once again?
>> Very likely.. Shall I add a if (!state->legacy_cursor_update) to intel_atomic_wait_for_vblanks ?
> Not sure. Still wishing we could have just had the proper fps>=vrefresh
> support fron the start.
>
Working on it!
_______________________________________________
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-09 11:07 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-11 12:27 [PATCH v2 0/9] Kill off intel_crtc->atomic! Maarten Lankhorst
2016-01-11 12:27 ` [PATCH v2 1/9] drm/i915: Unify power domain handling Maarten Lankhorst
2016-01-11 12:43 ` Maarten Lankhorst
2016-01-11 13:31 ` [PATCH v2 0.999/9] drm/i915: Pass crtc state to modeset_get_crtc_power_domains Maarten Lankhorst
2016-01-11 12:27 ` [PATCH v2 2/9] drm/i915: Kill off intel_crtc->atomic.wait_vblank, v3 Maarten Lankhorst
2016-01-13 12:58 ` Ville Syrjälä
2016-02-09 10:27 ` Maarten Lankhorst
2016-02-09 10:42 ` Ville Syrjälä
2016-02-09 11:07 ` Maarten Lankhorst [this message]
2016-02-09 11:22 ` Ville Syrjälä
2016-01-11 12:27 ` [PATCH v2 3/9] drm/i915: Remove intel_crtc->atomic.disable_ips Maarten Lankhorst
2016-01-13 13:02 ` Ville Syrjälä
2016-01-18 12:10 ` Maarten Lankhorst
2016-01-18 13:27 ` Daniel Stone
2016-01-11 12:27 ` [PATCH v2 4/9] drm/i915: Remove atomic.pre_disable_primary Maarten Lankhorst
2016-01-11 12:27 ` [PATCH v2 5/9] drm/i915: Remove update_sprite_watermarks Maarten Lankhorst
2016-01-11 12:27 ` [PATCH v2 6/9] drm/i915: Remove some post-commit members from intel_crtc->atomic, v2 Maarten Lankhorst
2016-01-11 12:27 ` [PATCH v2 7/9] drm/i915: Nuke fbc " Maarten Lankhorst
2016-01-11 12:27 ` [PATCH v2 8/9] drm/i915: Do not compute watermarks on a noop Maarten Lankhorst
2016-01-11 12:27 ` [PATCH v2 9/9] drm/i915: Remove vblank wait from hsw_enable_ips Maarten Lankhorst
2016-01-11 12:49 ` ✗ failure: Fi.CI.BAT Patchwork
2016-01-11 14:30 ` 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=56B9C855.6020505@linux.intel.com \
--to=maarten.lankhorst@linux.intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--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 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).