Re: [PATCH 1/2] drm/atomic: Initialise planes with opaque alpha values
From: Laurent Pinchart
Date: Thu Sep 20 2018 - 07:16:56 EST
Hi Kieran,
Thank you for the patch.
On Wednesday, 19 September 2018 18:56:58 EEST Kieran Bingham wrote:
> Planes without an alpha property, using __drm_atomic_helper_plane_reset
> will have their plane state alpha initialised as zero, which represents
> a transparent alpha.
>
> If this value is then used for the plane, it may not be visible by
> default, and thus doesn't represent a good initialisation state.
>
> Update the default state->alpha value to DRM_BLEND_ALPHA_OPAQUE
> unconditionally when the plane is reset.
>
> Signed-off-by: Kieran Bingham <kieran.bingham+renesas@xxxxxxxxxxxxxxxx>
I believe the decision to use plane->alpha_property->values[1] instead of
hardcoding DRM_BLEND_ALPHA_OPAQUE comes from earlier versions of the alpha
patch series that supported driver-specific ranges for the alpha value. The
current implementation uses DRM_BLEND_ALPHA_OPAQUE unconditionally, and no
driver modifies the maximum value behind the scene, so
Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
> ---
> drivers/gpu/drm/drm_atomic_helper.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c
> b/drivers/gpu/drm/drm_atomic_helper.c index 3cf1aa132778..e49b22381048
> 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -3569,9 +3569,7 @@ void __drm_atomic_helper_plane_reset(struct drm_plane
> *plane, state->plane = plane;
> state->rotation = DRM_MODE_ROTATE_0;
>
> - /* Reset the alpha value to fully opaque if it matters */
> - if (plane->alpha_property)
> - state->alpha = plane->alpha_property->values[1];
> + state->alpha = DRM_BLEND_ALPHA_OPAQUE;
> state->pixel_blend_mode = DRM_MODE_BLEND_PREMULTI;
>
> plane->state = state;
--
Regards,
Laurent Pinchart