[PATCH v6 0/8] drm: Support per-plane async flip configuration
Ville Syrjälä
ville.syrjala at linux.intel.com
Wed Jun 19 11:57:03 UTC 2024
On Fri, Jun 14, 2024 at 04:37:41PM -0300, André Almeida wrote:
> Hi Dmitry,
>
> Em 14/06/2024 14:32, Dmitry Baryshkov escreveu:
> > On Fri, Jun 14, 2024 at 12:35:27PM GMT, André Almeida wrote:
> >> AMD hardware can do async flips with overlay planes, but currently there's no
> >> easy way to enable that in DRM. To solve that, this patchset creates a new
> >> drm_plane field, bool async_flip, that allows drivers to choose which plane can
> >> or cannot do async flips. This is latter used on drm_atomic_set_property when
> >> users want to do async flips.
> >>
> >> Patch 1 allows async commits with IN_FENCE_ID in any driver.
> >>
> >> Patches 2 to 7 have no function change. As per current code, every driver that
> >> allows async page flips using the atomic API, allows doing it only in the
> >> primary plane. Those patches then enable it for every driver.
> >>
> >> Patch 8 finally enables async flip on overlay planes for amdgpu.
> >>
> >> Changes from v5:
> >> - Instead of enabling plane->async_flip in the common code, move it to driver
> >> code.
> >> - Enable primary plane async flip on every driver
> >> https://lore.kernel.org/dri-devel/20240612193713.167448-1-andrealmeid@igalia.com/
> >>
> >> André Almeida (8):
> >> drm/atomic: Allow userspace to use explicit sync with atomic async
> >> flips
> >> drm: Support per-plane async flip configuration
> >> drm/amdgpu: Enable async flips on the primary plane
> >> drm: atmel-hlcdc: Enable async flips on the primary plane
> >> drm/i915: Enable async flips on the primary plane
> >> drm/nouveau: Enable async flips on the primary plane
> >> drm/vc4: Enable async flips on the primary plane
> >> drm/amdgpu: Make it possible to async flip overlay planes
> >>
> >> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c | 2 ++
> >> drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c | 3 +++
> >> drivers/gpu/drm/drm_atomic_uapi.c | 8 +++++---
> >> drivers/gpu/drm/i915/display/i9xx_plane.c | 3 +++
> >> drivers/gpu/drm/nouveau/dispnv04/crtc.c | 4 ++++
> >> drivers/gpu/drm/nouveau/dispnv50/wndw.c | 4 ++++
> >> drivers/gpu/drm/vc4/vc4_plane.c | 4 +++-
> >
> > The main question is why only these drivers were updated.
> >
>
> According to `git grep async_page_flip`, only those drivers supports
> async page flip. The only corner case is radeon, that does supports
> async but doesn't support planes.
The primary plane will alwyas exist (drm_crtc_init() will create
one for the old drivers that don't do it explicitly). So you
should be able to convert radeon as well. And looks like some
pre-dc amdgpu stuff is in a similar situation.
That should presumably allow the old flag to be removed entirely?
Hmm, I suppose drm_getcap() would need a bit of work to eg. go
through all the planes to see if any of them support async flips.
>
> Do you know any other driver that should be updated to?
>
> >> include/drm/drm_plane.h | 5 +++++
> >> 8 files changed, 29 insertions(+), 4 deletions(-)
> >>
> >> --
> >> 2.45.2
> >>
> >
--
Ville Syrjälä
Intel
More information about the Nouveau
mailing list