On 8/28/26 12:01, [email protected] wrote: > From: Shixiong Ou <[email protected]> > > The cursor plane exposes a format with an alpha channel > (DRM_FORMAT_ARGB8888) without a pixel blend mode property. Since > commit 860e748bddcc ("drm: ensure blend mode supported if pixel > format with alpha exposed") this triggers a warning during > drm_mode_config_validate(): > > [ 0.649020] ------------[ cut here ]------------ > [ 0.649040] [PLANE:36:plane-1] pixel format with alpha exposed but blend > mode not setup > [ 0.649081] WARNING: drivers/gpu/drm/drm_mode_config.c:872 at > drm_mode_config_validate > ...... > [ 0.649761] Call trace: > [ 0.649764] drm_mode_config_validate+0x398/0x558 [drm] (P) > [ 0.649912] drm_dev_register+0x1cc/0x2a0 [drm] > [ 0.650058] virtio_gpu_probe+0xd4/0x1c0 [virtio_gpu] > [ 0.650088] virtio_dev_probe+0x1c8/0x310 > ...... > [ 0.650261] ---[ end trace 0000000000000000 ]--- > > > Create the property with the only supported blend mode, > DRM_MODE_BLEND_PREMULTI, which is also the property's default and > matches what userspace had to assume before the property existed. > > Reported-by: Ye Liu <[email protected]> > Signed-off-by: Shixiong Ou <[email protected]> > --- > drivers/gpu/drm/virtio/virtgpu_plane.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/drivers/gpu/drm/virtio/virtgpu_plane.c > b/drivers/gpu/drm/virtio/virtgpu_plane.c > index 1d1b27ece62a..11771c943ea6 100644 > --- a/drivers/gpu/drm/virtio/virtgpu_plane.c > +++ b/drivers/gpu/drm/virtio/virtgpu_plane.c > @@ -24,6 +24,7 @@ > */ > > #include <drm/drm_atomic_helper.h> > +#include <drm/drm_blend.h> > #include <drm/drm_damage_helper.h> > #include <drm/drm_fourcc.h> > #include <drm/drm_gem_atomic_helper.h> > @@ -588,6 +589,7 @@ struct drm_plane *virtio_gpu_plane_init(struct > virtio_gpu_device *vgdev, > struct drm_plane *plane; > const uint32_t *formats; > int nformats; > + int ret; > > if (type == DRM_PLANE_TYPE_CURSOR) { > formats = virtio_gpu_cursor_formats; > @@ -610,5 +612,17 @@ struct drm_plane *virtio_gpu_plane_init(struct > virtio_gpu_device *vgdev, > if (type == DRM_PLANE_TYPE_PRIMARY) > drm_plane_enable_fb_damage_clips(plane); > > + if (type == DRM_PLANE_TYPE_CURSOR) { > + /* > + * The cursor plane exposes a format with an alpha channel, > + * which requires a blend mode property. The host blends > + * premultiplied alpha, matching the property's default. > + */ > + ret = drm_plane_create_blend_mode_property(plane, > + > BIT(DRM_MODE_BLEND_PREMULTI)); > + if (ret) > + return ERR_PTR(ret); > + } > + > return plane; > }
Applied to misc-fixes, thanks! -- Best regards, Dmitry
