dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
From: "Christian König" <ckoenig.leichtzumerken@gmail.com>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [RFC] Implicit vs explicit user fence sync
Date: Tue, 11 May 2021 21:34:11 +0200	[thread overview]
Message-ID: <d91f5635-9f03-d1ea-4bc5-594b42402eaa@gmail.com> (raw)
In-Reply-To: <YJq1T8yWXSW6TRjW@phenom.ffwll.local>

Am 11.05.21 um 18:48 schrieb Daniel Vetter:
> [SNIP]
>> Why?
> If you allow implicit fencing then you can end up with
> - an implicit userspace fence as the in-fence
> - but an explicit dma_fence as the out fence
>
> Which is not allowed. So there's really no way to make this work, except
> if you stall in the ioctl, which also doesn't work.

Ok, wait a second. I really don't understand what's going on here.

The out fence is just to let the userspace know when the frame is 
displayed. Or rather when the old frame is no longer displayed so that 
it can be reused, right?

Then why does that need to be a dma_fence? We don't use that for memory 
management anywhere, don't we?

> So you have to do an uapi change here. At that point we might as well do
> it right.

I mean in the worst case we might need to allow user fences with 
sync_files as well when that is really used outside of Android.

But I still don't see the fundamental problem here.

Regards,
Christian.

> Of course if you only care about some specific compositors (or maybe only
> the -amdgpu Xorg driver even) then this isn't a concern, but atomic is
> cross-driver so we can't do that. Or at least I don't see a way how to do
> this without causing endless amounts of fun down the road.
>
>>> So I have a plan here, what was yours?
>> As far as I see that should still work perfectly fine and I have the strong
>> feeling I'm missing something here.
>>
>>>> Transporting fences between processes is not the fundamental problem here,
>>>> but rather the question how we represent all this in the kernel?
>>>>
>>>> In other words I think what you outlined above is just approaching it from
>>>> the wrong side again. Instead of looking what the kernel needs to support
>>>> this you take a look at userspace and the requirements there.
>>> Uh ... that was my idea here? That's why I put "build userspace fences in
>>> userspace only" as the very first thing. Then extend to winsys and
>>> atomic/display and all these cases where things get more tricky.
>>>
>>> I agree that transporting the fences is easy, which is why it's not
>>> interesting trying to solve that problem first. Which is kinda what you're
>>> trying to do here by adding implicit userspace fences (well not even that,
>>> just a bunch of function calls without any semantics attached to them).
>>>
>>> So if there's more here, you need to flesh it out more or I just dont get
>>> what you're actually trying to demonstrate.
>> Well I'm trying to figure out why you see it as such a problem to keep
>> implicit sync around.
>>
>> As far as I can tell it is completely octagonal if we use implicit/explicit
>> and dma_fence/user_fence.
>>
>> It's just a different implementation inside the kernel.
> See above. It falls apart with the atomic ioctl.
> -Daniel

  reply	other threads:[~2021-05-11 19:34 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-04 13:27 [RFC] Implicit vs explicit user fence sync Christian König
2021-05-04 13:27 ` [PATCH 01/12] dma-buf: add interface for user fence synchronization Christian König
2021-05-04 13:27 ` [PATCH 02/12] RDMA/mlx5: add DMA-buf user fence support Christian König
2021-05-04 13:27 ` [PATCH 03/12] drm/amdgpu: " Christian König
2021-05-04 13:27 ` [PATCH 04/12] drm/gem: dd DMA-buf user fence support for the atomic helper Christian König
2021-05-04 13:27 ` [PATCH 05/12] drm/etnaviv: add DMA-buf user fence support Christian König
2021-05-04 13:27 ` [PATCH 06/12] drm/i915: " Christian König
2021-05-04 13:27 ` [PATCH 07/12] drm/lima: " Christian König
2021-05-04 13:27 ` [PATCH 08/12] drm/msm: " Christian König
2021-05-04 13:27 ` [PATCH 09/12] drm/nouveau: " Christian König
2021-05-04 13:27 ` [PATCH 10/12] drm/panfrost: " Christian König
2021-05-04 13:27 ` [PATCH 11/12] drm/radeon: " Christian König
2021-05-04 13:27 ` [PATCH 12/12] drm/v3d: " Christian König
2021-05-04 14:15 ` [RFC] Implicit vs explicit user fence sync Daniel Vetter
2021-05-04 14:26   ` Christian König
2021-05-04 15:11     ` Daniel Vetter
2021-05-10 18:12       ` Christian König
2021-05-11  7:31         ` Daniel Vetter
2021-05-11  7:47           ` Christian König
2021-05-11 14:23             ` Daniel Vetter
2021-05-11 15:32               ` Christian König
2021-05-11 16:48                 ` Daniel Vetter
2021-05-11 19:34                   ` Christian König [this message]
2021-05-12  8:13                     ` Daniel Vetter
2021-05-12  8:23                       ` Christian König
2021-05-12  8:50                         ` 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=d91f5635-9f03-d1ea-4bc5-594b42402eaa@gmail.com \
    --to=ckoenig.leichtzumerken@gmail.com \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@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;
as well as URLs for NNTP newsgroup(s).