On 26/08/2026 18:49, Timur Kristóf wrote:
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.

Hey,

I agree with your recommendation.
I'll do this helper in a follow-up patch, and ask you to help me testing it :)

Thanks!

Melissa



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(-)




Reply via email to