[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