public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Pekka Paalanen <ppaalanen@gmail.com>
To: Jessica Zhang <quic_jesszhan@quicinc.com>
Cc: 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>,
	Dmitry Baryshkov <dmitry.baryshkov@linaro.org>,
	"Sean Paul" <sean@poorly.run>,
	Marijn Suijten <marijn.suijten@somainline.org>,
	<quic_abhinavk@quicinc.com>, <contact@emersion.fr>,
	<laurent.pinchart@ideasonboard.com>, <sebastian.wick@redhat.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 v6 02/10] drm: Introduce solid fill DRM plane property
Date: Tue, 29 Aug 2023 11:10:06 +0300	[thread overview]
Message-ID: <20230829111006.69cab33e@eldfell> (raw)
In-Reply-To: <20230828-solid-fill-v6-2-a820efcce852@quicinc.com>

[-- Attachment #1: Type: text/plain, Size: 3420 bytes --]

On Mon, 28 Aug 2023 17:05:08 -0700
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 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         | 26 ++++++++++++++++++++++
>  drivers/gpu/drm/drm_blend.c               | 30 ++++++++++++++++++++++++++
>  include/drm/drm_blend.h                   |  1 +
>  include/drm/drm_plane.h                   | 36 +++++++++++++++++++++++++++++++
>  include/uapi/drm/drm_mode.h               | 24 +++++++++++++++++++++
>  6 files changed, 126 insertions(+)

...

> diff --git a/drivers/gpu/drm/drm_blend.c b/drivers/gpu/drm/drm_blend.c
> index c3c57bae06b7..273021cc21c8 100644
> --- a/drivers/gpu/drm/drm_blend.c
> +++ b/drivers/gpu/drm/drm_blend.c
> @@ -200,6 +200,10 @@
>   *	"FB":
>   *		Framebuffer source set by the "FB_ID" property.
>   *
> + * solid_fill:
> + *	solid_fill is set up with drm_plane_create_solid_fill_property(). It
> + *	contains pixel data that drivers can use to fill a plane.
> + *
>   * Note that all the property extensions described here apply either to the
>   * plane or the CRTC (e.g. for the background color, which currently is not
>   * exposed and assumed to be black).

...

> diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h
> index 43691058d28f..1fd92886d66c 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()
> + *
> + * @r: Red color value of single pixel
> + * @g: Green color value of single pixel
> + * @b: Blue color value of single pixel
> + * @pad: padding

Document that padding must be zero, and ensure userspace obeys that. If
there is ever need to re-purpose the pad field, requiring it to be zero
today makes re-purposing possible.

Alternatively, if it is likely that it might be used as alpha if
alpha-ful format is added, then it would make more sense to require it
to be 0xffffffff instead of zero. Then the kernel could internally
interpret it as alpha always without special-casing zero. Or, it could
be straight out called "alpha" to begin with, but document and verify
that it must be set to 0xffffffff which means opaque.

> + */
> +struct drm_mode_solid_fill {
> +	__u32 r;
> +	__u32 g;
> +	__u32 b;
> +	__u32 pad;
> +};
> +
> +
>  struct drm_mode_card_res {
>  	__u64 fb_id_ptr;
>  	__u64 crtc_id_ptr;
> 

Looking good.


Thanks,
pq

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2023-08-29  8:11 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-29  0:05 [PATCH RFC v6 00/10] Support for Solid Fill Planes Jessica Zhang
2023-08-29  0:05 ` [PATCH RFC v6 01/10] drm: Introduce pixel_source DRM plane property Jessica Zhang
2023-08-29  7:48   ` Pekka Paalanen
2023-10-19 10:45     ` Sebastian Wick
2023-09-24 10:06   ` Dmitry Baryshkov
2023-10-19  4:59     ` Jessica Zhang
2023-10-19 14:22   ` Simon Ser
2023-08-29  0:05 ` [PATCH RFC v6 02/10] drm: Introduce solid fill " Jessica Zhang
2023-08-29  8:10   ` Pekka Paalanen [this message]
2023-08-29 15:23   ` Sebastian Wick
2023-08-29  0:05 ` [PATCH RFC v6 03/10] drm: Add solid fill pixel source Jessica Zhang
2023-08-29  8:11   ` Pekka Paalanen
2023-08-29  0:05 ` [PATCH RFC v6 04/10] drm/atomic: Add pixel source to plane state dump Jessica Zhang
2023-09-24 10:08   ` Dmitry Baryshkov
2023-08-29  0:05 ` [PATCH RFC v6 05/10] drm/atomic: Add solid fill data " Jessica Zhang
2023-08-29  8:14   ` Pekka Paalanen
2023-09-24 10:09   ` Dmitry Baryshkov
2023-08-29  0:05 ` [PATCH RFC v6 06/10] drm/atomic: Move framebuffer checks to helper Jessica Zhang
2023-08-29  0:05 ` [PATCH RFC v6 07/10] drm/atomic: Loosen FB atomic checks Jessica Zhang
2023-08-29  8:22   ` Pekka Paalanen
2023-09-22 17:49     ` [Freedreno] " Jessica Zhang
2023-09-24 10:23       ` Dmitry Baryshkov
2023-10-17  0:40         ` Jessica Zhang
2023-10-17  7:25           ` Dmitry Baryshkov
2023-09-24 10:19   ` Dmitry Baryshkov
2023-08-29  0:05 ` [PATCH RFC v6 08/10] drm/msm/dpu: Allow NULL FBs in atomic commit Jessica Zhang
2023-09-24 10:29   ` Dmitry Baryshkov
2023-10-19  0:59     ` Jessica Zhang
2023-08-29  0:05 ` [PATCH RFC v6 09/10] drm/msm/dpu: Use DRM solid_fill property Jessica Zhang
2023-09-25 10:34   ` Dmitry Baryshkov
2023-08-29  0:05 ` [PATCH RFC v6 10/10] drm/msm/dpu: Add solid fill and pixel source properties Jessica Zhang
2023-08-29 15:42 ` [PATCH RFC v6 00/10] Support for Solid Fill Planes Sebastian Wick
2023-09-26 15:25 ` Harry Wentland

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=20230829111006.69cab33e@eldfell \
    --to=ppaalanen@gmail.com \
    --cc=airlied@gmail.com \
    --cc=contact@emersion.fr \
    --cc=daniel@ffwll.ch \
    --cc=dmitry.baryshkov@linaro.org \
    --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=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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox