All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michel Dänzer" <michel.daenzer@mailbox.org>
To: Xaver Hugl <xaver.hugl@gmail.com>, Pekka Paalanen <ppaalanen@gmail.com>
Cc: "André Almeida" <andrealmeid@igalia.com>,
	daniel@ffwll.ch, "Marek Olšák" <maraeo@gmail.com>,
	linux-kernel@vger.kernel.org, amd-gfx@lists.freedesktop.org,
	dri-devel@lists.freedesktop.org, kernel-dev@igalia.com,
	alexander.deucher@amd.com, "Joshua Ashton" <joshua@froggi.es>,
	"Dave Airlie" <airlied@gmail.com>,
	christian.koenig@amd.com
Subject: Re: [PATCH 0/2] drm/atomic: Allow drivers to write their own plane check for async
Date: Wed, 17 Jan 2024 15:18:41 +0100	[thread overview]
Message-ID: <48824a5d-223a-4ad2-b198-5fcb75a9cfde@mailbox.org> (raw)
In-Reply-To: <CAFZQkGzite-CZoJcV80kNPe==OWFZa_cR1x3QRKuLd=HdOFw-A@mail.gmail.com>

On 2024-01-17 13:57, Xaver Hugl wrote:
> Am Mi., 17. Jan. 2024 um 09:55 Uhr schrieb Pekka Paalanen <ppaalanen@gmail.com>:
>> Is it important enough to be special-cased, e.g. to be always allowed
>> with async commits?
> 
> I thought so, and sent a patch to dri-devel to make it happen, but
> there are some
> concerns about untested driver paths.
> https://lists.freedesktop.org/archives/dri-devel/2024-January/437511.html
> 
>> Now that I think of it, if userspace needs to wait for the in-fence
>> itself before kicking KMS async, that would defeat much of the async's
>> point, right? And cases where in-fence is not necessary are so rare
>> they might not even exist?
>>
>> So if driver/hardware cannot do IN_FENCE_FD with async, is there any
>> use of supporting async to begin with?
> 
> KWin never commits a buffer where IN_FENCE_FD would actually delay the
> pageflip; it's really only used to disable implicit sync, as there's some edge
> cases where it can wrongly delay the pageflip. The waiting for buffers to become
> readable on the compositor side isn't really significant in terms of latency.
> 
> If hardware doesn't support IN_FENCE_FD with async commits, checking if the
> fence is already signaled at commit time would thus still make things work, at
> least for KWin.

That's how IN_FENCE_FD (and implicit sync) is handled anyway, in common code: It waits for all fences to signal before calling into the driver to commit the atomic commit.

I can't see why this wouldn't work with async commits, the same as with synchronous ones, with any driver.


-- 
Earthling Michel Dänzer            |                  https://redhat.com
Libre software enthusiast          |         Mesa and Xwayland developer


WARNING: multiple messages have this Message-ID (diff)
From: "Michel Dänzer" <michel.daenzer@mailbox.org>
To: Xaver Hugl <xaver.hugl@gmail.com>, Pekka Paalanen <ppaalanen@gmail.com>
Cc: "André Almeida" <andrealmeid@igalia.com>,
	kernel-dev@igalia.com, "Marek Olšák" <maraeo@gmail.com>,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
	amd-gfx@lists.freedesktop.org, daniel@ffwll.ch,
	alexander.deucher@amd.com, "Dave Airlie" <airlied@gmail.com>,
	christian.koenig@amd.com, "Joshua Ashton" <joshua@froggi.es>
Subject: Re: [PATCH 0/2] drm/atomic: Allow drivers to write their own plane check for async
Date: Wed, 17 Jan 2024 15:18:41 +0100	[thread overview]
Message-ID: <48824a5d-223a-4ad2-b198-5fcb75a9cfde@mailbox.org> (raw)
In-Reply-To: <CAFZQkGzite-CZoJcV80kNPe==OWFZa_cR1x3QRKuLd=HdOFw-A@mail.gmail.com>

On 2024-01-17 13:57, Xaver Hugl wrote:
> Am Mi., 17. Jan. 2024 um 09:55 Uhr schrieb Pekka Paalanen <ppaalanen@gmail.com>:
>> Is it important enough to be special-cased, e.g. to be always allowed
>> with async commits?
> 
> I thought so, and sent a patch to dri-devel to make it happen, but
> there are some
> concerns about untested driver paths.
> https://lists.freedesktop.org/archives/dri-devel/2024-January/437511.html
> 
>> Now that I think of it, if userspace needs to wait for the in-fence
>> itself before kicking KMS async, that would defeat much of the async's
>> point, right? And cases where in-fence is not necessary are so rare
>> they might not even exist?
>>
>> So if driver/hardware cannot do IN_FENCE_FD with async, is there any
>> use of supporting async to begin with?
> 
> KWin never commits a buffer where IN_FENCE_FD would actually delay the
> pageflip; it's really only used to disable implicit sync, as there's some edge
> cases where it can wrongly delay the pageflip. The waiting for buffers to become
> readable on the compositor side isn't really significant in terms of latency.
> 
> If hardware doesn't support IN_FENCE_FD with async commits, checking if the
> fence is already signaled at commit time would thus still make things work, at
> least for KWin.

That's how IN_FENCE_FD (and implicit sync) is handled anyway, in common code: It waits for all fences to signal before calling into the driver to commit the atomic commit.

I can't see why this wouldn't work with async commits, the same as with synchronous ones, with any driver.


-- 
Earthling Michel Dänzer            |                  https://redhat.com
Libre software enthusiast          |         Mesa and Xwayland developer


  reply	other threads:[~2024-01-17 14:26 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-16  4:51 [PATCH 0/2] drm/atomic: Allow drivers to write their own plane check for async André Almeida
2024-01-16  4:51 ` André Almeida
2024-01-16  4:51 ` André Almeida
2024-01-16  4:51 ` [PATCH 1/2] drm/atomic: Allow drivers to write their own plane check for async flips André Almeida
2024-01-16  4:51   ` André Almeida
2024-01-16  4:51   ` André Almeida
2024-01-19 22:12   ` kernel test robot
2024-01-19 22:12     ` kernel test robot
2024-01-19 22:12     ` kernel test robot
2024-01-16  4:51 ` [PATCH 2/2] drm/amdgpu: Implement check_async_props for planes André Almeida
2024-01-16  4:51   ` André Almeida
2024-01-16  4:51   ` André Almeida
2024-01-16  9:45 ` [PATCH 0/2] drm/atomic: Allow drivers to write their own plane check for async Pekka Paalanen
2024-01-16  9:45   ` Pekka Paalanen
2024-01-16  9:45   ` Pekka Paalanen
2024-01-16 11:50   ` André Almeida
2024-01-16 11:50     ` André Almeida
2024-01-16 11:50     ` André Almeida
2024-01-16 13:14     ` Pekka Paalanen
2024-01-16 13:14       ` Pekka Paalanen
2024-01-16 13:14       ` Pekka Paalanen
2024-01-16 13:35       ` André Almeida
2024-01-16 13:35         ` André Almeida
2024-01-16 13:35         ` André Almeida
2024-01-16 16:10         ` Xaver Hugl
2024-01-16 16:10           ` Xaver Hugl
2024-01-17  8:55           ` Pekka Paalanen
2024-01-17  8:55             ` Pekka Paalanen
2024-01-17  8:55             ` Pekka Paalanen
2024-01-17 12:57             ` Xaver Hugl
2024-01-17 12:57               ` Xaver Hugl
2024-01-17 12:57               ` Xaver Hugl
2024-01-17 14:18               ` Michel Dänzer [this message]
2024-01-17 14:18                 ` Michel Dänzer
2024-01-16 20:11         ` Joshua Ashton

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=48824a5d-223a-4ad2-b198-5fcb75a9cfde@mailbox.org \
    --to=michel.daenzer@mailbox.org \
    --cc=airlied@gmail.com \
    --cc=alexander.deucher@amd.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=andrealmeid@igalia.com \
    --cc=christian.koenig@amd.com \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=joshua@froggi.es \
    --cc=kernel-dev@igalia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maraeo@gmail.com \
    --cc=ppaalanen@gmail.com \
    --cc=xaver.hugl@gmail.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.