Thank you for your contribution! Sashiko AI review found 1 potential issue(s) 
to consider:
- [Medium] The patch leaves the blend mode warning unresolved for most DCE 
platforms, and incorrectly advertises unsupported blend modes for DCE110 
primary planes.
--

--- Patch [1]: [PATCH] drm/amd/display: fix missing blend-mode-prop warning ---
commit 5b22da875a02b052ccb2b1f44b116e2e68afa2f7
Author: Melissa Wen <[email protected]>

    drm/amd/display: fix missing blend-mode-prop warning

    validate_blend_mode_for_alpha_formats() warns when a plane supports
    formats with alpha but doesn't expose the blend mode property. Fix this
    by adding the same blend modes to primary plane, since they are all
    universal planes in DCN-generation. Cursor planes support ARGB8888
    format and CURSOR_MODE_COLOR_PRE_MULTIPLIED_ALPHA is set by default
    (other color formats are not implemented), so only expose support to
    PREMULTI, which is the default blend mode on DRM.

> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c 
> b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
> index 26f35434a92f0..9a41cdd39ccf0 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
> @@ -1932,7 +1932,12 @@ int amdgpu_dm_plane_init(struct amdgpu_display_manager 
> *dm,
>       if (res)
>               return res;
>  
> -     if (plane->type == DRM_PLANE_TYPE_OVERLAY &&
> +     /* TODO: per_pixel_alpha is not set to DCE planes. Check what blend
> +      * modes are supported in DCE-generation planes, i.e.
> +      * DC_PLANE_TYPE_DCE_RGB and expose blend mode property accordingly.
> +      */
> +     if ((plane->type == DRM_PLANE_TYPE_OVERLAY ||
> +          plane->type == DRM_PLANE_TYPE_PRIMARY) &&
>           plane_cap && plane_cap->per_pixel_alpha) {
>               unsigned int blend_caps = BIT(DRM_MODE_BLEND_PIXEL_NONE) |
>                                         BIT(DRM_MODE_BLEND_PREMULTI) |
> @@ -1940,6 +1945,13 @@ int amdgpu_dm_plane_init(struct amdgpu_display_manager 
> *dm,
>  
>               drm_plane_create_alpha_property(plane);
>               drm_plane_create_blend_mode_property(plane, blend_caps);

[Severity: Medium]
Will this leave the blend mode warning unresolved for most DCE platforms, and
incorrectly advertise unsupported blend modes for DCE110 primary planes?

On DCE hardware where plane_cap->per_pixel_alpha is 0 (such as DCE100 and
DCE112), amdgpu_dm_plane_get_plane_formats() still unconditionally exposes
DRM_FORMAT_ARGB8888. Because of this, the DRM core's
validate_blend_mode_for_alpha_formats() will continue to warn on boot since
the plane has an alpha format but no blend mode property.

Additionally, on DCE110 where per_pixel_alpha is 1, this patch attaches the
blend mode property with PREMULTI, COVERAGE, and NONE. However, does the DCE
hardware sequencer (dce_set_blender_mode) ignore
plane_state->pre_multiplied_alpha and hardcode alpha blending? If so, the
advertised blend modes will silently fail to work, which violates the API
contract.

> +     } else if (plane->type == DRM_PLANE_TYPE_CURSOR) {
> +             /* Cursor color format is set to
> +              * CURSOR_MODE_COLOR_PRE_MULTIPLIED_ALPHA by default, so only
> +              * advertise DRM_MODE_BLEND_PREMULTI blend mode for this type
> +              * of plane.
> +              */
> +             drm_plane_create_blend_mode_property(plane, 
> BIT(DRM_MODE_BLEND_PREMULTI));
>       }
>  
>       if (plane->type == DRM_PLANE_TYPE_PRIMARY) {

-- 
Sashiko AI review ยท 
https://sashiko.dev/#/patchset/[email protected]?part=1

Reply via email to