All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel@ffwll.ch>
To: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
Cc: "Gustavo Padovan" <gustavo.padovan@collabora.co.uk>,
	"Gustavo Padovan" <gustavo@padovan.org>,
	"Daniel Stone" <daniels@collabora.com>,
	"Riley Andrews" <riandrews@android.com>,
	dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
	"Arve Hjønnevåg" <arve@android.com>,
	"John Harrison" <John.C.Harrison@Intel.com>
Subject: Re: [RFC v2 5/8] drm/fence: add in-fences support
Date: Tue, 26 Apr 2016 22:05:05 +0200	[thread overview]
Message-ID: <20160426200505.GD2558@phenom.ffwll.local> (raw)
In-Reply-To: <20160426185506.GH4329@intel.com>

On Tue, Apr 26, 2016 at 09:55:06PM +0300, Ville Syrjälä wrote:
> On Tue, Apr 26, 2016 at 08:23:46PM +0200, Daniel Vetter wrote:
> > On Tue, Apr 26, 2016 at 08:40:45PM +0300, Ville Syrjälä wrote:
> > > On Tue, Apr 26, 2016 at 07:20:49PM +0200, Daniel Vetter wrote:
> > > > On Tue, Apr 26, 2016 at 07:26:21PM +0300, Ville Syrjälä wrote:
> > > > > On Tue, Apr 26, 2016 at 04:36:36PM +0200, Daniel Vetter wrote:
> > > > > > On Tue, Apr 26, 2016 at 11:14:22AM -0300, Gustavo Padovan wrote:
> > > > > > > 2016-04-26 Ville Syrjälä <ville.syrjala@linux.intel.com>:
> > > > > > > 
> > > > > > > > On Mon, Apr 25, 2016 at 07:33:25PM -0300, Gustavo Padovan wrote:
> > > > > > > > > From: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
> > > > > > > > > 
> > > > > > > > > There is now a new property called FENCE_FD attached to every plane
> > > > > > > > > state that receives the sync_file fd from userspace via the atomic commit
> > > > > > > > > IOCTL.
> > > > > > > > 
> > > > > > > > I still don't like this property abuse. Also with atomic, all passed
> > > > > > > > fences must be waited upon before anything is done, so attaching them
> > > > > > > > to planes seems like it might just give people the wrong idea.
> > > > > > > 
> > > > > > > I'm actually fine with this as property, but another solutions is use
> > > > > > > an array of {plane, fence_fd} and extend drm_atomic_ioctl args just like
> > > > > > > we have done for out fences. However the FENCE_FD property is easier to
> > > > > > > handle in userspace than the array. Any other idea?
> > > > > > 
> > > > > > Imo FENCE_FD is perfectly fine. But what's the concern around giving
> > > > > > people the wrong idea with attaching fences to planes? For nonblocking
> > > > > > commits we need to store them somewhere for the worker, drm_plane_state
> > > > > > seems like an as good place as any other.
> > > > > 
> > > > > It gives the impression that each plane might flip as soon as its fence
> > > > > signals.
> > > > 
> > > > That wouldn't be atomic. Not sure how someone could come up with that
> > > > idea.
> > > 
> > > What else would it mean? It's attached to a specific plane, so why would
> > > it affect other planes?
> > > 
> > > > I mean we could move FENCE_FD to the crtc (fence fds can be merged),
> > > > but that's just a needless difference to what hwc expects. I think
> > > > aligning with the only real-world users in this case here makes sense.
> > > 
> > > Well it doesn't belong on the crtc either. I would just stick in the
> > > ioctl as a separate thing, then it's clear it's related to the whole
> > > operation rather than any kms object.
> > 
> > We want it per-crtc I'd say, so that you could flip each crtc
> > individually.
> 
> Then you could just issue multiple ioctls. For eg. those nasty 4k MST
> display (or just otherwise neatly synced displayes) you want to wait for
> all the fences upfront and the flip everything at once, otherwise you'll
> get nasty tears at the seams.
> 
> > But really the reason for per-plane is hw composer from
> > Android. I don't see any point in designing an api that's needlessly
> > different from what the main user expects (even if it may be silly).
> 
> What are they doing that can't stuff the fences into an array
> instead of props?

The hw composer interface is one in-fence per plane. That's really the
major reason why the kernel interface is built to match. And I really
don't think we should diverge just because we have a slight different
color preference ;-)

As long as you end up with a pile of fences somehow it'll work.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

  reply	other threads:[~2016-04-26 20:05 UTC|newest]

Thread overview: 90+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-25 22:33 [RFC v2 0/8] drm: explicit fencing support Gustavo Padovan
2016-04-25 22:33 ` Gustavo Padovan
2016-04-25 22:33 ` [RFC v2 1/8] dma-buf/fence: add fence_collection fences Gustavo Padovan
2016-04-25 22:33   ` Gustavo Padovan
2016-04-26 14:41   ` Daniel Vetter
2016-04-26 14:41     ` Daniel Vetter
2016-04-26 15:02     ` Gustavo Padovan
2016-04-27  6:36       ` Daniel Vetter
2016-04-27  6:36         ` Daniel Vetter
2016-04-26 15:09   ` Chris Wilson
2016-04-26 15:09     ` Chris Wilson
2016-04-28 14:47     ` Gustavo Padovan
2016-04-28 14:47       ` Gustavo Padovan
2016-04-25 22:33 ` [RFC v2 2/8] Documentation: add fence-collection to kernel DocBook Gustavo Padovan
2016-04-25 22:33   ` Gustavo Padovan
2016-04-25 22:33 ` [RFC v2 3/8] dma-buf/sync_file: add sync_file_fences_get() Gustavo Padovan
2016-04-25 22:33   ` Gustavo Padovan
2016-04-25 22:33 ` [RFC v2 4/8] drm/fence: allow fence waiting to be interrupted by userspace Gustavo Padovan
2016-04-25 22:33   ` Gustavo Padovan
2016-04-25 22:33 ` [RFC v2 5/8] drm/fence: add in-fences support Gustavo Padovan
2016-04-25 22:33   ` Gustavo Padovan
2016-04-26 10:10   ` Ville Syrjälä
2016-04-26 10:10     ` Ville Syrjälä
2016-04-26 14:14     ` Gustavo Padovan
2016-04-26 14:36       ` Daniel Vetter
2016-04-26 14:36         ` Daniel Vetter
2016-04-26 16:26         ` Ville Syrjälä
2016-04-26 16:26           ` Ville Syrjälä
2016-04-26 17:20           ` Daniel Vetter
2016-04-26 17:20             ` Daniel Vetter
2016-04-26 17:40             ` Ville Syrjälä
2016-04-26 18:23               ` Daniel Vetter
2016-04-26 18:23                 ` Daniel Vetter
2016-04-26 18:55                 ` Ville Syrjälä
2016-04-26 18:55                   ` Ville Syrjälä
2016-04-26 20:05                   ` Daniel Vetter [this message]
2016-04-26 20:48                     ` Greg Hackmann
2016-04-26 20:48                       ` Greg Hackmann
2016-04-27  6:39                       ` Daniel Vetter
2016-04-27  6:39                         ` Daniel Vetter
2016-04-28 21:28                         ` Rob Clark
2016-04-28 21:28                           ` Rob Clark
2016-04-29  7:48                           ` Daniel Stone
2016-04-29  7:48                             ` Daniel Stone
2016-04-29 22:23                             ` Rob Clark
2016-04-29 22:23                               ` Rob Clark
2016-07-12 21:14                               ` Dominik Behr
2016-07-12 21:21                                 ` Gustavo Padovan
2016-04-29 21:14                         ` Greg Hackmann
2016-04-29 21:14                           ` Greg Hackmann
2016-04-27  6:57                       ` Daniel Stone
2016-04-27  6:57                         ` Daniel Stone
2016-04-28 14:36                         ` Gustavo Padovan
2016-04-28 14:36                           ` Gustavo Padovan
2016-04-28 14:38                           ` Daniel Vetter
2016-04-28 14:38                             ` Daniel Vetter
2016-04-28 16:56                           ` Ville Syrjälä
2016-04-28 16:56                             ` Ville Syrjälä
2016-04-28 17:43                             ` Daniel Vetter
2016-04-28 17:43                               ` Daniel Vetter
2016-04-28 17:51                               ` Ville Syrjälä
2016-04-28 17:51                                 ` Ville Syrjälä
2016-04-28 17:55                                 ` Gustavo Padovan
2016-04-28 18:02                                   ` Daniel Vetter
2016-04-28 18:02                                     ` Daniel Vetter
2016-04-28 18:17                             ` Ville Syrjälä
2016-04-28 18:17                               ` Ville Syrjälä
2016-04-28 20:40                               ` Daniel Vetter
2016-04-28 20:40                                 ` Daniel Vetter
2016-04-26 16:25       ` Ville Syrjälä
2016-04-25 22:33 ` [RFC v2 6/8] drm/fence: add fence to drm_pending_event Gustavo Padovan
2016-04-25 22:33   ` Gustavo Padovan
2016-04-25 22:33 ` [RFC v2 7/8] drm/fence: add fence timeline to drm_crtc Gustavo Padovan
2016-04-25 22:33   ` Gustavo Padovan
2016-04-26 10:12   ` Ville Syrjälä
2016-04-26 10:12     ` Ville Syrjälä
2016-04-26 14:23     ` Gustavo Padovan
2016-04-26 16:34       ` Ville Syrjälä
2016-04-26 16:34         ` Ville Syrjälä
2016-04-27  8:23   ` Daniel Stone
2016-04-27  8:23     ` Daniel Stone
2016-04-25 22:33 ` [RFC v2 8/8] drm/fence: add out-fences support Gustavo Padovan
2016-04-25 22:33   ` Gustavo Padovan
2016-04-26 14:53   ` Daniel Vetter
2016-04-26 14:53     ` Daniel Vetter
2016-04-28 15:23     ` Gustavo Padovan
2016-04-28 15:23       ` Gustavo Padovan
2016-04-25 23:21 ` [RFC v2 0/8] drm: explicit fencing support Mike Lothian
2016-04-26  6:30   ` Daniel Vetter
2016-04-26  6:30     ` Daniel Vetter

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=20160426200505.GD2558@phenom.ffwll.local \
    --to=daniel@ffwll.ch \
    --cc=John.C.Harrison@Intel.com \
    --cc=arve@android.com \
    --cc=daniels@collabora.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=gustavo.padovan@collabora.co.uk \
    --cc=gustavo@padovan.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=riandrews@android.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.