From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> To: Sebastian Wick <sebastian.wick@redhat.com> Cc: Jessica Zhang <quic_jesszhan@quicinc.com>, Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, David Airlie <airlied@gmail.com>, Daniel Vetter <daniel@ffwll.ch>, Rob Clark <robdclark@gmail.com>, Sean Paul <sean@poorly.run>, Marijn Suijten <marijn.suijten@somainline.org>, quic_abhinavk@quicinc.com, ppaalanen@gmail.com, contact@emersion.fr, laurent.pinchart@ideasonboard.com, ville.syrjala@linux.intel.com, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, wayland-devel@lists.freedesktop.org Subject: Re: [PATCH RFC v5 02/10] drm: Introduce solid fill DRM plane property Date: Fri, 4 Aug 2023 16:59:00 +0300 [thread overview] Message-ID: <CAA8EJpoFpUcQL_7pb0toDoLFsK=9GdBLQH+h_MMffrp9k7eCyw@mail.gmail.com> (raw) In-Reply-To: <CA+hFU4y38MTTUsbri1jy=n4Vyp7xx2CosD9Nmk97z_au6NHCdQ@mail.gmail.com> On Fri, 4 Aug 2023 at 16:44, Sebastian Wick <sebastian.wick@redhat.com> wrote: > > On Fri, Aug 4, 2023 at 3:27 PM Dmitry Baryshkov > <dmitry.baryshkov@linaro.org> wrote: > > > > On Fri, 28 Jul 2023 at 20:03, Jessica Zhang <quic_jesszhan@quicinc.com> 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 <quic_jesszhan@quicinc.com> > > > --- > > > 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] > > > > > diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h > > > index 43691058d28f..53c8efa5ad7f 100644 > > > --- a/include/uapi/drm/drm_mode.h > > > +++ b/include/uapi/drm/drm_mode.h > > > @@ -259,6 +259,30 @@ struct drm_mode_modeinfo { > > > char name[DRM_DISPLAY_MODE_LEN]; > > > }; > > > > > > +/** > > > + * struct drm_mode_solid_fill - User info for solid fill planes > > > + * > > > + * This is the userspace API solid fill information structure. > > > + * > > > + * Userspace can enable solid fill planes by assigning the plane "solid_fill" > > > + * property to a blob containing a single drm_mode_solid_fill struct populated with an RGB323232 > > > + * color and setting the pixel source to "SOLID_FILL". > > > + * > > > + * For information on the plane property, see drm_plane_create_solid_fill_property() > > > + * > > > + * @version: Version of the blob. Currently, there is only support for version == 1 > > > + * @r: Red color value of single pixel > > > + * @g: Green color value of single pixel > > > + * @b: Blue color value of single pixel > > > + */ > > > +struct drm_mode_solid_fill { > > > + __u32 version; > > > + __u32 r; > > > + __u32 g; > > > + __u32 b; > > > > Another thought about the drm_mode_solid_fill uABI. I still think we > > should add alpha here. The reason is the following: > > > > It is true that we have drm_plane_state::alpha and the plane's > > "alpha" property. However it is documented as "the plane-wide opacity > > [...] It can be combined with pixel alpha. The pixel values in the > > framebuffers are expected to not be pre-multiplied by the global alpha > > associated to the plane.". > > > > I can imagine a use case, when a user might want to enable plane-wide > > opacity, set "pixel blend mode" to "Coverage" and then switch between > > partially opaque framebuffer and partially opaque solid-fill without > > touching the plane's alpha value. > > The only reason I see against this is that there might be some > hardware which supports only RGB but not alpha on planes and they > could then not use this property. Fair enough. > 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. -- With best wishes Dmitry
WARNING: multiple messages have this Message-ID (diff)
From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> To: Sebastian Wick <sebastian.wick@redhat.com> Cc: linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, ppaalanen@gmail.com, Thomas Zimmermann <tzimmermann@suse.de>, Sean Paul <sean@poorly.run>, dri-devel@lists.freedesktop.org, quic_abhinavk@quicinc.com, Maxime Ripard <mripard@kernel.org>, linux-kernel@vger.kernel.org, wayland-devel@lists.freedesktop.org, laurent.pinchart@ideasonboard.com, Marijn Suijten <marijn.suijten@somainline.org>, Jessica Zhang <quic_jesszhan@quicinc.com> Subject: Re: [PATCH RFC v5 02/10] drm: Introduce solid fill DRM plane property Date: Fri, 4 Aug 2023 16:59:00 +0300 [thread overview] Message-ID: <CAA8EJpoFpUcQL_7pb0toDoLFsK=9GdBLQH+h_MMffrp9k7eCyw@mail.gmail.com> (raw) In-Reply-To: <CA+hFU4y38MTTUsbri1jy=n4Vyp7xx2CosD9Nmk97z_au6NHCdQ@mail.gmail.com> On Fri, 4 Aug 2023 at 16:44, Sebastian Wick <sebastian.wick@redhat.com> wrote: > > On Fri, Aug 4, 2023 at 3:27 PM Dmitry Baryshkov > <dmitry.baryshkov@linaro.org> wrote: > > > > On Fri, 28 Jul 2023 at 20:03, Jessica Zhang <quic_jesszhan@quicinc.com> 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 <quic_jesszhan@quicinc.com> > > > --- > > > 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] > > > > > diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h > > > index 43691058d28f..53c8efa5ad7f 100644 > > > --- a/include/uapi/drm/drm_mode.h > > > +++ b/include/uapi/drm/drm_mode.h > > > @@ -259,6 +259,30 @@ struct drm_mode_modeinfo { > > > char name[DRM_DISPLAY_MODE_LEN]; > > > }; > > > > > > +/** > > > + * struct drm_mode_solid_fill - User info for solid fill planes > > > + * > > > + * This is the userspace API solid fill information structure. > > > + * > > > + * Userspace can enable solid fill planes by assigning the plane "solid_fill" > > > + * property to a blob containing a single drm_mode_solid_fill struct populated with an RGB323232 > > > + * color and setting the pixel source to "SOLID_FILL". > > > + * > > > + * For information on the plane property, see drm_plane_create_solid_fill_property() > > > + * > > > + * @version: Version of the blob. Currently, there is only support for version == 1 > > > + * @r: Red color value of single pixel > > > + * @g: Green color value of single pixel > > > + * @b: Blue color value of single pixel > > > + */ > > > +struct drm_mode_solid_fill { > > > + __u32 version; > > > + __u32 r; > > > + __u32 g; > > > + __u32 b; > > > > Another thought about the drm_mode_solid_fill uABI. I still think we > > should add alpha here. The reason is the following: > > > > It is true that we have drm_plane_state::alpha and the plane's > > "alpha" property. However it is documented as "the plane-wide opacity > > [...] It can be combined with pixel alpha. The pixel values in the > > framebuffers are expected to not be pre-multiplied by the global alpha > > associated to the plane.". > > > > I can imagine a use case, when a user might want to enable plane-wide > > opacity, set "pixel blend mode" to "Coverage" and then switch between > > partially opaque framebuffer and partially opaque solid-fill without > > touching the plane's alpha value. > > The only reason I see against this is that there might be some > hardware which supports only RGB but not alpha on planes and they > could then not use this property. Fair enough. > 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. -- With best wishes Dmitry
next prev parent reply other threads:[~2023-08-04 13:59 UTC|newest] Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-07-28 17:02 [PATCH RFC v5 00/10] Support for Solid Fill Planes Jessica Zhang 2023-07-28 17:02 ` Jessica Zhang 2023-07-28 17:02 ` [PATCH RFC v5 01/10] drm: Introduce pixel_source DRM plane property Jessica Zhang 2023-07-28 17:02 ` Jessica Zhang 2023-07-28 17:24 ` Dmitry Baryshkov 2023-07-28 17:24 ` Dmitry Baryshkov 2023-08-04 13:15 ` Sebastian Wick 2023-08-04 13:15 ` Sebastian Wick 2023-08-07 17:51 ` Jessica Zhang 2023-08-07 17:51 ` Jessica Zhang 2023-08-08 12:05 ` Sebastian Wick 2023-08-08 12:05 ` Sebastian Wick 2023-07-28 17:02 ` [PATCH RFC v5 02/10] drm: Introduce solid fill " Jessica Zhang 2023-07-28 17:02 ` Jessica Zhang 2023-07-31 4:01 ` Dmitry Baryshkov 2023-07-31 4:01 ` Dmitry Baryshkov 2023-08-04 13:40 ` Sebastian Wick 2023-08-04 13:40 ` Sebastian Wick 2023-08-07 16:33 ` Jessica Zhang 2023-08-07 16:33 ` Jessica Zhang 2023-08-04 13:27 ` Dmitry Baryshkov 2023-08-04 13:27 ` Dmitry Baryshkov 2023-08-04 13:43 ` Sebastian Wick 2023-08-04 13:43 ` Sebastian Wick 2023-08-04 13:59 ` Dmitry Baryshkov [this message] 2023-08-04 13:59 ` Dmitry Baryshkov 2023-08-18 10:51 ` Pekka Paalanen 2023-08-18 10:51 ` Pekka Paalanen 2023-08-18 11:03 ` Dmitry Baryshkov 2023-08-18 11:03 ` Dmitry Baryshkov 2023-08-18 13:55 ` Pekka Paalanen 2023-08-18 13:55 ` Pekka Paalanen 2023-08-21 14:30 ` Dmitry Baryshkov 2023-08-21 14:30 ` Dmitry Baryshkov 2023-08-22 7:36 ` Pekka Paalanen 2023-08-22 7:36 ` Pekka Paalanen 2023-08-07 21:41 ` Jessica Zhang 2023-08-07 21:41 ` Jessica Zhang 2023-08-08 1:07 ` Dmitry Baryshkov 2023-08-08 1:07 ` Dmitry Baryshkov 2023-08-08 22:57 ` Jessica Zhang 2023-08-08 22:57 ` Jessica Zhang 2023-08-28 23:45 ` Jessica Zhang 2023-08-28 23:45 ` Jessica Zhang 2023-08-29 0:06 ` Dmitry Baryshkov 2023-08-29 0:06 ` Dmitry Baryshkov 2023-07-28 17:02 ` [PATCH RFC v5 03/10] drm: Add solid fill pixel source Jessica Zhang 2023-07-28 17:02 ` Jessica Zhang 2023-07-31 4:02 ` Dmitry Baryshkov 2023-07-31 4:02 ` Dmitry Baryshkov 2023-07-28 17:02 ` [PATCH RFC v5 04/10] drm/atomic: Add pixel source to plane state dump Jessica Zhang 2023-07-28 17:02 ` Jessica Zhang 2023-07-29 0:04 ` Dmitry Baryshkov 2023-07-29 0:04 ` Dmitry Baryshkov 2023-08-07 16:39 ` Jessica Zhang 2023-08-07 16:39 ` Jessica Zhang 2023-07-28 17:02 ` [PATCH RFC v5 05/10] drm/atomic: Add solid fill data " Jessica Zhang 2023-07-28 17:02 ` Jessica Zhang 2023-07-29 0:05 ` Dmitry Baryshkov 2023-07-29 0:05 ` Dmitry Baryshkov 2023-08-07 16:39 ` Jessica Zhang 2023-08-07 16:39 ` Jessica Zhang 2023-07-28 17:02 ` [PATCH RFC v5 06/10] drm/atomic: Move framebuffer checks to helper Jessica Zhang 2023-07-28 17:02 ` Jessica Zhang 2023-07-31 4:06 ` Dmitry Baryshkov 2023-07-31 4:06 ` Dmitry Baryshkov 2023-07-28 17:02 ` [PATCH RFC v5 07/10] drm/atomic: Loosen FB atomic checks Jessica Zhang 2023-07-28 17:02 ` Jessica Zhang 2023-07-31 4:11 ` Dmitry Baryshkov 2023-07-31 4:11 ` Dmitry Baryshkov 2023-07-28 17:02 ` [PATCH RFC v5 08/10] drm/msm/dpu: Allow NULL FBs in atomic commit Jessica Zhang 2023-07-28 17:02 ` Jessica Zhang 2023-07-31 4:14 ` Dmitry Baryshkov 2023-07-31 4:14 ` Dmitry Baryshkov 2023-07-28 17:02 ` [PATCH RFC v5 09/10] drm/msm/dpu: Use DRM solid_fill property Jessica Zhang 2023-07-28 17:02 ` Jessica Zhang 2023-07-31 4:15 ` Dmitry Baryshkov 2023-07-31 4:15 ` Dmitry Baryshkov 2023-08-01 0:39 ` Jessica Zhang 2023-08-01 0:39 ` Jessica Zhang 2023-08-01 0:52 ` Dmitry Baryshkov 2023-08-01 0:52 ` Dmitry Baryshkov 2023-08-07 16:59 ` Jessica Zhang 2023-08-07 16:59 ` Jessica Zhang 2023-07-28 17:02 ` [PATCH RFC v5 10/10] drm/msm/dpu: Add solid fill and pixel source properties Jessica Zhang 2023-07-28 17:02 ` Jessica Zhang
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='CAA8EJpoFpUcQL_7pb0toDoLFsK=9GdBLQH+h_MMffrp9k7eCyw@mail.gmail.com' \ --to=dmitry.baryshkov@linaro.org \ --cc=airlied@gmail.com \ --cc=contact@emersion.fr \ --cc=daniel@ffwll.ch \ --cc=dri-devel@lists.freedesktop.org \ --cc=freedreno@lists.freedesktop.org \ --cc=laurent.pinchart@ideasonboard.com \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=maarten.lankhorst@linux.intel.com \ --cc=marijn.suijten@somainline.org \ --cc=mripard@kernel.org \ --cc=ppaalanen@gmail.com \ --cc=quic_abhinavk@quicinc.com \ --cc=quic_jesszhan@quicinc.com \ --cc=robdclark@gmail.com \ --cc=sean@poorly.run \ --cc=sebastian.wick@redhat.com \ --cc=tzimmermann@suse.de \ --cc=ville.syrjala@linux.intel.com \ --cc=wayland-devel@lists.freedesktop.org \ /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: linkBe 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.