Re: [PATCH RFC v5 02/10] drm: Introduce solid fill DRM plane property

2023-08-21 Thread Dmitry Baryshkov
On Fri, 18 Aug 2023 at 16:55, Pekka Paalanen  wrote:
>
> On Fri, 18 Aug 2023 14:03:14 +0300
> Dmitry Baryshkov  wrote:
>
> > On 18/08/2023 13:51, Pekka Paalanen wrote:
> > > On Fri, 4 Aug 2023 16:59:00 +0300
> > > Dmitry Baryshkov  wrote:
> > >
> > >> On Fri, 4 Aug 2023 at 16:44, Sebastian Wick  
> > >> wrote:
> > >>>
> > >>> On Fri, Aug 4, 2023 at 3:27 PM Dmitry Baryshkov
> > >>>  wrote:
> > 
> >  On Fri, 28 Jul 2023 at 20:03, Jessica Zhang 
> >   wrote:
> > >
> > > Document and add support for solid_fill property to drm_plane. In
> > > addition, add support for setting and getting the values for 
> > > solid_fill.
> > >
> > > To enable solid fill planes, userspace must assign a property blob to
> > > the "solid_fill" plane property containing the following information:
> > >
> > > struct drm_mode_solid_fill {
> > >  u32 version;
> > >  u32 r, g, b;
> > > };
> > >
> > > Signed-off-by: Jessica Zhang 
> > > ---
> > >   drivers/gpu/drm/drm_atomic_state_helper.c |  9 +
> > >   drivers/gpu/drm/drm_atomic_uapi.c | 55 
> > > +++
> > >   drivers/gpu/drm/drm_blend.c   | 30 +
> > >   include/drm/drm_blend.h   |  1 +
> > >   include/drm/drm_plane.h   | 35 
> > >   include/uapi/drm/drm_mode.h   | 24 ++
> > >   6 files changed, 154 insertions(+)
> > >
> > 
> >  [skipped most of the patch]
>
> ...
>
> > >>> Maybe another COLOR_FILL enum value
> > >>> with alpha might be better? Maybe just doing the alpha via the alpha
> > >>> property is good enough.
> > >>
> > >> One of our customers has a use case for setting the opaque solid fill,
> > >> while keeping the plane's alpha intact.
> > >
> > > Could you explain more about why they must keep plane alpha intact
> > > instead of reprogramming everything with atomic? Is there some
> > > combination that just cannot reach the same end result via userspace
> > > manipulation of the solid fill values with plane alpha?
> > >
> > > Or is it a matter of userspace architecture where you have independent
> > > components responsible for different KMS property values?
>
> > The latter one. The goal is to be able to switch between pixel sources
> > without touching any additional properties (including plane's alpha value).
>
> Sorry, but that does not seem like a good justification for KMS UAPI
> design.
>
> It is even in conflict with how atomic KMS UAPI was designed to work:
> collect all your changes into a single commit, and push it at once.
> Here we are talking about separate components changing the different
> properties of the same KMS plane even. If you want to change both plane
> opacity and contents, does it mean you need two refresh cycles, one at
> a time? Could the two components be even racing with each other,
> stalling each other randomly?

Most likely I was not verbose enough.

We want to setup the blending scene, including the FB and the solid
fill properties for the plane. FB is set up in the RGBA format, each
pixel having its own alpha value in addition to the plane's alpha
value. Then under certain circumstances, the plane gets hidden by the
solid fill (think of a curtain). We do not want to touch the global
scene setup (including plane alpha value), just switch the curtain on
and off.
I think this plays good enough with the defined plane blending rules,
where one can use pre-multiplied blending mode or use coverage
blending mode.



--
With best wishes
Dmitry


Wayland governance meeting - 22-25 August

2023-08-21 Thread Simon Zeni
Hello there,

The poll for this week's governance meeting is now closed. The meeting will be
tomorrow, Tuesday 22nd at 15:00 CEST (9:00 EST).

Cheers,

Simon


Re: [PATCH v6 6/6] drm/doc: Define KMS atomic state set

2023-08-21 Thread André Almeida

Hi Michel,

Em 17/08/2023 07:37, Michel Dänzer escreveu:

On 8/15/23 20:57, André Almeida wrote:

From: Pekka Paalanen 

Specify how the atomic state is maintained between userspace and
kernel, plus the special case for async flips.

Signed-off-by: Pekka Paalanen 
Signed-off-by: André Almeida 


[...]


+An atomic commit with the flag DRM_MODE_PAGE_FLIP_ASYNC is allowed to
+effectively change only the FB_ID property on any planes. No-operation changes
+are ignored as always. [...]


During the hackfest in Brno, it was mentioned that a commit which re-sets the 
same FB_ID could actually have an effect with VRR: It could trigger scanout of 
the next frame before vertical blank has reached its maximum duration. Some 
kind of mechanism is required for this in order to allow user space to perform 
low frame rate compensation.



I believe the documentation already addresses that sending redundant 
information may not lead to the desired behavior during an async flip. 
Do you think adding a note about using the same FB_ID would be helpful?