diff mbox series

drm: allow IN_FENCE_FD and FB_DAMAGE_CLIPS to be changed with async commits

Message ID 20240111165615.27587-1-xaver.hugl@gmail.com (mailing list archive)
State New, archived
Headers show
Series drm: allow IN_FENCE_FD and FB_DAMAGE_CLIPS to be changed with async commits | expand

Commit Message

Xaver Hugl Jan. 11, 2024, 4:56 p.m. UTC
Like with FB_ID, the driver never has to do bandwidth validation to use
these properties, so there's no reason not to allow them.

Signed-off-by: Xaver Hugl <xaver.hugl@gmail.com>
---
 drivers/gpu/drm/drm_atomic_uapi.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Xaver Hugl Jan. 11, 2024, 5:59 p.m. UTC | #1
Am Do., 11. Jan. 2024 um 18:13 Uhr schrieb Simon Ser <contact@emersion.fr>:

> Are we sure that all drivers handle these two props properly with async
> page-flips? This is a new codepath not taken by the legacy uAPI.
>
I've only tested on amdgpu so far. Afacs the other drivers that would need
testing / that support atomic and async pageflips are
- i915
- noueveau (though atomic is disabled by default, so maybe it doesn't
matter?)
- vc4
- atmel-hlcdc

The first two I can test, the latter I don't have the hardware for. I don't
know if I can
extensively test fb_damage_clips either / how I'd even know if it's being
applied
correctly, but in the worst case I'd expect the driver to not do the
optimizations the
property allows.

As an alternative to this, would it be okay to expose a driver hook for
optional
driver-specific checks that drm_atomic_set_property can delegate to, and
only
allow this with the properties and hardware that's been tested? Then more
properties (like cursor position changes on amdgpu) could be easily added
later
on too.
Xaver Hugl Jan. 11, 2024, 6:24 p.m. UTC | #2
Great, thank you!

Am Do., 11. Jan. 2024 um 19:05 Uhr schrieb André Almeida <
andrealmeid@igalia.com>:

> Em 11/01/2024 14:59, Xaver Hugl escreveu:
> > Am Do., 11. Jan. 2024 um 18:13 Uhr schrieb Simon Ser
> > <contact@emersion.fr <mailto:contact@emersion.fr>>:
> >
> >     Are we sure that all drivers handle these two props properly with
> async
> >     page-flips? This is a new codepath not taken by the legacy uAPI.
> >
> > I've only tested on amdgpu so far. Afacs the other drivers that would
> need
> > testing / that support atomic and async pageflips are
> > - i915
> > - noueveau (though atomic is disabled by default, so maybe it doesn't
> > matter?)
> > - vc4
> > - atmel-hlcdc
> >
> > The first two I can test, the latter I don't have the hardware for. I
> > don't know if I can
> > extensively test fb_damage_clips either / how I'd even know if it's
> > being applied
> > correctly, but in the worst case I'd expect the driver to not do the
> > optimizations the
> > property allows.
> >
> > As an alternative to this, would it be okay to expose a driver hook for
> > optional
> > driver-specific checks that drm_atomic_set_property can delegate to, and
> > only
> > allow this with the properties and hardware that's been tested? Then more
> > properties (like cursor position changes on amdgpu) could be easily
> > added later
> > on too.
>
> I'm working on some mechanism to allow overlay planes on amdgpu, and I
> think I can add your needs to it. I'll share in the mailing list when I
> have something more concrete.
>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/drm_atomic_uapi.c b/drivers/gpu/drm/drm_atomic_uapi.c
index aee4a65d4959..06d476f5a746 100644
--- a/drivers/gpu/drm/drm_atomic_uapi.c
+++ b/drivers/gpu/drm/drm_atomic_uapi.c
@@ -1108,7 +1108,9 @@  int drm_atomic_set_property(struct drm_atomic_state *state,
 			break;
 		}
 
-		if (async_flip && prop != config->prop_fb_id) {
+		if (async_flip && prop != config->prop_fb_id &&
+			prop != config->prop_in_fence_fd &&
+			prop != config->prop_fb_damage_clips) {
 			ret = drm_atomic_plane_get_property(plane, plane_state,
 							    prop, &old_val);
 			ret = drm_atomic_check_prop_changes(ret, old_val, prop_value, prop);