Re: [PATCH v4 0/3] drm/atomic-state-helper: fixes for blend-mode-prop warning
Timur Kristóf <[email protected]>
| Newsgroups | org.freedesktop.lists.amd-gfx,org.freedesktop.lists.dri-devel |
|---|---|
| Message-ID | <[email protected]> |
On Wednesday, August 26, 2026 12:37:04 PM Central European Summer Time Melissa
Wen wrote:
> PREMULTI was the default DRM blend mode until 9813e158d13d
> ("drm/drm_blend: allow blend mode property without PREMULTI") introduced
> the possibility of exposing the blend mode property without PREMULTI
> being supported. However, __drm_atomic_helper_plane_state_init() still
> resets pixel_blend_mode to PREMULTI (hardcoded), ignoring the supported
> mode in this property. In the same series, 860e748bddcc ("drm: ensure
> blend mode supported if pixel format with alpha exposed") starts warning
> drivers that supports alpha formats in a given planes but doesn't
> support blend mode property, which includes AMD primary and cursor
> planes.
>
> For AMD DCN families, overlay and primary planes support the three blend
> modes, and therefore PREMULTI is still the default mode. So the warning
> can be fixed by just creating blend mode properties for primary planes
> too. PREMULTI is the default/unique mode for cursor planes in DCN and
> DCE driver. However, looks like PIXEL_NONE is the unique blend mode
> supported by DCE-generation driver. I don't have the hardware to check
> it out, but looking at the code I understand that, even if the hardware
> can do PREMULTI or COVERAGE, the way it programs registers doesn't make
> these other blend modes actually available.
Hi Melissa,
Thanks for noticing and fixing this.
To make the code a bit easier to follow, I recommend moving the consideration
for blending and alpha properties to a smaller helper function. That's just my
personal preference though. The way you wrote it in the series is also good.
Reviewed-by: Timur Kristóf <[email protected]>
>
> Bearing this in mind, this series is organized as follow:
>
> - Patch 1 fixes the pixel_blend_mode reset when the blend mode property
> is advertised without PREMULTI support. It's needed for AMD
> DCE-generation (patch 3) and I think with this we can also remove a
> workaround in nouveau nv50_wndw_default_state() caused by the
> hardcoded PREMULTI default value [1].
>
> - Patch 2 fixes the missing-blend-mode-property warning for DCN primary
> plane and for DCN+DCE cursor plane. The alpha property keeps only on
> overlay planes because looks like this is not supported by AMD primary
> planes and it doesn't affect the blend mode warning we are targetting.
> Enabling alpha properties to primary was also causing -EINVAL on IGT
> alpha tests because it started testing primary planes and disabling it
> (which is not allowed by the AMD display driver).
>
> - Patch 3 fixes the warning for DCE primary plane, but I detached this
> solution from the previous patch because I don't have hardware to
> validate if my assumption about PIXEL_NONE-only is correct. Also, I
> added PREMULTI to the list of supported blend mode to avoid uAPI
> regressions since it was the required/default mode for many years and,
> without overlay plane, PIXEL_NONE and PREMULTI are equivalent for
> primary on top of a black blackground.
>
> [1]
> https://lore.kernel.org/dri-devel/[email protected]/
>
> [v1]:
> https://lore.kernel.org/dri-devel/[email protected]/
> Changes:
> - new patch for pixel_blend_mode default value other than PREMULTI.
> - remove DCE11 which supports per_pixel_alpha but doesn't support
> DCN_UNIVERSAL_PLANE. - new patch for the primary plane blend mode on
> DCE-generations
>
> [v2]:
> https://lore.kernel.org/dri-devel/[email protected]/
> Changes:
> - keep alpha property only for overlay planes (looks like primary plane
> doesn't actually support it) - alpha prop in primary planes causes IGT
> test failures with RX 7900 XT on a 4k60 HP U27 as reported by Daniel
> Wheeler.
> - improve readability of if conditions (Alex H)
> - add Leandro's r-b tags.
>
> [v3]:
> https://lore.kernel.org/dri-devel/[email protected]/
> Changes:
> - add Daniel's, Mikhail's and Viktor's tested-by tag, accordingly
> - add Alex H r-b tag
> - add PREMULTI to the DCE list of supported blend modes to avoid
> uAPI regression reported by Viktor.
>
> Best Regards,
>
> Melissa
>
> Melissa Wen (3):
> drm/atomic-state-helper: set pixel_blend_mode to prop default on reset
> drm/amd/display: fix missing blend-mode-prop warning for DCN
> drm/amd/display: advertise PIXEL_NONE and PREMULTI blend mode for DCE
>
> .../amd/display/amdgpu_dm/amdgpu_dm_plane.c | 31 +++++++++++++++++--
> drivers/gpu/drm/drm_atomic_state_helper.c | 7 +++++
> 2 files changed, 35 insertions(+), 3 deletions(-)