public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Eric Anholt <eric@anholt.net>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [RFC] Async flips
Date: Wed, 31 Oct 2012 20:51:18 +0200	[thread overview]
Message-ID: <20121031185118.GJ3791@intel.com> (raw)
In-Reply-To: <87625qpmcw.fsf@eliezer.anholt.net>

On Wed, Oct 31, 2012 at 10:44:47AM -0700, Eric Anholt wrote:
> Ville Syrjälä <ville.syrjala@linux.intel.com> writes:
> 
> > On Tue, Oct 30, 2012 at 01:33:47PM -0500, Jesse Barnes wrote:
> >> The hw supports async flips through the render ring, so why not expose it?
> >> It gives us one more "tear me harder" option we can use in the DDX and
> >> for other cases where simply flipping to the latest buffer is more
> >> important than visual quality.
> >
> > The only reason I can see why anyone would really want async flips is
> > when you're restricted to double buffering. With triple buffering you
> > should be able to override the previous flip w/o tearing.
> >
> > Well, actually if you use the ring based flips, then you can't do the
> > override. My atomic page flip code can do it because it's using mmio
> > flips. There were also other reasons favoring mmio over ring.
> >
> > Once the atomic code is deemed ready, I would suggest we just nuke the
> > ring based flip code (pun intended).
> 
> Can you outline what exactly your plan is for doing faster-than-vblank
> page flipping without tearing, and how it gets synchronized with
> rendering?

The faster than vrefresh flipping simply involves overwriting the
display plane registers before they've been latched by the hardware.
This appears to work fine already.

As far as the synchronization goes, I basically just want a callback
from the GPU when it's done with the buffer. I'm expecting to find
some kind of GPU progress interrupt that I can enable while I'm waiting
for the GPU to catch up. So I also need a FIFO to store the flip
requests in the meantime. Once the GPU tells me it's ready, I pull the
flip request from the queue and proceed with the display plane
programming.

So the synchronization part it's still quite handwavy, and I need
to study the hardware/driver in more detail to figure out the
specifics.

-- 
Ville Syrjälä
Intel OTC

  reply	other threads:[~2012-10-31 18:51 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-30 18:33 [RFC] Async flips Jesse Barnes
2012-10-30 18:33 ` [PATCH 1/2] drm: add flags argument to crtc page_flip callback Jesse Barnes
2012-11-02  4:29   ` Mario Kleiner
2012-11-02 16:00     ` Jesse Barnes
2012-10-30 18:33 ` [PATCH 2/2] drm/i915: add async flip support on gen7 Jesse Barnes
2012-10-31 17:47   ` Eric Anholt
2012-10-31 19:24     ` Jesse Barnes
2012-10-31 12:53 ` [RFC] Async flips Ville Syrjälä
2012-10-31 15:23   ` Jesse Barnes
2012-10-31 15:26     ` Daniel Vetter
2012-10-31 15:39       ` Jesse Barnes
2012-10-31 15:49         ` Chris Wilson
2012-10-31 16:03           ` Daniel Vetter
2012-10-31 16:27           ` Jesse Barnes
2012-10-31 16:05       ` Ville Syrjälä
2012-10-31 17:44   ` Eric Anholt
2012-10-31 18:51     ` Ville Syrjälä [this message]
2012-11-02  4:45       ` Mario Kleiner
2012-11-02  9:29         ` Ville Syrjälä
2012-11-12  3:53           ` Mario Kleiner
2012-11-12 12:04             ` 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=20121031185118.GJ3791@intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=eric@anholt.net \
    --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